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 = ({
}}
>