diff --git a/gui/rpk-gui/package-lock.json b/gui/rpk-gui/package-lock.json index 990ce35..c53753f 100644 --- a/gui/rpk-gui/package-lock.json +++ b/gui/rpk-gui/package-lock.json @@ -43,6 +43,7 @@ "mui-tiptap": "^1.18.1", "react": "^18.0.0", "react-dom": "^18.0.0", + "react-error-boundary": "^6.0.0", "react-hook-form": "^7.30.0", "react-i18next": "^15.5.1", "react-router": "^7.0.2" @@ -9180,6 +9181,18 @@ "react": "^18.3.1" } }, + "node_modules/react-error-boundary": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-6.0.0.tgz", + "integrity": "sha512-gdlJjD7NWr0IfkPlaREN2d9uUZUlksrfOx7SX62VRerwXbMY6ftGCIZua1VG1aXFNOimhISsTq+Owp725b9SiA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "peerDependencies": { + "react": ">=16.13.1" + } + }, "node_modules/react-hook-form": { "version": "7.56.1", "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.56.1.tgz", diff --git a/gui/rpk-gui/package.json b/gui/rpk-gui/package.json index 75cf051..747a0b4 100644 --- a/gui/rpk-gui/package.json +++ b/gui/rpk-gui/package.json @@ -39,6 +39,7 @@ "mui-tiptap": "^1.18.1", "react": "^18.0.0", "react-dom": "^18.0.0", + "react-error-boundary": "^6.0.0", "react-hook-form": "^7.30.0", "react-i18next": "^15.5.1", "react-router": "^7.0.2" diff --git a/gui/rpk-gui/src/pages/ErrorPage.tsx b/gui/rpk-gui/src/pages/ErrorPage.tsx new file mode 100644 index 0000000..1209ec4 --- /dev/null +++ b/gui/rpk-gui/src/pages/ErrorPage.tsx @@ -0,0 +1,4 @@ + +export const Error404Page = () => { + return

EROR NO FUND

+}; diff --git a/gui/rpk-gui/src/pages/firm/base-page/Edit.tsx b/gui/rpk-gui/src/pages/firm/base-page/Edit.tsx index 817c63c..91fd3d6 100644 --- a/gui/rpk-gui/src/pages/firm/base-page/Edit.tsx +++ b/gui/rpk-gui/src/pages/firm/base-page/Edit.tsx @@ -38,6 +38,10 @@ const Edit = (props: EditProps) => { return } + if (query.error?.status == 404) { + throw query.error + } + const record = query.data.data; return ( <> diff --git a/gui/rpk-gui/src/pages/firm/base-page/List.tsx b/gui/rpk-gui/src/pages/firm/base-page/List.tsx index 89734bc..54cfe74 100644 --- a/gui/rpk-gui/src/pages/firm/base-page/List.tsx +++ b/gui/rpk-gui/src/pages/firm/base-page/List.tsx @@ -85,6 +85,10 @@ const List = (props: ListProps) => { return } + if (tableQueryResult.error?.status == 404) { + throw tableQueryResult.error + } + return ( diff --git a/gui/rpk-gui/src/pages/firm/index.tsx b/gui/rpk-gui/src/pages/firm/index.tsx index f95c539..b6183fd 100644 --- a/gui/rpk-gui/src/pages/firm/index.tsx +++ b/gui/rpk-gui/src/pages/firm/index.tsx @@ -1,7 +1,7 @@ import { Route, Routes, Link } from "react-router"; -import React, { useContext } from "react"; -import { useForm, useOne, useTranslation } from "@refinedev/core"; -import { FirmContext, FirmContextProvider } from "../../contexts/FirmContext"; +import React from "react"; +import { useForm, useTranslation } from "@refinedev/core"; +import { FirmContextProvider } from "../../contexts/FirmContext"; import { Header } from "../../components"; import { CrudForm } from "../../lib/crud/components/crud-form"; import { IFirm } from "../../interfaces"; @@ -10,22 +10,26 @@ import { ContractRoutes } from "./ContractRoutes"; import { DraftRoutes } from "./DraftRoutes"; import { TemplateRoutes } from "./TemplateRoutes"; import { ProvisionRoutes } from "./ProvisionRoutes"; +import { ErrorBoundary } from "react-error-boundary"; +import { Error404Page } from "../ErrorPage"; export const FirmRoutes = () => { return ( -
- - } /> - } /> - } /> - } /> - } /> - } /> - - +
} > + +
+ + } /> + } /> + } /> + } /> + } /> + } /> + + + } /> );