diff --git a/client/src/components/NewTicketModal.tsx b/client/src/components/NewTicketModal.tsx new file mode 100644 index 0000000..02965fb --- /dev/null +++ b/client/src/components/NewTicketModal.tsx @@ -0,0 +1,95 @@ +import React, { FC, useState, ChangeEvent, useEffect, FormEvent } from "react"; +import { Modal } from "./Modal"; +import { AvatarList } from "./AvatarList"; +import { User } from "../types/User"; +import { FilterBar } from "./FilterBar"; +import { HttpResponse } from "../types/HttpResponse"; +import { get, put, patch } from "../utils/http"; +import { Constants } from "../utils/Constants"; +import { UsersModalEntry } from "./UsersModalEntry"; +import { useParams } from "react-router-dom"; +import _ from "underscore"; + +interface IProps { + show: boolean; + handleClose: () => void; + // users: User[]; + // allUsers: User[]; +} + +export const NewTicketModal: FC = ({ + show, + handleClose + // users, + // allUsers +}) => { + const [filterText, setFilterText] = useState(""); + // const [members, setMembers] = useState(users); + const { id } = useParams(); + + const handleChange: (e: ChangeEvent) => void = ( + e: ChangeEvent + ) => { + setFilterText(e.target.value); + }; + + const handleSubmit: (event: FormEvent) => void = async ( + e: FormEvent + ) => { + e.preventDefault(); + await patch( + `${Constants.projectsURI}/${id}/members`, + {} + // members.map(m => m.id) + ); + handleClose(); + }; + + useEffect(() => {}); + return ( + +
+
+

New Ticket

+
+
+ + close + +
+
+
+ {/* */} + {/* setFilterText("")} + handleChange={handleChange} + /> */} +
+ +
+ {/*
    + {allUsers.map((u: User) => ( +
  • + +
  • + ))} +
*/} +
+ +
+
+
+ ); +}; diff --git a/client/src/components/TabRouter.tsx b/client/src/components/TabRouter.tsx index 7bdd438..d235831 100644 --- a/client/src/components/TabRouter.tsx +++ b/client/src/components/TabRouter.tsx @@ -24,10 +24,10 @@ export const TabRouter: FC = ({ activities }) => { const { url } = useRouteMatch(); + return ( <>
- {}} show={true} /> diff --git a/client/src/components/TicketList.tsx b/client/src/components/TicketList.tsx index 43ac75a..f75392b 100644 --- a/client/src/components/TicketList.tsx +++ b/client/src/components/TicketList.tsx @@ -6,6 +6,7 @@ import { FilterBar } from "./FilterBar"; import { put } from "../utils/http"; import { HttpResponse } from "../types/HttpResponse"; import { Constants } from "../utils/Constants"; +import { NewTicketModal } from "./NewTicketModal"; type TicketListProps = { tickets: Ticket[]; @@ -20,6 +21,7 @@ export const TicketList: FC = ({ tickets }) => { const onClick: (e: MouseEvent) => void = (e: MouseEvent) => { e.preventDefault(); + setShowNew(true); }; const handleChange: (e: ChangeEvent) => void = ( e: ChangeEvent @@ -27,9 +29,17 @@ export const TicketList: FC = ({ tickets }) => { setFilterText(e.target.value); }; + const [showNew, setShowNew] = useState(false); + return ( <>
+ { + setShowNew(false); + }} + show={showNew} + />

Tickets