From 3a40346a1c0841b2aa9be55bc4915c574403211e Mon Sep 17 00:00:00 2001 From: VipinDevelops Date: Sat, 7 Sep 2024 21:31:14 +0530 Subject: [PATCH 01/10] add create button --- .../components/TeamSelector/TeamPopover.tsx | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/web-server/src/components/TeamSelector/TeamPopover.tsx b/web-server/src/components/TeamSelector/TeamPopover.tsx index 2171827dd..8c025c7fc 100644 --- a/web-server/src/components/TeamSelector/TeamPopover.tsx +++ b/web-server/src/components/TeamSelector/TeamPopover.tsx @@ -4,7 +4,8 @@ import { RadioButtonChecked, SearchRounded, ClearRounded, - Edit + Edit, + Add } from '@mui/icons-material'; import { alpha, @@ -53,6 +54,7 @@ import { depFn } from '@/utils/fn'; import { defaultPopoverProps } from './defaultPopoverProps'; import { useOverlayPage } from '../OverlayPageContext'; +import { useRouter } from 'next/router'; export const TeamPopover: FC<{ teamElRef: MutableRefObject; @@ -84,7 +86,7 @@ export const TeamPopover: FC<{ const { team } = useSingleTeamConfig(); const { addPage } = useOverlayPage(); const updatingTeamMemberFilter = useBoolState(); - + const router = useRouter(); const isRoleEng = false; const activeRouteEvent = useActiveRouteEvent('APP_TEAM_CHANGE_SINGLE'); const dispatch = useDispatch(); @@ -115,6 +117,11 @@ export const TeamPopover: FC<{ const teamReposMap = useSelector((s) => s.app.teamsProdBranchMap); + const addTeam = () => { + const path = `${ROUTES.TEAMS.PATH}?create=true`; + router.push(path); + }; + return ( + {apiTeams.length && ( + + + + )} From f1af31756ab4373854df0020a34c59eea11648b2 Mon Sep 17 00:00:00 2001 From: VipinDevelops Date: Sat, 7 Sep 2024 21:31:35 +0530 Subject: [PATCH 02/10] handle create query --- web-server/src/components/TeamsList.tsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/web-server/src/components/TeamsList.tsx b/web-server/src/components/TeamsList.tsx index 42d121350..4663934fd 100644 --- a/web-server/src/components/TeamsList.tsx +++ b/web-server/src/components/TeamsList.tsx @@ -7,10 +7,11 @@ import { MenuItem, TextField } from '@mui/material'; +import { useRouter } from 'next/router'; import { useSnackbar } from 'notistack'; import pluralize from 'pluralize'; import { ascend } from 'ramda'; -import { FC, MouseEventHandler, useCallback, useMemo } from 'react'; +import { FC, MouseEventHandler, useCallback, useEffect, useMemo } from 'react'; import { truncate } from 'voca'; import { Integration } from '@/constants/integrations'; @@ -35,6 +36,8 @@ const HORIZONTAL_SPACE = 3 / 2; export const TeamsList = () => { const teamsArray = useSelector((state) => state.team.teams); const searchQuery = useEasyState(''); + const router = useRouter(); + const showCreate = useBoolState(false); const teamsArrayFiltered = useMemo(() => { if (!searchQuery.value) { @@ -45,7 +48,6 @@ export const TeamsList = () => { ); }, [searchQuery.value, teamsArray]); - const showCreate = useBoolState(false); const handleShowCreateTeam = useCallback(() => { depFn(showCreate.toggle); }, [showCreate.toggle]); @@ -54,6 +56,13 @@ export const TeamsList = () => { (state) => state.team?.requests?.teams === FetchState.REQUEST ); + useEffect(() => { + if (router.query.create === 'true') { + showCreate.true(); + router.replace(router.pathname, ''); + } + }, [router, router.query.create, showCreate]); + return ( <> Date: Sat, 7 Sep 2024 21:42:53 +0530 Subject: [PATCH 03/10] lint fix --- web-server/src/components/TeamSelector/TeamPopover.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-server/src/components/TeamSelector/TeamPopover.tsx b/web-server/src/components/TeamSelector/TeamPopover.tsx index 8c025c7fc..bc1035794 100644 --- a/web-server/src/components/TeamSelector/TeamPopover.tsx +++ b/web-server/src/components/TeamSelector/TeamPopover.tsx @@ -23,6 +23,7 @@ import { useTheme } from '@mui/material'; import Link from 'next/link'; +import { useRouter } from 'next/router'; import pluralize from 'pluralize'; import { FC, @@ -54,7 +55,6 @@ import { depFn } from '@/utils/fn'; import { defaultPopoverProps } from './defaultPopoverProps'; import { useOverlayPage } from '../OverlayPageContext'; -import { useRouter } from 'next/router'; export const TeamPopover: FC<{ teamElRef: MutableRefObject; From 9b9a1ca2c64e1e491e935fe85cc6fdab9a3cdb3b Mon Sep 17 00:00:00 2001 From: VipinDevelops Date: Sun, 8 Sep 2024 12:14:53 +0530 Subject: [PATCH 04/10] button fix --- web-server/src/components/TeamSelector/TeamPopover.tsx | 8 ++++---- web-server/src/components/TeamsList.tsx | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/web-server/src/components/TeamSelector/TeamPopover.tsx b/web-server/src/components/TeamSelector/TeamPopover.tsx index bc1035794..bcbfc5857 100644 --- a/web-server/src/components/TeamSelector/TeamPopover.tsx +++ b/web-server/src/components/TeamSelector/TeamPopover.tsx @@ -330,10 +330,10 @@ export const TeamPopover: FC<{ 'We getting your teams together, but someone seems missing 🤔' )} - {apiTeams.length && ( - - diff --git a/web-server/src/components/TeamsList.tsx b/web-server/src/components/TeamsList.tsx index 4663934fd..a910911c2 100644 --- a/web-server/src/components/TeamsList.tsx +++ b/web-server/src/components/TeamsList.tsx @@ -58,10 +58,10 @@ export const TeamsList = () => { useEffect(() => { if (router.query.create === 'true') { - showCreate.true(); + depFn(showCreate.true); router.replace(router.pathname, ''); } - }, [router, router.query.create, showCreate]); + }, [router, showCreate.true]); return ( <> From d71000008d6b8197847974886f7e3a11e53dd70f Mon Sep 17 00:00:00 2001 From: VipinDevelops Date: Sun, 8 Sep 2024 12:22:20 +0530 Subject: [PATCH 05/10] use boolean --- web-server/src/components/TeamSelector/TeamPopover.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-server/src/components/TeamSelector/TeamPopover.tsx b/web-server/src/components/TeamSelector/TeamPopover.tsx index bcbfc5857..499d0ae5f 100644 --- a/web-server/src/components/TeamSelector/TeamPopover.tsx +++ b/web-server/src/components/TeamSelector/TeamPopover.tsx @@ -330,7 +330,7 @@ export const TeamPopover: FC<{ 'We getting your teams together, but someone seems missing 🤔' )} - {apiTeams.length > 0 && ( + {Boolean(apiTeams.length) && ( diff --git a/web-server/src/components/Teams/useTeamsConfig.tsx b/web-server/src/components/Teams/useTeamsConfig.tsx index c157602fd..cb23bab9c 100644 --- a/web-server/src/components/Teams/useTeamsConfig.tsx +++ b/web-server/src/components/Teams/useTeamsConfig.tsx @@ -271,7 +271,9 @@ export const TeamsCRUDProvider: React.FC<{ const singleTeam = teams.find( (team: Team) => team.id === createdTeam.id ); - dispatch(appSlice.actions.setSingleTeam([singleTeam])); + if (singleTeam) { + dispatch(appSlice.actions.setSingleTeam([singleTeam])); + } } });