From f31801e790c57486d6f1788ef0ff99725e7b928f Mon Sep 17 00:00:00 2001 From: MananTank Date: Tue, 12 Nov 2024 19:52:35 +0000 Subject: [PATCH] ignore invalid module search param in deploy page (#5396) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Problem solved Short description of the bug fixed or feature added --- ## PR-Codex overview This PR focuses on updating the handling of the `module` parameter in the `searchParams` to support both an array and a string. It ensures that the code correctly processes the `module` regardless of its type. ### Detailed summary - Updated `module` type in `searchParams` to allow both `string[]` and `string`. - Modified the logic to handle `searchParams.module` as a string or an array. - Ensured that `modules` is derived correctly from `moduleParam`, defaulting to an empty array if no valid modules are found. > ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}` --- .../[contract_id]/[version]/deploy/page.tsx | 13 +++++++++---- .../[publisher]/[contract_id]/deploy/page.tsx | 14 ++++++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/apps/dashboard/src/app/(dashboard)/published-contract/[publisher]/[contract_id]/[version]/deploy/page.tsx b/apps/dashboard/src/app/(dashboard)/published-contract/[publisher]/[contract_id]/[version]/deploy/page.tsx index dedd51df0f1..ed97daf37e1 100644 --- a/apps/dashboard/src/app/(dashboard)/published-contract/[publisher]/[contract_id]/[version]/deploy/page.tsx +++ b/apps/dashboard/src/app/(dashboard)/published-contract/[publisher]/[contract_id]/[version]/deploy/page.tsx @@ -8,13 +8,18 @@ export default async function PublishedContractVersionDeployPage(props: { version: string; }>; searchParams: Promise<{ - module?: string[]; + module?: string[] | string; }>; }) { const searchParams = await props.searchParams; const params = await props.params; - const modules = searchParams.module - ?.map((m) => moduleFromBase64(m)) - .filter((m) => m !== null); + const moduleParam = + typeof searchParams.module === "string" + ? [searchParams.module] + : searchParams.module; + + const modules = + moduleParam?.map((m) => moduleFromBase64(m)).filter((m) => m !== null) || + []; return ; } diff --git a/apps/dashboard/src/app/(dashboard)/published-contract/[publisher]/[contract_id]/deploy/page.tsx b/apps/dashboard/src/app/(dashboard)/published-contract/[publisher]/[contract_id]/deploy/page.tsx index e2f83dfa356..cb79e018941 100644 --- a/apps/dashboard/src/app/(dashboard)/published-contract/[publisher]/[contract_id]/deploy/page.tsx +++ b/apps/dashboard/src/app/(dashboard)/published-contract/[publisher]/[contract_id]/deploy/page.tsx @@ -7,15 +7,21 @@ type Props = { contract_id: string; }>; searchParams: Promise<{ - module?: string[]; + module?: string[] | string; }>; }; export default async function PublishedContractDeployPage(props: Props) { const searchParams = await props.searchParams; const params = await props.params; - const modules = searchParams.module - ?.map((m) => moduleFromBase64(m)) - .filter((m) => m !== null); + const moduleParam = + typeof searchParams.module === "string" + ? [searchParams.module] + : searchParams.module; + + const modules = + moduleParam?.map((m) => moduleFromBase64(m)).filter((m) => m !== null) || + []; + return ; }