From 8505fac8b384464c2c1ac5a1d3d1c4983fb24484 Mon Sep 17 00:00:00 2001 From: Courtney Myers Date: Mon, 27 Jan 2025 11:31:22 -0500 Subject: [PATCH] Update UserDashboard component to set Formio base URL and project URL from data returned from config API --- app/client/src/components/userDashboard.tsx | 21 +++++++++++++++++---- app/client/src/types.ts | 2 ++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/app/client/src/components/userDashboard.tsx b/app/client/src/components/userDashboard.tsx index d545cc6f..baa67de6 100644 --- a/app/client/src/components/userDashboard.tsx +++ b/app/client/src/components/userDashboard.tsx @@ -1,21 +1,21 @@ +import { useEffect } from "react"; import { Link, Outlet, useLocation, useNavigate } from "react-router-dom"; import { Formio } from "@formio/react"; import premium from "@formio/premium/lib/index.js"; import uswds from "@formio/uswds"; import icons from "uswds/img/sprite.svg"; // --- -import { serverUrl, formioBaseUrl, formioProjectUrl } from "@/config"; +import { serverUrl } from "@/config"; import { useHelpdeskAccess, useConfigQuery, + useConfigData, useBapSamQuery, useBapSamData, } from "@/utilities"; import { Loading } from "@/components/loading"; import { useDialogActions } from "@/contexts/dialog"; -Formio.setBaseUrl(formioBaseUrl); -Formio.setProjectUrl(formioProjectUrl); Formio.use(premium); /* eslint-disable-line react-hooks/rules-of-hooks */ Formio.use(uswds); /* eslint-disable-line react-hooks/rules-of-hooks */ @@ -61,11 +61,24 @@ export function UserDashboard(props: { email: string }) { useConfigQuery(); useBapSamQuery(); + const configData = useConfigData(); const bapSamData = useBapSamData(); const { displayDialog } = useDialogActions(); const helpdeskAccess = useHelpdeskAccess(); + useEffect(() => { + const { formioBaseUrl, formioProjectName } = configData ?? {}; + + if (formioBaseUrl) { + Formio.setBaseUrl(formioBaseUrl); + } + + if (formioBaseUrl && formioProjectName) { + Formio.setProjectUrl(`${formioBaseUrl}/${formioProjectName}`); + } + }, [configData]); + const onSubmissionsPage = pathname === "/"; const onHelpdeskPage = pathname === "/helpdesk"; const onFormPage = @@ -93,7 +106,7 @@ export function UserDashboard(props: { email: string }) { }); } - if (!bapSamData || !email) { + if (!configData || !bapSamData || !email) { return ; } diff --git a/app/client/src/types.ts b/app/client/src/types.ts index cd23bf80..f206ecc0 100644 --- a/app/client/src/types.ts +++ b/app/client/src/types.ts @@ -25,6 +25,8 @@ export type UserData = { }; export type ConfigData = { + formioBaseUrl: string; + formioProjectName: string; rebateYear: RebateYear; submissionPeriodOpen: { 2022: { frf: boolean; prf: boolean; crf: boolean };