diff --git a/web-server/pages/teams/index.tsx b/web-server/pages/teams/index.tsx index 5a8e86e2d..34a0b6104 100644 --- a/web-server/pages/teams/index.tsx +++ b/web-server/pages/teams/index.tsx @@ -3,7 +3,7 @@ import ExtendedSidebarLayout from 'src/layouts/ExtendedSidebarLayout'; import { Authenticated } from '@/components/Authenticated'; import { FlexBox } from '@/components/FlexBox'; -import { CreateTeams } from '@/components/Teams/CreateTeams'; +import { CreateEditTeams } from '@/components/Teams/CreateTeams'; import { TeamsList } from '@/components/TeamsList'; import { Integration } from '@/constants/integrations'; import { PageWrapper } from '@/content/PullRequests/PageWrapper'; @@ -39,7 +39,7 @@ function Page() { hideAllSelectors > - {teamsList.length ? : } + {teamsList.length ? : } ); diff --git a/web-server/src/components/OverlayComponents/TeamEdit.tsx b/web-server/src/components/OverlayComponents/TeamEdit.tsx new file mode 100644 index 000000000..29585f4d7 --- /dev/null +++ b/web-server/src/components/OverlayComponents/TeamEdit.tsx @@ -0,0 +1,24 @@ +import { FC } from 'react'; + +import { CRUDProps } from '@/components/Teams/CreateTeams'; + +import { FlexBox } from '../FlexBox'; +import { CreateEditTeams } from '../Teams/CreateTeams'; + +export const TeamEdit: FC = ({ + teamId, + hideCardComponents, + onSave, + onDiscard +}) => { + return ( + + + + ); +}; diff --git a/web-server/src/components/Teams/CreateTeams.tsx b/web-server/src/components/Teams/CreateTeams.tsx index 8be999dfc..8c2e74990 100644 --- a/web-server/src/components/Teams/CreateTeams.tsx +++ b/web-server/src/components/Teams/CreateTeams.tsx @@ -19,20 +19,36 @@ import { BaseRepo } from '@/types/resources'; import { FlexBox } from '../FlexBox'; import { Line } from '../Text'; -type CRUDCallBacks = { +export type CRUDProps = { onSave?: AnyFunction; onDiscard?: AnyFunction; + teamId?: ID; + hideCardComponents?: boolean; }; -export const CreateTeams: FC = ({ onSave, onDiscard }) => { +export const CreateEditTeams: FC = ({ + onSave, + onDiscard, + teamId, + hideCardComponents +}) => { return ( - - + + ); }; -export const TeamsCRUD: FC = ({ onSave, onDiscard }) => { +const TeamsCRUD: FC = ({ + onSave, + onDiscard, + hideCardComponents +}) => { const { isPageLoading } = useTeamCRUD(); return ( <> @@ -43,13 +59,13 @@ export const TeamsCRUD: FC = ({ onSave, onDiscard }) => { gap={4} col justifyBetween - component={Card} + component={!hideCardComponents && Card} p={2} - maxWidth={'900px'} + width={'900px'} > - + )} @@ -67,12 +83,24 @@ const Loader = () => { }; const Heading = () => { + const { isEditing, editingTeam } = useTeamCRUD(); + const heading = isEditing ? 'Edit a team' : 'Create a team'; + return ( - Create a Team + {heading} - Create a team to generate metric insights + {isEditing ? ( + + Currently editing{' '} + + {editingTeam.name} + {' '} + + ) : ( + Create a team to generate metric insights + )} ); }; @@ -109,7 +137,9 @@ const TeamName = () => { ); }; -const TeamRepos = () => { +const TeamRepos: FC<{ hideCardComponents?: boolean }> = ({ + hideCardComponents +}) => { const { repoOptions, teamRepoError, @@ -165,18 +195,24 @@ const TeamRepos = () => { )} renderTags={() => null} /> - + ); }; -const ActionTray: FC = ({ +const ActionTray: FC = ({ onSave: onSaveCallBack, onDiscard: onDiscardCallBack }) => { - const { onSave, isSaveLoading, teamName, selectedRepos, onDiscard } = - useTeamCRUD(); + const { + onSave, + isSaveLoading, + teamName, + selectedRepos, + onDiscard, + saveDisabled + } = useTeamCRUD(); const { enqueueSnackbar } = useSnackbar(); return ( @@ -198,7 +234,7 @@ const ActionTray: FC = ({ }} >