diff --git a/client/src/components/MemberList.tsx b/client/src/components/MemberList.tsx new file mode 100644 index 0000000..3c4c04a --- /dev/null +++ b/client/src/components/MemberList.tsx @@ -0,0 +1,50 @@ +import React, { FC, useState, ChangeEvent, MouseEvent } from "react"; +import { TabRouterHeader } from "./TabRouterHeader"; +import { TicketList } from "./TicketList"; +import { FileList } from "./AppFileList"; +import { Ticket } from "../types/Ticket"; +import { AppFile } from "../types/AppFile"; +import { Route, useRouteMatch, Redirect } from "react-router-dom"; +import { ActivityList } from "./ActivityList"; +import { Activity } from "../types/Activity"; +import { NewTicketModal } from "./NewTicketModal"; +import { User } from "../types/User"; +import { UsersModalEntry } from "./UsersModalEntry"; +import { FilterBar } from "./FilterBar"; + +interface IProps { + users: User[]; +} + +export const MemberList: FC = ({ users }) => { + const [members, setMembers] = useState([]); + const [filterText, setFilterText] = useState(""); + const clearFilterText: (e: MouseEvent) => void = (e: MouseEvent) => { + setFilterText(""); + }; + const handleChange: (e: ChangeEvent) => void = ( + e: ChangeEvent + ) => { + setFilterText(e.target.value); + }; + return ( + <> + +
    + {users.map((u: User) => ( +
  • + +
  • + ))} +
+ + ); +}; diff --git a/client/src/components/NewTicketForm.tsx b/client/src/components/NewTicketForm.tsx new file mode 100644 index 0000000..34e9918 --- /dev/null +++ b/client/src/components/NewTicketForm.tsx @@ -0,0 +1,43 @@ +import React, { FC } from "react"; + +interface IProps {} + +export const NewTicketForm: FC = () => { + return ( + <> +
+
+ note_add + + +
+ +
+ mode_edit + + +
+ +
+ date_range + + +
+ +
+ +
+
+ + ); +}; diff --git a/client/src/components/NewTicketModal.tsx b/client/src/components/NewTicketModal.tsx index 9b706b5..dd876bf 100644 --- a/client/src/components/NewTicketModal.tsx +++ b/client/src/components/NewTicketModal.tsx @@ -9,19 +9,20 @@ import { Constants } from "../utils/Constants"; import { UsersModalEntry } from "./UsersModalEntry"; import { useParams } from "react-router-dom"; import _ from "underscore"; +import { NewTicketTabRouter } from "./NewTicketTabRouter"; interface IProps { show: boolean; handleClose(): void; // users: User[]; - // allUsers: User[]; + allUsers: User[]; } export const NewTicketModal: FC = ({ show, - handleClose + handleClose, // users, - // allUsers + allUsers }) => { const [filterText, setFilterText] = useState(""); // const [members, setMembers] = useState(users); @@ -48,26 +49,24 @@ export const NewTicketModal: FC = ({ useEffect(() => {}); return ( -
+

New Ticket

close
-
- {/* */} - {/* setFilterText("")} - handleChange={handleChange} - /> */} +
+
@@ -82,11 +81,11 @@ export const NewTicketModal: FC = ({ ))} */} -
+
diff --git a/client/src/components/NewTicketTabRouter.tsx b/client/src/components/NewTicketTabRouter.tsx new file mode 100644 index 0000000..2e8660d --- /dev/null +++ b/client/src/components/NewTicketTabRouter.tsx @@ -0,0 +1,34 @@ +import React, { FC } from "react"; +import { Route, useRouteMatch, Redirect } from "react-router-dom"; +import { TabRouterHeader } from "./TabRouterHeader"; +import { NewTicketForm } from "./NewTicketForm"; +import { MemberList } from "./MemberList"; +import { User } from "../types/User"; + +interface IProps { + tabNames: string[]; + users: User[]; +} + +export const NewTicketTabRouter: FC = ({ tabNames, users }) => { + const { url } = useRouteMatch(); + return ( + <> +
+ + + + +
{}}> + + + + + + + +
+
+ + ); +}; diff --git a/client/src/components/ProjectList.tsx b/client/src/components/ProjectList.tsx index 03d45eb..da701a4 100644 --- a/client/src/components/ProjectList.tsx +++ b/client/src/components/ProjectList.tsx @@ -4,9 +4,8 @@ import { FloatingButton } from "./FloatingButton"; import { HorizontalCard } from "./HorizontalCard"; import { FilterBar } from "./FilterBar"; import { put } from "../utils/http"; -import { HttpResponse } from "../types/HttpResponse"; import { Constants } from "../utils/Constants"; -import { NewTicketModal } from "./NewTicketModal"; +import { HttpResponse } from "../types/HttpResponse"; import { Project } from "../types/Project"; type IProps = { @@ -39,12 +38,13 @@ export const ProjectList: FC = ({ projects }) => { return ( <>
- { setShowNew(false); }} show={showNew} - /> + allUsers={users} + /> */}

Projects

= ({ tickets, tabNames, files, - activities + activities, + allUsers }) => { const { url } = useRouteMatch(); @@ -33,7 +36,7 @@ export const TabRouter: FC = ({ - + diff --git a/client/src/components/TabRouterHeader.tsx b/client/src/components/TabRouterHeader.tsx index 9a9f389..2bd15ef 100644 --- a/client/src/components/TabRouterHeader.tsx +++ b/client/src/components/TabRouterHeader.tsx @@ -7,11 +7,12 @@ interface IProps { } export const TabRouterHeader: FC = ({ - tabClass = "tab col s4", - tabNames + tabNames, + tabClass = `tab col s${12 / tabNames.length}` }) => { const [isActive, setIsActive] = useState(0); const nTabs = tabNames.length; + return ( <>
    diff --git a/client/src/components/TicketList.tsx b/client/src/components/TicketList.tsx index cbedf39..e07c674 100644 --- a/client/src/components/TicketList.tsx +++ b/client/src/components/TicketList.tsx @@ -3,16 +3,18 @@ import { Ticket } from "../types/Ticket"; import { FloatingButton } from "./FloatingButton"; import { HorizontalCard } from "./HorizontalCard"; import { FilterBar } from "./FilterBar"; -import { put } from "../utils/http"; +import { User } from "../types/User"; import { HttpResponse } from "../types/HttpResponse"; +import { put } from "../utils/http"; import { Constants } from "../utils/Constants"; import { NewTicketModal } from "./NewTicketModal"; type TicketListProps = { tickets: Ticket[]; + users: User[]; }; -export const TicketList: FC = ({ tickets }) => { +export const TicketList: FC = ({ tickets, users }) => { const [filterText, setFilterText] = useState(""); const clearFilterText: (e: MouseEvent) => void = (e: MouseEvent) => { setFilterText(""); @@ -43,10 +45,11 @@ export const TicketList: FC = ({ tickets }) => { setShowNew(false); }} show={showNew} + allUsers={users} />

    Tickets

    diff --git a/client/src/components/UserTabRouter.tsx b/client/src/components/UserTabRouter.tsx index 5646630..4ff4131 100644 --- a/client/src/components/UserTabRouter.tsx +++ b/client/src/components/UserTabRouter.tsx @@ -1,13 +1,10 @@ import React, { FC } from "react"; +import { Route, useRouteMatch, Redirect } from "react-router-dom"; import { TabRouterHeader } from "./TabRouterHeader"; import { TicketList } from "./TicketList"; - -import { Ticket } from "../types/Ticket"; - -import { Route, useRouteMatch, Redirect } from "react-router-dom"; - -import { Project } from "../types/Project"; import { ProjectList } from "./ProjectList"; +import { Ticket } from "../types/Ticket"; +import { Project } from "../types/Project"; interface IProps { tabNames: string[]; @@ -29,9 +26,9 @@ export const UserTabRouter: FC = ({ tickets, tabNames, projects }) => { - + {/* - + */}
); diff --git a/client/src/components/UsersModal.tsx b/client/src/components/UsersModal.tsx index d5d4878..3507907 100644 --- a/client/src/components/UsersModal.tsx +++ b/client/src/components/UsersModal.tsx @@ -45,13 +45,13 @@ export const UsersModal: FC = ({ useEffect(() => {}); return ( -
+

Manage users

close @@ -79,10 +79,10 @@ export const UsersModal: FC = ({ ))} -
+
diff --git a/client/src/pages/ProjectPage.tsx b/client/src/pages/ProjectPage.tsx index c0700c0..16ac841 100644 --- a/client/src/pages/ProjectPage.tsx +++ b/client/src/pages/ProjectPage.tsx @@ -37,7 +37,7 @@ export const ProjectPage: FC = ({ viewModel }) => { setShowModal(true)} /> @@ -59,6 +59,7 @@ export const ProjectPage: FC = ({ viewModel }) => { tickets={tickets} files={files} activities={activities} + allUsers={allUsers} />