From 379bac9ab40ea07db9720a9ccd9c4414b198e943 Mon Sep 17 00:00:00 2001 From: yashmantri Date: Wed, 26 Apr 2023 00:15:10 +0530 Subject: [PATCH 01/10] TP-24975 | Updated Severity UI --- src/Pages/Severity/Severity.module.scss | 23 +++++ src/Pages/Severity/SeverityForm.tsx | 108 +++++++++++------------- src/Pages/Severity/SeverityResults.tsx | 67 +++++++++++++++ src/Pages/Severity/index.tsx | 4 +- 4 files changed, 141 insertions(+), 61 deletions(-) create mode 100644 src/Pages/Severity/SeverityResults.tsx diff --git a/src/Pages/Severity/Severity.module.scss b/src/Pages/Severity/Severity.module.scss index a181802..756448d 100644 --- a/src/Pages/Severity/Severity.module.scss +++ b/src/Pages/Severity/Severity.module.scss @@ -4,4 +4,27 @@ .save-btn { margin-top: 12px; + margin-bottom: 12px; +} + +.severity-form-wrapper { + display: flex; + justify-content: space-between; + gap: 24px; +} + +.table-wrapper { + box-sizing: border-box; + padding-bottom: 24px; + margin-top: 16px; +} + +.content-wrapper { + width: 50%; + padding: 0 12px; +} + +.vertical-line { + transform: rotateX(180deg); + border: 1px solid #e8e8e8; } diff --git a/src/Pages/Severity/SeverityForm.tsx b/src/Pages/Severity/SeverityForm.tsx index ea6743b..5b29bd9 100644 --- a/src/Pages/Severity/SeverityForm.tsx +++ b/src/Pages/Severity/SeverityForm.tsx @@ -1,54 +1,23 @@ -import { FC, useEffect, useState } from 'react'; +import { useState } from 'react'; import BorderedInput from '@navi/web-ui/lib/primitives/BorderedInput'; import Button from '@navi/web-ui/lib/primitives/Button'; import { toast } from '@navi/web-ui/lib/primitives/Toast'; import { ApiService } from '@src/services/api'; -import { - DefaultSeverityState, - FETCH_SEVERITY_DATA, - UPDATE_SEVERITY_DATA, -} from './constants'; -import FallbackComponent from '@src/components/Fallback'; +import { UPDATE_SEVERITY_DATA } from './constants'; import styles from './Severity.module.scss'; +import { Avatar, Typography } from '@navi/web-ui/lib/primitives'; -const SeverityForm: FC = () => { - const [data, setData] = useState(DefaultSeverityState); - const [isLoading, setIsLoading] = useState(false); - - useEffect(() => { - const endPoint = FETCH_SEVERITY_DATA; - setIsLoading(true); - ApiService.get(endPoint) - .then(response => { - setIsLoading(false); - const responseData = response?.data?.data?.map(item => { - return { - id: item.id, - name: item.name, - }; - }); - setData(responseData); - }) - .catch(error => { - const toastMessage = `${ - error?.response?.data?.error?.message - ? `${error?.response?.data?.error?.message},` - : '' - }`; - setIsLoading(false); - toast.error(toastMessage); - }); - }, []); +const SeverityForm = ({ data }) => { + const [severities, setSeverities] = useState(data); const submitHandler = () => { const endPoint = UPDATE_SEVERITY_DATA; - ApiService.post(endPoint, { severities: data }) + ApiService.post(endPoint, { severities: [severities] }) .then(response => { toast.success('Severities Updated Successfully'); - console.log('severity update response: ', response); }) .catch(error => { const toastMessage = `${ @@ -60,37 +29,58 @@ const SeverityForm: FC = () => { }); }; - const handleChange = (index: number, value: string) => { - const tempData = data; - tempData[index] = { ...tempData[index], name: value }; - setData(tempData); + const handleChange = (value: string) => { + let tempData = data; + tempData = { ...tempData, name: value }; + setSeverities(tempData); }; - if (isLoading) { - return ; - } - return (
- {data?.map((sev: any, index: number) => ( -
+
+
+ + Members + + {data?.participants?.length ? ( + data?.participants?.map(participant => ( +
+
+ {' '} + {participant?.name} +
+
+ )) + ) : ( + + - + + )} +
+
+
+
+
handleChange(index, e.target.value)} - value={sev?.name} + placeholder={`Sev ${data?.id - 1} Label`} + onChange={e => handleChange(e.target.value)} + value={data?.name} fullWidth />
- ))} - + +
); }; diff --git a/src/Pages/Severity/SeverityResults.tsx b/src/Pages/Severity/SeverityResults.tsx new file mode 100644 index 0000000..c2aace9 --- /dev/null +++ b/src/Pages/Severity/SeverityResults.tsx @@ -0,0 +1,67 @@ +import { useEffect, useState } from 'react'; + +import { + Accordion, + AccordionGroup, + Typography, +} from '@navi/web-ui/lib/primitives'; +import { toast } from '@navi/web-ui/lib/primitives/Toast'; + +import { ApiService } from '@src/services/api'; +import { FETCH_SEVERITY_DATA } from './constants'; +import FallbackComponent from '@src/components/Fallback'; +import SeverityForm from './SeverityForm'; + +import styles from './Severity.module.scss'; + +const SeverityResults = () => { + const [data, setData] = useState([]); + const [isLoading, setIsLoading] = useState(false); + + useEffect(() => { + const endPoint = FETCH_SEVERITY_DATA; + setIsLoading(true); + ApiService.get(endPoint) + .then(response => { + setIsLoading(false); + const responseData = response?.data?.data; + setData(responseData); + }) + .catch(error => { + const toastMessage = `${ + error?.response?.data?.error?.message + ? `${error?.response?.data?.error?.message},` + : '' + }`; + setIsLoading(false); + toast.error(toastMessage); + setData([]); + }); + }, []); + + if (isLoading) { + return ; + } + + return ( +
+ + {data?.map((severity: any) => ( +
+ + {severity?.name} + + } + > + + +
+ ))} +
+
+ ); +}; + +export default SeverityResults; diff --git a/src/Pages/Severity/index.tsx b/src/Pages/Severity/index.tsx index 3d305d0..a57d605 100644 --- a/src/Pages/Severity/index.tsx +++ b/src/Pages/Severity/index.tsx @@ -1,12 +1,12 @@ import { FC } from 'react'; import Typography from '@navi/web-ui/lib/primitives/Typography'; -import SeverityForm from './SeverityForm'; +import SeverityResults from './SeverityResults'; const Severity: FC = () => { return ( <> Severity - + ); }; From 11b315e533cb4fbafbaa2d1f3b35d920f2e84f71 Mon Sep 17 00:00:00 2001 From: yashmantri Date: Wed, 26 Apr 2023 00:19:50 +0530 Subject: [PATCH 02/10] TP-24975 | Code Refactored --- src/Pages/Severity/SeverityForm.tsx | 5 +++-- src/Pages/Severity/constants.ts | 25 +++---------------------- 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/src/Pages/Severity/SeverityForm.tsx b/src/Pages/Severity/SeverityForm.tsx index 5b29bd9..9be338e 100644 --- a/src/Pages/Severity/SeverityForm.tsx +++ b/src/Pages/Severity/SeverityForm.tsx @@ -5,12 +5,13 @@ import Button from '@navi/web-ui/lib/primitives/Button'; import { toast } from '@navi/web-ui/lib/primitives/Toast'; import { ApiService } from '@src/services/api'; -import { UPDATE_SEVERITY_DATA } from './constants'; +import { SeverityFormProps, UPDATE_SEVERITY_DATA } from './constants'; import styles from './Severity.module.scss'; import { Avatar, Typography } from '@navi/web-ui/lib/primitives'; -const SeverityForm = ({ data }) => { +const SeverityForm = (props: SeverityFormProps) => { + const { data } = props; const [severities, setSeverities] = useState(data); const submitHandler = () => { diff --git a/src/Pages/Severity/constants.ts b/src/Pages/Severity/constants.ts index e0d295d..2763942 100644 --- a/src/Pages/Severity/constants.ts +++ b/src/Pages/Severity/constants.ts @@ -2,25 +2,6 @@ export const FETCH_SEVERITY_DATA = `${window?.config?.BASE_API_URL}/severities`; export const UPDATE_SEVERITY_DATA = `${window?.config?.BASE_API_URL}/severities`; -export const DefaultSeverityState = [ - { - id: 1, - name: '', - }, - { - id: 2, - name: '', - }, - { - id: 3, - name: '', - }, - { - id: 4, - name: '', - }, -]; - -export const isSaveBtnDisabled = (data: any) => { - return data?.filter(severity => !severity?.name); -}; +export interface SeverityFormProps { + data: any; +} From 7c62bf63d128173a32bb7bd6f09c8d761a53f5f7 Mon Sep 17 00:00:00 2001 From: yashmantri Date: Wed, 26 Apr 2023 00:36:51 +0530 Subject: [PATCH 03/10] TP-24975 | Added Single Severity By Id API Call --- src/Pages/Severity/Severity.module.scss | 20 +++++++ src/Pages/Severity/SeverityForm.tsx | 70 ++++++++++++++++++++----- src/Pages/Severity/SeverityResults.tsx | 10 +++- src/Pages/Severity/constants.ts | 7 ++- 4 files changed, 92 insertions(+), 15 deletions(-) diff --git a/src/Pages/Severity/Severity.module.scss b/src/Pages/Severity/Severity.module.scss index 756448d..fe31585 100644 --- a/src/Pages/Severity/Severity.module.scss +++ b/src/Pages/Severity/Severity.module.scss @@ -28,3 +28,23 @@ transform: rotateX(180deg); border: 1px solid #e8e8e8; } + +.loader-container { + display: flex; + align-items: center; + justify-content: center; + height: 150px; +} + +.severity-deatils-wrapper { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 12px; +} + +.participant-detail { + display: flex; + align-items: center; + gap: 4px; +} diff --git a/src/Pages/Severity/SeverityForm.tsx b/src/Pages/Severity/SeverityForm.tsx index 9be338e..4afa492 100644 --- a/src/Pages/Severity/SeverityForm.tsx +++ b/src/Pages/Severity/SeverityForm.tsx @@ -1,18 +1,51 @@ -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import BorderedInput from '@navi/web-ui/lib/primitives/BorderedInput'; import Button from '@navi/web-ui/lib/primitives/Button'; import { toast } from '@navi/web-ui/lib/primitives/Toast'; +import { Avatar, Typography } from '@navi/web-ui/lib/primitives'; +import { LoadingIcon } from '@navi/web-ui/lib/icons'; import { ApiService } from '@src/services/api'; -import { SeverityFormProps, UPDATE_SEVERITY_DATA } from './constants'; +import { + FETCH_SINGLE_SEVERITY_DATA, + SeverityFormProps, + UPDATE_SEVERITY_DATA, +} from './constants'; import styles from './Severity.module.scss'; -import { Avatar, Typography } from '@navi/web-ui/lib/primitives'; const SeverityForm = (props: SeverityFormProps) => { - const { data } = props; - const [severities, setSeverities] = useState(data); + const { severityId, isExpanded } = props; + const [severities, setSeverities] = useState({}); + + const [isLoading, setIsLoading] = useState(false); + + const fetchSeverityById = () => { + const endPoint = FETCH_SINGLE_SEVERITY_DATA(severityId); + setIsLoading(true); + ApiService.get(endPoint) + .then(response => { + setIsLoading(false); + setSeverities(response?.data?.data); + }) + .catch(error => { + const toastMessage = `${ + error?.response?.data?.error?.message + ? `${error?.response?.data?.error?.message},` + : '' + }`; + setIsLoading(false); + toast.error(toastMessage); + setSeverities({}); + }); + }; + + useEffect(() => { + if (severityId && isExpanded) { + fetchSeverityById(); + } + }, [severityId, isExpanded]); const submitHandler = () => { const endPoint = UPDATE_SEVERITY_DATA; @@ -31,11 +64,19 @@ const SeverityForm = (props: SeverityFormProps) => { }; const handleChange = (value: string) => { - let tempData = data; + let tempData = severities; tempData = { ...tempData, name: value }; setSeverities(tempData); }; + if (isLoading) { + return ( +
+ +
+ ); + } + return (
@@ -43,11 +84,11 @@ const SeverityForm = (props: SeverityFormProps) => { Members - {data?.participants?.length ? ( - data?.participants?.map(participant => ( + {severities?.participants?.length ? ( + severities?.participants?.map(participant => (
{' '} @@ -56,7 +97,10 @@ const SeverityForm = (props: SeverityFormProps) => {
)) ) : ( - + - )} @@ -66,11 +110,11 @@ const SeverityForm = (props: SeverityFormProps) => {
handleChange(e.target.value)} - value={data?.name} + value={severities?.name} fullWidth />
diff --git a/src/Pages/Severity/SeverityResults.tsx b/src/Pages/Severity/SeverityResults.tsx index c2aace9..4d6d715 100644 --- a/src/Pages/Severity/SeverityResults.tsx +++ b/src/Pages/Severity/SeverityResults.tsx @@ -18,6 +18,8 @@ const SeverityResults = () => { const [data, setData] = useState([]); const [isLoading, setIsLoading] = useState(false); + const [severityId, setSeverityId] = useState(''); + useEffect(() => { const endPoint = FETCH_SEVERITY_DATA; setIsLoading(true); @@ -49,13 +51,19 @@ const SeverityResults = () => { {data?.map((severity: any) => (
{ + if (isExpanded) setSeverityId(severity?.id); + }} header={ {severity?.name} } > - +
))} diff --git a/src/Pages/Severity/constants.ts b/src/Pages/Severity/constants.ts index 2763942..b6587e2 100644 --- a/src/Pages/Severity/constants.ts +++ b/src/Pages/Severity/constants.ts @@ -3,5 +3,10 @@ export const FETCH_SEVERITY_DATA = `${window?.config?.BASE_API_URL}/severities`; export const UPDATE_SEVERITY_DATA = `${window?.config?.BASE_API_URL}/severities`; export interface SeverityFormProps { - data: any; + severityId: string; + isExpanded: boolean; } + +export const FETCH_SINGLE_SEVERITY_DATA = (payload: string): string => { + return `${window?.config?.BASE_API_URL}/severities/${payload}`; +}; From 3023cecc26c8f7933965d18fae3899da312c71cf Mon Sep 17 00:00:00 2001 From: "k.kamalakannan" Date: Wed, 26 Apr 2023 07:40:26 +0530 Subject: [PATCH 04/10] TP-24975: Minor updates --- .../Dashboard/partials/SearchResultsTable.tsx | 11 +++- .../Incidents/Content/Content.module.scss | 2 +- src/Pages/Incidents/Content/index.tsx | 2 +- src/Pages/Incidents/DrawerMode/index.tsx | 10 +-- src/Pages/Severity/Severity.module.scss | 6 +- src/Pages/Severity/SeverityForm.tsx | 64 +++++++++++++------ src/Pages/Team/Team.module.scss | 6 +- src/Pages/Team/partials/TeamForm.tsx | 8 +-- 8 files changed, 72 insertions(+), 37 deletions(-) diff --git a/src/Pages/Dashboard/partials/SearchResultsTable.tsx b/src/Pages/Dashboard/partials/SearchResultsTable.tsx index ec003bc..7ea21d4 100644 --- a/src/Pages/Dashboard/partials/SearchResultsTable.tsx +++ b/src/Pages/Dashboard/partials/SearchResultsTable.tsx @@ -53,6 +53,7 @@ const SearchResultsTable: FC = ({ severityName: item?.severityName, teamName: item?.teamName, createdAt: returnFormattedDate(item?.createdAt), + createdBy: item?.createdBy, updatedBy: item?.updatedBy, updatedAt: returnFormattedDate(item?.updatedAt), slackChannel: item?.slackChannel, @@ -107,8 +108,8 @@ const SearchResultsTable: FC = ({ suppressMovable: true, }, { - field: 'updatedBy', - headerName: 'Updated By', + field: 'createdBy', + headerName: 'Created By', suppressMovable: true, }, { @@ -116,6 +117,11 @@ const SearchResultsTable: FC = ({ headerName: 'Updated On', suppressMovable: true, }, + { + field: 'updatedBy', + headerName: 'Updated By', + suppressMovable: true, + }, ]; const onGridSizeChanged = (params: { @@ -173,6 +179,7 @@ const SearchResultsTable: FC = ({ onGridSizeChanged={onGridSizeChanged} onRowClicked={handleOpenDrawer} suppressColumnMoveAnimation + rowHeight={70} detailRowAutoHeight={true} /> { data?.map(participant => (
= ({ incidentId, slackChannel }) => { setSeverity(severity); setStatus(status); setTeam(team); + setIsLoading(false); }; const fetchIncidentDetails = (): void => { @@ -68,7 +69,6 @@ const DrawerMode: FC = ({ incidentId, slackChannel }) => { ApiService.get(endPoint) .then(response => { setIncidentDetails(response?.data?.data); - initFilters(response?.data?.data); }) .catch(error => { const toastMessage = `${ @@ -109,13 +109,13 @@ const DrawerMode: FC = ({ incidentId, slackChannel }) => { useEffect(() => { if ( + Object.keys(headerData).length && Object.keys(incidentDetails).length && - Object.keys(headerData) && incidentParticipants.length ) { - setIsLoading(false); + initFilters(incidentDetails); } - }, [incidentDetails, headerData, incidentParticipants]); + }, [headerData, incidentDetails, incidentParticipants]); const updateIncident = () => { const endPoint = UPDATE_INCIDENT; @@ -195,7 +195,7 @@ const DrawerMode: FC = ({ incidentId, slackChannel }) => {
{IncidentConstants.description}: - {incidentDetails?.description} + {incidentDetails?.description || '-'}
diff --git a/src/Pages/Severity/Severity.module.scss b/src/Pages/Severity/Severity.module.scss index fe31585..5088aea 100644 --- a/src/Pages/Severity/Severity.module.scss +++ b/src/Pages/Severity/Severity.module.scss @@ -1,4 +1,4 @@ -.custom-borderd-input { +.custom-bordered-input { margin-top: 20px; } @@ -21,7 +21,7 @@ .content-wrapper { width: 50%; - padding: 0 12px; + padding: 0 12px 12px; } .vertical-line { @@ -36,7 +36,7 @@ height: 150px; } -.severity-deatils-wrapper { +.severity-details-wrapper { display: flex; justify-content: space-between; align-items: center; diff --git a/src/Pages/Severity/SeverityForm.tsx b/src/Pages/Severity/SeverityForm.tsx index 4afa492..1f8d9ff 100644 --- a/src/Pages/Severity/SeverityForm.tsx +++ b/src/Pages/Severity/SeverityForm.tsx @@ -18,7 +18,7 @@ import styles from './Severity.module.scss'; const SeverityForm = (props: SeverityFormProps) => { const { severityId, isExpanded } = props; const [severities, setSeverities] = useState({}); - + const [slackUsers, setSlackUsers] = useState(''); const [isLoading, setIsLoading] = useState(false); const fetchSeverityById = () => { @@ -49,18 +49,29 @@ const SeverityForm = (props: SeverityFormProps) => { const submitHandler = () => { const endPoint = UPDATE_SEVERITY_DATA; - ApiService.post(endPoint, { severities: [severities] }) - .then(response => { - toast.success('Severities Updated Successfully'); - }) - .catch(error => { - const toastMessage = `${ - error?.response?.data?.error?.message - ? `${error?.response?.data?.error?.message},` - : '' - }`; - toast.error(toastMessage); - }); + const slackIds = severities?.participants?.length + ? severities?.participants?.map(participant => participant?.id) + : []; + const updatedSlackUsers = slackUsers?.includes(',') + ? slackUsers.split(',') + : [slackUsers]; + if (severities?.slackUserIds) { + severities.slackUserIds = [...updatedSlackUsers].concat(slackIds); + const payload = [{ ...severities }]; + ApiService.post(endPoint, { severities: payload }) + .then(response => { + toast.success('Severities Updated Successfully'); + fetchSeverityById(); + }) + .catch(error => { + const toastMessage = `${ + error?.response?.data?.error?.message + ? `${error?.response?.data?.error?.message},` + : '' + }`; + toast.error(toastMessage); + }); + } }; const handleChange = (value: string) => { @@ -80,15 +91,23 @@ const SeverityForm = (props: SeverityFormProps) => { return (
-
- +
+ + Description + + + {severities?.description ? severities.description : '-'} + +
+
+ Members {severities?.participants?.length ? ( severities?.participants?.map(participant => (
{' '} @@ -99,7 +118,7 @@ const SeverityForm = (props: SeverityFormProps) => { ) : ( - @@ -108,7 +127,7 @@ const SeverityForm = (props: SeverityFormProps) => {

-
+
{ fullWidth />
+
+ setSlackUsers(e.target.value)} + hintMsg="Please add as a comma separated string" + fullWidth + /> +
+
+ ); +}; + +export default SmartSearch; diff --git a/src/Pages/Severity/Severity.module.scss b/src/Pages/Severity/Severity.module.scss index 5088aea..d38fff5 100644 --- a/src/Pages/Severity/Severity.module.scss +++ b/src/Pages/Severity/Severity.module.scss @@ -35,16 +35,3 @@ justify-content: center; height: 150px; } - -.severity-details-wrapper { - display: flex; - justify-content: space-between; - align-items: center; - margin-top: 12px; -} - -.participant-detail { - display: flex; - align-items: center; - gap: 4px; -} diff --git a/src/Pages/Severity/SeverityForm.tsx b/src/Pages/Severity/SeverityForm.tsx index 7d9c32f..54ebfb4 100644 --- a/src/Pages/Severity/SeverityForm.tsx +++ b/src/Pages/Severity/SeverityForm.tsx @@ -3,10 +3,11 @@ import { useEffect, useState } from 'react'; import BorderedInput from '@navi/web-ui/lib/primitives/BorderedInput'; import Button from '@navi/web-ui/lib/primitives/Button'; import { toast } from '@navi/web-ui/lib/primitives/Toast'; -import { Avatar, Typography } from '@navi/web-ui/lib/primitives'; +import { Typography } from '@navi/web-ui/lib/primitives'; import { LoadingIcon } from '@navi/web-ui/lib/icons'; import { ApiService } from '@src/services/api'; +import MembersDetails from '@src/components/MembersDetails'; import { FETCH_SINGLE_SEVERITY_DATA, SeverityFormProps, @@ -100,26 +101,7 @@ const SeverityForm = (props: SeverityFormProps) => { Members - {severities?.participants?.length ? ( - severities?.participants?.map(participant => ( -
-
- {' '} - {participant?.name} -
-
- )) - ) : ( - - - - - )} +

diff --git a/src/Pages/Team/Team.module.scss b/src/Pages/Team/Team.module.scss index 07e0bc2..b5b590d 100644 --- a/src/Pages/Team/Team.module.scss +++ b/src/Pages/Team/Team.module.scss @@ -49,19 +49,6 @@ padding: 0 12px 12px; } -.participant-detail { - display: flex; - align-items: center; - gap: 4px; -} - -.team-details-wrapper { - display: flex; - justify-content: space-between; - align-items: center; - margin-top: 12px; -} - .vertical-line { transform: rotateX(180deg); border: 1px solid #e8e8e8; diff --git a/src/Pages/Team/partials/TeamForm.tsx b/src/Pages/Team/partials/TeamForm.tsx index cbc8686..7cf0de1 100644 --- a/src/Pages/Team/partials/TeamForm.tsx +++ b/src/Pages/Team/partials/TeamForm.tsx @@ -3,6 +3,7 @@ import { useEffect, useState } from 'react'; import LoadingIcon from '@navi/web-ui/lib/icons/LoadingIcon'; import Button from '@navi/web-ui/lib/primitives/Button'; import { toast } from '@navi/web-ui/lib/primitives/Toast'; +import { BorderedInput, Typography } from '@navi/web-ui/lib/primitives'; import { FETCH_SINGLE_TEAM_DATA, @@ -10,9 +11,9 @@ import { UPDATE_TEAM_DATA, } from '../constants'; import { ApiService } from '@src/services/api'; +import MembersDetails from '@src/components/MembersDetails'; import styles from '../Team.module.scss'; -import { Avatar, BorderedInput, Typography } from '@navi/web-ui/lib/primitives'; const TeamForm = (props: TeamFormProps) => { const { teamId, isExpanded, setTeamId } = props; @@ -86,26 +87,7 @@ const TeamForm = (props: TeamFormProps) => { Members - {data?.participants?.length ? ( - data?.participants?.map(participant => ( -
-
- {' '} - {participant?.name} -
-
- )) - ) : ( - - - - - )} +

diff --git a/src/components/MembersDetails/Members.module.scss b/src/components/MembersDetails/Members.module.scss new file mode 100644 index 0000000..778732d --- /dev/null +++ b/src/components/MembersDetails/Members.module.scss @@ -0,0 +1,12 @@ +.member-details-wrapper { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 12px; +} + +.participant-detail { + display: flex; + align-items: center; + gap: 4px; +} diff --git a/src/components/MembersDetails/index.tsx b/src/components/MembersDetails/index.tsx new file mode 100644 index 0000000..fcb2fe0 --- /dev/null +++ b/src/components/MembersDetails/index.tsx @@ -0,0 +1,30 @@ +import { Avatar, Typography } from '@navi/web-ui/lib/primitives'; + +import styles from './Members.module.scss'; + +const MembersDetails = (props: any) => { + const { data } = props; + return ( +
+ {data?.participants?.length ? ( + data?.participants?.map(participant => ( +
+
+ {' '} + {participant?.name} +
+
+ )) + ) : ( + + - + + )} +
+ ); +}; + +export default MembersDetails; From f55f77af76254f43fa807623a5ab6e2606451274 Mon Sep 17 00:00:00 2001 From: yashmantri Date: Wed, 26 Apr 2023 13:19:50 +0530 Subject: [PATCH 08/10] TP-24975 | Added View More members support + Added lastUpdatedAt in Accordion --- src/Pages/Severity/Severity.module.scss | 11 +++++ src/Pages/Severity/SeverityResults.tsx | 14 ++++-- src/Pages/Team/Team.module.scss | 11 +++++ src/Pages/Team/constants.ts | 1 + src/Pages/Team/partials/TeamResultsTable.tsx | 17 +++++-- .../MembersDetails/Members.module.scss | 1 + src/components/MembersDetails/index.tsx | 48 ++++++++++++++----- 7 files changed, 84 insertions(+), 19 deletions(-) diff --git a/src/Pages/Severity/Severity.module.scss b/src/Pages/Severity/Severity.module.scss index d38fff5..3f5a745 100644 --- a/src/Pages/Severity/Severity.module.scss +++ b/src/Pages/Severity/Severity.module.scss @@ -35,3 +35,14 @@ justify-content: center; height: 150px; } + +.accordion-header { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + + .title { + padding: 12px; + } +} diff --git a/src/Pages/Severity/SeverityResults.tsx b/src/Pages/Severity/SeverityResults.tsx index 4d6d715..86225c6 100644 --- a/src/Pages/Severity/SeverityResults.tsx +++ b/src/Pages/Severity/SeverityResults.tsx @@ -11,6 +11,7 @@ import { ApiService } from '@src/services/api'; import { FETCH_SEVERITY_DATA } from './constants'; import FallbackComponent from '@src/components/Fallback'; import SeverityForm from './SeverityForm'; +import { returnFormattedDate } from '@src/services/globalUtils'; import styles from './Severity.module.scss'; @@ -55,9 +56,16 @@ const SeverityResults = () => { if (isExpanded) setSeverityId(severity?.id); }} header={ - - {severity?.name} - +
+ + {severity?.name} + + {severity?.lastUpdatedAt && ( + + {returnFormattedDate(severity?.lastUpdatedAt)} + + )} +
} > ; + lastUpdatedAt: string; } export interface TeamFormProps { diff --git a/src/Pages/Team/partials/TeamResultsTable.tsx b/src/Pages/Team/partials/TeamResultsTable.tsx index f745e2f..2685bda 100644 --- a/src/Pages/Team/partials/TeamResultsTable.tsx +++ b/src/Pages/Team/partials/TeamResultsTable.tsx @@ -1,12 +1,14 @@ import { useState } from 'react'; import Typography from '@navi/web-ui/lib/primitives/Typography'; +import { Accordion, AccordionGroup } from '@navi/web-ui/lib/primitives'; import { TeamResultsTableProps } from '@src/Pages/Incidents/constants'; import TeamForm from './TeamForm'; import { TeamsData } from '../constants'; +import { returnFormattedDate } from '@src/services/globalUtils'; -import { Accordion, AccordionGroup } from '@navi/web-ui/lib/primitives'; +import styles from '../Team.module.scss'; const TeamResultsTable = (props: TeamResultsTableProps) => { const { teamsData } = props; @@ -23,9 +25,16 @@ const TeamResultsTable = (props: TeamResultsTableProps) => { if (isExpanded) setTeamId(team?.id); }} header={ - - {team?.name} - +
+ + {team?.name} + + {team?.lastUpdatedAt && ( + + {returnFormattedDate(team?.lastUpdatedAt)} + + )} +
} > { const { data } = props; + const totalMembers = data?.participants?.length; + const [showTotalMembers, setShowTotalMembers] = useState(10); + return (
- {data?.participants?.length ? ( - data?.participants?.map(participant => ( -
-
- {' '} - {participant?.name} -
-
- )) + {totalMembers ? ( + <> + {data?.participants + ?.slice(0, showTotalMembers) + ?.map((participant, index) => ( +
+
+ {' '} + {participant?.name} + {totalMembers > 10 && index === showTotalMembers - 1 ? ( + totalMembers !== showTotalMembers ? ( +
setShowTotalMembers(totalMembers)}> + + +{totalMembers - showTotalMembers} More + +
+ ) : ( +
setShowTotalMembers(10)}> + View less +
+ ) + ) : ( + '' + )} +
+
+ ))} + ) : ( - From a3b3a6331f910d08d9f8a818a550d29f2991671a Mon Sep 17 00:00:00 2001 From: yashmantri Date: Wed, 26 Apr 2023 13:26:52 +0530 Subject: [PATCH 09/10] TP-24975 | Added Disabled check for search bar --- src/Pages/Dashboard/partials/SmartSearch.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Pages/Dashboard/partials/SmartSearch.tsx b/src/Pages/Dashboard/partials/SmartSearch.tsx index 576edbe..2c69669 100644 --- a/src/Pages/Dashboard/partials/SmartSearch.tsx +++ b/src/Pages/Dashboard/partials/SmartSearch.tsx @@ -32,7 +32,11 @@ const SmartSearch: FC = ({ updateSearchResults }) => { placeholder={placeHolder} containerClassName={cx(styles['input-container'])} /> -
From ec31d970e8ddfe954e9bd0112b8e63783c7e825d Mon Sep 17 00:00:00 2001 From: yashmantri Date: Wed, 26 Apr 2023 14:02:55 +0530 Subject: [PATCH 10/10] TP-24975 | DISABLE_UNIVERSAL_AUTH entrypoint added --- entrypoint.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/entrypoint.sh b/entrypoint.sh index 6cf73d0..b54a85e 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -5,5 +5,6 @@ sed -i "s~~${AUTH_CLIENT_ID}~g" /usr/share/nginx/html/config.js sed -i "s~~${ENVIRONMENT}~g" /usr/share/nginx/html/config.js sed -i "s~~${BASE_API_URL}~g" /usr/share/nginx/html/config.js sed -i "s~CSP_HEADER~${CSP_HEADER}~g" /etc/nginx/conf.d/nginx.conf +sed -i "s~DISABLE_UNIVERSAL_AUTH~${DISABLE_UNIVERSAL_AUTH}~g" /etc/nginx/conf.d/nginx.conf exec "$@"