From 8faf2b6a49e5a92df57780fd2fcbe3f6e6b2e39e Mon Sep 17 00:00:00 2001 From: Maciej Szewczyk Date: Wed, 19 Feb 2025 12:45:36 +0100 Subject: [PATCH] loading button program --- .../programs/CreateProgram/PartnersStep.tsx | 10 +++++--- .../programs/EditProgram/PartnersStep.tsx | 10 +++++--- .../pages/program/CreateProgramPage.tsx | 3 ++- .../pages/program/DuplicateProgramPage.tsx | 3 ++- .../pages/program/EditProgramPage.tsx | 25 ++++++++++--------- 5 files changed, 31 insertions(+), 20 deletions(-) diff --git a/src/frontend/src/components/programs/CreateProgram/PartnersStep.tsx b/src/frontend/src/components/programs/CreateProgram/PartnersStep.tsx index 45b7b9ad70..b994eb142c 100644 --- a/src/frontend/src/components/programs/CreateProgram/PartnersStep.tsx +++ b/src/frontend/src/components/programs/CreateProgram/PartnersStep.tsx @@ -11,6 +11,7 @@ import { ProgramPartnerCard } from './ProgramPartnerCard'; import { FormikSelectField } from '@shared/Formik/FormikSelectField'; import { DividerLine } from '@core/DividerLine'; import { partnerAccessChoices } from '@components/programs/constants'; +import { LoadingButton } from '@components/core/LoadingButton'; interface PartnersStepProps { values; @@ -21,6 +22,7 @@ interface PartnersStepProps { submitForm: () => void; setFieldValue; programId?: string; + loading: boolean; } export const PartnersStep: FC = ({ @@ -32,6 +34,7 @@ export const PartnersStep: FC = ({ submitForm, setFieldValue, programId: formProgramId, + loading, }) => { const { t } = useTranslation(); const { baseUrl, programId, businessArea } = useBaseUrl(); @@ -73,7 +76,7 @@ export const PartnersStep: FC = ({ return ( <> - + = ({ {t('Back')} - + diff --git a/src/frontend/src/components/programs/EditProgram/PartnersStep.tsx b/src/frontend/src/components/programs/EditProgram/PartnersStep.tsx index 643362fa27..ba63e6b5bf 100644 --- a/src/frontend/src/components/programs/EditProgram/PartnersStep.tsx +++ b/src/frontend/src/components/programs/EditProgram/PartnersStep.tsx @@ -11,6 +11,7 @@ import { FormikSelectField } from '@shared/Formik/FormikSelectField'; import { DividerLine } from '@core/DividerLine'; import { partnerAccessChoices } from '@components/programs/constants'; import { ProgramPartnerCard } from '../CreateProgram/ProgramPartnerCard'; +import { LoadingButton } from '@components/core/LoadingButton'; interface PartnersStepProps { values; @@ -19,6 +20,7 @@ interface PartnersStepProps { submitForm: () => void; setFieldValue; programId?: string; + loading: boolean; } export const PartnersStep: FC = ({ @@ -28,6 +30,7 @@ export const PartnersStep: FC = ({ submitForm, setFieldValue, programId: formProgramId, + loading, }) => { const { t } = useTranslation(); const { baseUrl, programId, businessArea } = useBaseUrl(); @@ -69,7 +72,7 @@ export const PartnersStep: FC = ({ return ( <> - + = ({ - + diff --git a/src/frontend/src/containers/pages/program/CreateProgramPage.tsx b/src/frontend/src/containers/pages/program/CreateProgramPage.tsx index 47215e1e35..581d081d0b 100644 --- a/src/frontend/src/containers/pages/program/CreateProgramPage.tsx +++ b/src/frontend/src/containers/pages/program/CreateProgramPage.tsx @@ -52,7 +52,7 @@ export const CreateProgramPage = (): ReactElement => { const { data: pdusubtypeChoicesData, loading: pdusubtypeChoicesLoading } = usePduSubtypeChoicesDataQuery(); - const [mutate] = useCreateProgramMutation({ + const [mutate, { loading: loadingCreate }] = useCreateProgramMutation({ refetchQueries: () => [ { query: ALL_PROGRAMS_QUERY, variables: { businessArea } }, ], @@ -362,6 +362,7 @@ export const CreateProgramPage = (): ReactElement => { setStep={setStep} submitForm={submitForm} setFieldValue={setFieldValue} + loading={loadingCreate} /> )} diff --git a/src/frontend/src/containers/pages/program/DuplicateProgramPage.tsx b/src/frontend/src/containers/pages/program/DuplicateProgramPage.tsx index 19bf98011a..86c74c4dfb 100644 --- a/src/frontend/src/containers/pages/program/DuplicateProgramPage.tsx +++ b/src/frontend/src/containers/pages/program/DuplicateProgramPage.tsx @@ -38,7 +38,7 @@ export const DuplicateProgramPage = (): ReactElement => { const { id } = useParams(); const location = useLocation(); const permissions = usePermissions(); - const [mutate] = useCopyProgramMutation(); + const [mutate, { loading: loadingCopy }] = useCopyProgramMutation(); const [step, setStep] = useState(0); const { showMessage } = useSnackbar(); const { baseUrl, businessArea } = useBaseUrl(); @@ -383,6 +383,7 @@ export const DuplicateProgramPage = (): ReactElement => { submitForm={submitForm} setFieldValue={setFieldValue} programId={id} + loading={loadingCopy} /> )} diff --git a/src/frontend/src/containers/pages/program/EditProgramPage.tsx b/src/frontend/src/containers/pages/program/EditProgramPage.tsx index c4604f3651..5ad08bd33e 100644 --- a/src/frontend/src/containers/pages/program/EditProgramPage.tsx +++ b/src/frontend/src/containers/pages/program/EditProgramPage.tsx @@ -60,18 +60,19 @@ export const EditProgramPage = (): ReactElement => { const { data: pdusubtypeChoicesData, loading: pdusubtypeChoicesLoading } = usePduSubtypeChoicesDataQuery(); - const [updateProgramDetails] = useUpdateProgramMutation({ - refetchQueries: [ - { - query: ALL_LOG_ENTRIES_QUERY, - variables: { - objectId: decodeIdString(id), - count: 5, - businessArea, + const [updateProgramDetails, { loading: loadingUpdate }] = + useUpdateProgramMutation({ + refetchQueries: [ + { + query: ALL_LOG_ENTRIES_QUERY, + variables: { + objectId: decodeIdString(id), + count: 5, + businessArea, + }, }, - }, - ], - }); + ], + }); const [updateProgramPartners] = useUpdateProgramPartnersMutation({ refetchQueries: [ @@ -345,7 +346,6 @@ export const EditProgramPage = (): ReactElement => { errors, setErrors, }) => { - const handleNextStep = async () => { await handleNext({ validateForm, @@ -437,6 +437,7 @@ export const EditProgramPage = (): ReactElement => { submitForm={submitForm} setFieldValue={setFieldValue} programId={id} + loading={loadingUpdate} />