diff --git a/src/Pages/TeamRevamp/constants.ts b/src/Pages/TeamRevamp/constants.ts index f09edd2..9555b4e 100644 --- a/src/Pages/TeamRevamp/constants.ts +++ b/src/Pages/TeamRevamp/constants.ts @@ -53,11 +53,13 @@ export const actionTypes = { SET_ADD_MEMBER_ERROR: 'SET_ADD_MEMBER_ERROR', }; +export const DEFAULT_SEVERITY_ID = 4; + export const initialState: AppState = { openDialog: false, openModal: false, emailIds: '', - severityId: '4', + severityId: DEFAULT_SEVERITY_ID, selectedMember: undefined, hovered: { ishovered: false, @@ -104,7 +106,7 @@ export const reducer = (state: AppState, action: ActionType): AppState => { case actionTypes.SET_SEVERITY_ID: return { ...state, - severityId: action.payload, + severityId: parseInt(action.payload), }; case actionTypes.SET_SELECTED_MEMBER: return { diff --git a/src/Pages/TeamRevamp/partials/CreateTeam/CreateTeam.tsx b/src/Pages/TeamRevamp/partials/CreateTeam/CreateTeam.tsx index 941c1d4..c5e073e 100644 --- a/src/Pages/TeamRevamp/partials/CreateTeam/CreateTeam.tsx +++ b/src/Pages/TeamRevamp/partials/CreateTeam/CreateTeam.tsx @@ -15,6 +15,7 @@ import { } from '@src/slices/team1Slice'; import { CREATE_TEAM, + DEFAULT_SEVERITY_ID, actionTypes, initialState, reducer, @@ -81,7 +82,10 @@ const CreateTeam: React.FC = ({ handleSetTeam }) => { }); ApiService.post(CREATE_TEAM, { name: state.teamName, - manager_email: state.email, + manager_details: { + email: state.email, + severity_id: DEFAULT_SEVERITY_ID, + }, }) .then(response => { const toastMessage = `${response?.data?.data?.message}`; diff --git a/src/Pages/TeamRevamp/partials/TeamMemberDetails/Header.tsx b/src/Pages/TeamRevamp/partials/TeamMemberDetails/Header.tsx deleted file mode 100644 index 2f6c474..0000000 --- a/src/Pages/TeamRevamp/partials/TeamMemberDetails/Header.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { FC } from 'react'; - -import { Button, Typography } from '@navi/web-ui/lib/primitives'; - -import styles from './TeamMemberDetails.module.scss'; - -interface HeaderProps { - isDisabled: boolean; - sevType: number; -} -const Header: FC = (props: HeaderProps) => { - const { isDisabled, sevType } = props; - const sevText = `Sev ${sevType - 1} ${sevType > 1 ? ' and above' : ''}`; - return ( -
-
- - {sevText} - - -
-
-
- ); -}; - -export default Header; diff --git a/src/Pages/TeamRevamp/partials/TeamMemberDetails/Modals/RemoveManager.module.scss b/src/Pages/TeamRevamp/partials/TeamMemberDetails/Modals/RemoveManager.module.scss new file mode 100644 index 0000000..4eae235 --- /dev/null +++ b/src/Pages/TeamRevamp/partials/TeamMemberDetails/Modals/RemoveManager.module.scss @@ -0,0 +1,21 @@ +.footer-wrapper { + display: flex; + justify-content: flex-end; + margin-top: 32px; + .remove-button { + background-color: var(--navi-color-red-base); + height: 36px; + width: 77px; + color: var(--navi-color-gray-bg-primary); + } + .cancel-button { + background: var(--navi-color-gray-bg-primary); + height: 36px; + width: 77px; + color: var(--navi-color-gray-c2); + margin-right: 12px; + border: 1px solid var(--navi-color-gray-border); + border-radius: 6px; + margin-right: 16px; + } + } \ No newline at end of file diff --git a/src/Pages/TeamRevamp/partials/TeamMemberDetails/Modals/RemoveManager.tsx b/src/Pages/TeamRevamp/partials/TeamMemberDetails/Modals/RemoveManager.tsx index 2828195..f350c4a 100644 --- a/src/Pages/TeamRevamp/partials/TeamMemberDetails/Modals/RemoveManager.tsx +++ b/src/Pages/TeamRevamp/partials/TeamMemberDetails/Modals/RemoveManager.tsx @@ -5,7 +5,7 @@ import { actionTypes } from '@src/Pages/TeamRevamp/constants'; import useTeamApis from '@src/Pages/TeamRevamp/useTeamApis'; import { ReducerStateType } from '../../../types'; -import styles from '../TeamMemberDetails.module.scss'; +import styles from './RemoveManager.module.scss'; const RemoveManager: FC = (props: ReducerStateType) => { const { removeTeamMember } = useTeamApis(); @@ -27,12 +27,10 @@ const RemoveManager: FC = (props: ReducerStateType) => { header="Remove member? " onClose={handleResetDialog} > -
- - Are you sure you want to remove {`${state.selectedMember?.name}`} from - this team? - -
+ + Are you sure you want to remove {`${state.selectedMember?.name}`} from + this team? +
+
+
+ + + + ); +}; + +export default SevHeader; diff --git a/src/Pages/TeamRevamp/partials/TeamMemberDetails/SeverityDropDown.tsx b/src/Pages/TeamRevamp/partials/TeamMemberDetails/SeverityDropDown.tsx index 1861c9f..cb22e0c 100644 --- a/src/Pages/TeamRevamp/partials/TeamMemberDetails/SeverityDropDown.tsx +++ b/src/Pages/TeamRevamp/partials/TeamMemberDetails/SeverityDropDown.tsx @@ -61,6 +61,7 @@ const SeverityDropDown: FC = ( placeholder="Assignee" className={styles['single-selector']} disabled={isDisabled} + popupClassName={styles['dropdown']} /> ); }; diff --git a/src/Pages/TeamRevamp/partials/TeamMemberDetails/SeverityWiseList.tsx b/src/Pages/TeamRevamp/partials/TeamMemberDetails/SeverityWiseList.tsx index 0637e17..fb44a75 100644 --- a/src/Pages/TeamRevamp/partials/TeamMemberDetails/SeverityWiseList.tsx +++ b/src/Pages/TeamRevamp/partials/TeamMemberDetails/SeverityWiseList.tsx @@ -10,7 +10,7 @@ import { useAuthData } from '@src/services/hooks/useAuth'; import { Member, ReducerStateType } from '../../types'; import useGetTeamDetailsConstants, { isUserParticipant } from '../../util'; -import Header from './Header'; +import SevHeader from './SevHeader'; import styles from './TeamMemberDetails.module.scss'; interface SeverityWiseListProps extends ReducerStateType { @@ -77,11 +77,12 @@ const SeverityWiseList: FC = ( }); }; const header: JSX.Element = ( -
); diff --git a/src/Pages/TeamRevamp/partials/TeamMemberDetails/TeamMemberDetails.module.scss b/src/Pages/TeamRevamp/partials/TeamMemberDetails/TeamMemberDetails.module.scss index b785c67..65afede 100644 --- a/src/Pages/TeamRevamp/partials/TeamMemberDetails/TeamMemberDetails.module.scss +++ b/src/Pages/TeamRevamp/partials/TeamMemberDetails/TeamMemberDetails.module.scss @@ -77,34 +77,12 @@ border-radius: 8px; padding-bottom: 14px; } -.remove-button { - background-color: var(--navi-color-red-base); - height: 36px; - width: 77px; - color: var(--navi-color-gray-bg-primary); -} -.cancel-button { - background: var(--navi-color-gray-bg-primary); - height: 36px; - width: 77px; - color: var(--navi-color-gray-c2); - margin-right: 12px; - border: 1px solid var(--navi-color-gray-border); - border-radius: 6px; - margin-right: 16px; -} .team-input-wrapper { width: 510px; height: 36px; margin-top: 12px; border-radius: 0px 8px 8px 0px; } -.footer-wrapper { - display: flex; - justify-content: flex-end; - margin-top: 32px; -} - .input-wrapper-child { display: flex; } @@ -126,10 +104,18 @@ margin-top: 11px; padding-right: 1px; border-radius: 8px 0px 0px 8px !important; + div { + color: var(--grayscale-2) !important; + } :first-child { border-radius: 8px 0px 0px 8px; } } +.dropdown{ + div { + color: var(--grayscale-2) !important; + } +} .no-member-present { height: 52px; width: 1032px; diff --git a/src/Pages/TeamRevamp/types.ts b/src/Pages/TeamRevamp/types.ts index 5fcab96..c466610 100644 --- a/src/Pages/TeamRevamp/types.ts +++ b/src/Pages/TeamRevamp/types.ts @@ -7,7 +7,7 @@ export interface SearchInputComponentProps { isAdmin: boolean; } export interface useTeamApiProps { - addMemberHandler: (emailIds: string, severityId: string) => void; + addMemberHandler: (emailIds: string, severityId: number) => void; removeTeamMember: (memberId: string) => void; makeManager: (memberId: string) => void; updateDetails: ( @@ -62,7 +62,7 @@ export interface Details { userEmail: string | undefined; managerEmail: string | undefined; manager: Member | undefined; - teamMembers: (Member[] | undefined)[]; + teamMembers: Member[][]; teamDetails: TeamsDetail; teamData: TeamState; DEFAULT_TEAM_ONCALL: string; @@ -96,7 +96,7 @@ export interface AppState { openDialog: boolean; openModal: boolean; emailIds: string; - severityId: string; + severityId: number; selectedMember?: Member; hovered: { ishovered: boolean; diff --git a/src/Pages/TeamRevamp/useTeamApis.tsx b/src/Pages/TeamRevamp/useTeamApis.tsx index 6eb8555..e96c547 100644 --- a/src/Pages/TeamRevamp/useTeamApis.tsx +++ b/src/Pages/TeamRevamp/useTeamApis.tsx @@ -24,7 +24,7 @@ const useTeamApis = (): useTeamApiProps => { const { fireEvent } = useClickStream(); const { EVENT_NAME, SCREEN_NAME } = CLICK_STREAM_EVENT_FACTORY; - const addMemberHandler = (emailIds: string, severityId: string): void => { + const addMemberHandler = (emailIds: string, severityId: number): void => { fireEvent(EVENT_NAME.Houston_Add_Member, { screen_name: SCREEN_NAME.TEAM_PAGE, }); @@ -32,10 +32,11 @@ const useTeamApis = (): useTeamApiProps => { const finalSlackData = emailIds.includes(',') ? emailIds.split(',').map(item => item?.trim()) : [emailIds]; + ApiService.post(endPoint, { id: teamId, members: { - severity_id: parseInt(severityId), + severity_id: severityId, user_email_ids: finalSlackData, }, } as AddMemberPayload) @@ -113,7 +114,7 @@ const useTeamApis = (): useTeamApiProps => { ApiService.post(endPoint, { id: teamId, slack_channel: slackChannelId, - on_call_handle: oncall, + on_call_id: oncall, pse_on_call_id: psecOncall, }) .then(response => { diff --git a/src/Pages/TeamRevamp/util.ts b/src/Pages/TeamRevamp/util.ts index 2ca47a5..93b5889 100644 --- a/src/Pages/TeamRevamp/util.ts +++ b/src/Pages/TeamRevamp/util.ts @@ -1,6 +1,7 @@ import { useSelector } from 'react-redux'; import { TeamState, selectSearchTeamData } from '@src/slices/team1Slice'; import { Details, Member } from './types'; +import { SelectPickerOptionProps } from '@navi/web-ui/lib/components/SelectPicker/types'; export const useTeamDetails = (): TeamState => { return useSelector(selectSearchTeamData); }; @@ -65,11 +66,28 @@ export const useGetTeamDetailsConstants = (): Details => { }; export const isUserParticipant = ( - teamMembers: (Member[] | undefined)[], + teamMembers: Member[][], userEmail: string | undefined, ): boolean => { return teamMembers?.some(participants => participants?.some(participant => participant.email == userEmail), ); }; +export const getSelectLabelOptionsForMember = ( + teamMembers: Member[][], + sevType: number, +): SelectPickerOptionProps[] => { + const availableMembers = teamMembers + ?.filter((member, index) => index != sevType - 1) + ?.flat(); + const selectPickerMemberList: SelectPickerOptionProps[] = + availableMembers?.map(member => { + return { + label: member?.name, + value: member?.email, + }; + }); + return selectPickerMemberList; +}; + export default useGetTeamDetailsConstants; diff --git a/src/variables.scss b/src/variables.scss index bf0a88d..ce1d431 100644 --- a/src/variables.scss +++ b/src/variables.scss @@ -15,4 +15,5 @@ --grayscale-cold-1: #000f1d; --grayscale-cold-2: #404b56; --grayscale-cold-3: #8c9399; + --blue-blue_base: #0276FE; }