From 70a74e5e3cd0864f84b908ccd7e5a408a4b8ef2e Mon Sep 17 00:00:00 2001 From: Alec M Date: Mon, 22 Jan 2024 11:49:56 -0500 Subject: [PATCH] fix: Active submission prompt persisting past first save Also migrates to Notistack for this specific page --- src/content/organizations/OrganizationView.tsx | 15 +++++---------- src/graphql/editOrganization.ts | 12 +++++++++++- src/graphql/getOrganization.ts | 2 ++ 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/content/organizations/OrganizationView.tsx b/src/content/organizations/OrganizationView.tsx index 5faa602b..1eec98a6 100644 --- a/src/content/organizations/OrganizationView.tsx +++ b/src/content/organizations/OrganizationView.tsx @@ -6,12 +6,12 @@ import { OutlinedInput, Select, Stack, Typography, styled, } from '@mui/material'; +import { useSnackbar } from 'notistack'; import { cloneDeep } from 'lodash'; import { Controller, useForm } from 'react-hook-form'; import { useNavigate } from 'react-router-dom'; import bannerSvg from '../../assets/banner/profile_banner.png'; import profileIcon from '../../assets/icons/organization.svg'; -import GenericAlert from '../../components/GenericAlert'; import SuspenseLoader from '../../components/SuspenseLoader'; import { CREATE_ORG, CreateOrgResp, @@ -156,13 +156,13 @@ const inactiveSubmissionStatus: SubmissionStatus[] = ["Completed", "Archived"]; */ const OrganizationView: FC = ({ _id }: Props) => { const navigate = useNavigate(); + const { enqueueSnackbar } = useSnackbar(); const [organization, setOrganization] = useState(null); const [dataSubmissions, setDataSubmissions] = useState[] | null>(null); const [error, setError] = useState(null); const [saving, setSaving] = useState(false); const [confirmOpen, setConfirmOpen] = useState(false); - const [changesAlert, setChangesAlert] = useState(""); const assignedStudies: string[] = useMemo(() => { const activeStudies = {}; @@ -258,7 +258,7 @@ const OrganizationView: FC = ({ _id }: Props) => { setOrganization(null); setDataSubmissions(null); - setChangesAlert("This organization has been successfully added."); + enqueueSnackbar("This organization has been successfully added.", { variant: "default" }); reset(); } else { const { data: d, errors } = await editOrganization({ variables: { orgID: organization._id, ...variables, } }) @@ -270,12 +270,12 @@ const OrganizationView: FC = ({ _id }: Props) => { return; } - setChangesAlert("All changes have been saved"); + enqueueSnackbar("All changes have been saved.", { variant: "default" }); setFormValues(data); + setOrganization((prev: Organization) => ({ ...prev, studies: d.editOrganization.studies })); } setError(null); - setTimeout(() => setChangesAlert(""), 10000); }; /** @@ -331,11 +331,6 @@ const OrganizationView: FC = ({ _id }: Props) => { return ( <> - - - {changesAlert} - - ; + editOrganization: Organization; }; diff --git a/src/graphql/getOrganization.ts b/src/graphql/getOrganization.ts index 44682f30..b2184cc5 100644 --- a/src/graphql/getOrganization.ts +++ b/src/graphql/getOrganization.ts @@ -12,6 +12,8 @@ export const query = gql` studyName studyAbbreviation } + createdAt + updateAt } listSubmissions(first: -1, offset: 0, orderBy: "updatedAt", sortDirection: "ASC", organization: $organization, status: "All") { submissions {