From 2785a0ab2dc880c0df8b5823fe5f4c951426bbf0 Mon Sep 17 00:00:00 2001 From: Yaroslav Kosterin Date: Fri, 14 Nov 2025 13:37:42 +0200 Subject: [PATCH 01/13] unsubscribe provider from fund immediately --- .../components/elements/info-box/InfoBox.tsx | 3 + .../modals/ModalFundUnsubscribe.tsx | 104 +-- .../pages/provider-funds/ProviderFunds.tsx | 28 +- .../ProviderFundUnsubscriptionsTable.tsx | 432 ------------ .../elements/ProviderFundsTable.tsx | 104 ++- .../SponsorFundUnsubscriptions.tsx | 154 ----- .../SponsorFundUnsubscriptionTableItem.tsx | 98 --- .../elements/FundProviderTableItem.tsx | 4 +- .../SponsorProviderOrganizations.tsx | 637 ++++++++---------- .../elements/ProvidersTableItemFunds.tsx | 1 + .../dashboard/i18n/nl/pages/provider-funds.js | 6 +- .../modules/state_router/RouterBuilder.tsx | 1 - .../dashboard/props/models/FundProvider.tsx | 3 +- .../props/models/FundProviderUnsubscribe.tsx | 19 - react/src/dashboard/router/routes.tsx | 7 - .../services/FundUnsubscribeService.ts | 72 -- .../dashboard/services/ProviderFundService.ts | 13 +- 17 files changed, 467 insertions(+), 1219 deletions(-) delete mode 100644 react/src/dashboard/components/pages/provider-funds/elements/ProviderFundUnsubscriptionsTable.tsx delete mode 100644 react/src/dashboard/components/pages/sponsor-fund-unsubscriptions/SponsorFundUnsubscriptions.tsx delete mode 100644 react/src/dashboard/components/pages/sponsor-fund-unsubscriptions/elements/SponsorFundUnsubscriptionTableItem.tsx delete mode 100644 react/src/dashboard/props/models/FundProviderUnsubscribe.tsx delete mode 100644 react/src/dashboard/services/FundUnsubscribeService.ts diff --git a/react/src/dashboard/components/elements/info-box/InfoBox.tsx b/react/src/dashboard/components/elements/info-box/InfoBox.tsx index abed210fe..5f8a43af2 100644 --- a/react/src/dashboard/components/elements/info-box/InfoBox.tsx +++ b/react/src/dashboard/components/elements/info-box/InfoBox.tsx @@ -6,14 +6,17 @@ export default function InfoBox({ borderType = 'dashed', children, iconColor = 'primary', + dusk = null, }: { type?: 'default' | 'primary' | 'warning'; borderType?: 'dashed' | 'none'; children: ReactNode | ReactNode[]; iconColor?: 'primary' | 'warning'; + dusk?: string; }) { return (
void; className?: string; }) { - const [dateMin] = useState(addDays(new Date(), 1)); - const translate = useTranslate(); const pushSuccess = usePushSuccess(); const setProgress = useSetProgress(); const pushApiError = usePushApiError(); - const fundUnsubscribeService = useFundUnsubscribeService(); + const providerFundService = useProviderFundService(); - const form = useFormBuilder( - { - unsubscribe_at: null, - note: '', - }, - (values) => { - setProgress(0); + const [errorMessage, setErrorMessage] = React.useState(null); - fundUnsubscribeService - .store(organization.id, { fund_provider_id: providerFund.id, ...values }) - .then(() => { - pushSuccess('Gelukt!', 'Verzoek afmelding verstuurd.'); - modal.close(); - onUnsubscribe?.(); - }) - .catch((err: ResponseError) => { - pushApiError(err); - form.setErrors(err.data.errors); - }) - .finally(() => { - setProgress(100); - form.setIsLocked(false); - }); - }, - ); + const form = useFormBuilder({ note: '' }, (values) => { + setProgress(0); + setErrorMessage(null); + + providerFundService + .unsubscribe(organization.id, providerFund.id, values) + .then(() => { + pushSuccess('Gelukt!', 'Verzoek afmelding verstuurd.'); + modal.close(); + onUnsubscribe?.(); + }) + .catch((err: ResponseError) => { + pushApiError(err); + form.setErrors(err.data.errors); + + if (!err.data?.errors && err.data?.message) { + setErrorMessage(err.data.message); + } + }) + .finally(() => { + setProgress(100); + form.setIsLocked(false); + }); + }); return (
-
Request unsubscription
+
Afmelding voor de regeling
@@ -91,40 +89,46 @@ export default function ModalFundUnsubscribe({ Weet u zeker dat u zich wilt afmelden bij {providerFund.fund.name}?
- Als alles duidelijk is kunt u het onderstaande formulier invullen. + Optioneel kunt u een reden opgeven, zodat de gemeente weet waarom u zich heeft + afgemeld.
- - form.update({ unsubscribe_at: dateFormat(date) })} - /> - -
-
- +