From 0cee24dfbed39697486bb485ef08ac66eec9c30e Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Thu, 2 May 2024 14:53:50 +0200 Subject: [PATCH] Added error handling to allow ID to be searchable --- src/frontend/src/pages/StorePage/index.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/pages/StorePage/index.tsx b/src/frontend/src/pages/StorePage/index.tsx index 4bc482f56..9c2f9cba3 100644 --- a/src/frontend/src/pages/StorePage/index.tsx +++ b/src/frontend/src/pages/StorePage/index.tsx @@ -9,7 +9,7 @@ import { SkeletonCardComponent } from "../../components/skeletonCardComponent"; import { Button } from "../../components/ui/button"; import { Input } from "../../components/ui/input"; -import { Link, useParams } from "react-router-dom"; +import { Link, useNavigate, useParams } from "react-router-dom"; import { TagsSelector } from "../../components/tagsSelectorComponent"; import { Badge } from "../../components/ui/badge"; import { @@ -65,6 +65,8 @@ export default function StorePage(): JSX.Element { const [searchNow, setSearchNow] = useState(""); const [selectFilter, setSelectFilter] = useState("all"); + const navigate = useNavigate(); + useEffect(() => { if (!loadingApiKey) { if (!hasApiKey) { @@ -149,6 +151,11 @@ export default function StorePage(): JSX.Element { .catch((err) => { if (err.response?.status === 403 || err.response?.status === 401) { setValidApiKey(false); + } else if ( + err.response?.data?.detail === + "Unexpected error: Object of type UUID is not JSON serializable" + ) { + navigate("/store/" + inputText); } else { setSearchData([]); setTotalRowsCount(0); @@ -371,7 +378,10 @@ export default function StorePage(): JSX.Element { data={item} authorized={validApiKey} disabled={loading} - playground={item.last_tested_version?.includes("1.0.0")&& !item.is_component} + playground={ + item.last_tested_version?.includes("1.0.0") && + !item.is_component + } /> );