diff --git a/packages/webapp/src/routes/deploy/+layout.ts b/packages/webapp/src/routes/deploy/+layout.ts index 771688d91..43573efc9 100644 --- a/packages/webapp/src/routes/deploy/+layout.ts +++ b/packages/webapp/src/routes/deploy/+layout.ts @@ -7,23 +7,16 @@ export const load: LayoutLoad = async ({ url }) => { const registry = url.searchParams.get('registry'); try { const registryDotrains = await fetchRegistryDotrains(registry || REGISTRY_URL); - if (!registryDotrains || registryDotrains.length === 0) { - throw new Error('No strategy registry found at URL'); - } const strategyDetails = await Promise.all( registryDotrains.map(async (registryDotrain) => { try { const details = await DotrainOrderGui.getStrategyDetails(registryDotrain.dotrain); - if (!details) { - throw new Error('This registry contains invalid Dotrain documents.'); - } return { ...registryDotrain, details }; } catch (error) { - throw new Error(error instanceof Error ? error.message : String(error)); + return { ...registryDotrain, error };; } }) ); - return { registry: registry || REGISTRY_URL, registryDotrains, diff --git a/packages/webapp/src/routes/deploy/+page.svelte b/packages/webapp/src/routes/deploy/+page.svelte index 4c248a7fd..f90d03cb0 100644 --- a/packages/webapp/src/routes/deploy/+page.svelte +++ b/packages/webapp/src/routes/deploy/+page.svelte @@ -2,12 +2,23 @@ import { PageHeader, StrategyShortTile } from '@rainlanguage/ui-components'; import { Button, Input, Toggle } from 'flowbite-svelte'; import { page } from '$app/stores'; + import type { NameAndDescriptionCfg } from '@rainlanguage/orderbook/js_api'; const { strategyDetails, error } = $page.data; let newRegistryUrl = ''; let advancedMode = false; + type StrategyDetail = { + details: NameAndDescriptionCfg; + name: string; + dotrain: string; + error?: unknown; + }; + + const validStrategies = strategyDetails.filter((strategy: StrategyDetail) => !strategy.error); + const invalidStrategies = strategyDetails.filter((strategy: StrategyDetail) => strategy.error); + const loadRegistryUrl = () => { // add the registry url to the url params window.history.pushState({}, '', window.location.pathname + '?registry=' + newRegistryUrl); @@ -57,10 +68,26 @@ - {#if strategyDetails.length > 0} - {#key strategyDetails} + {#if invalidStrategies.length > 0} +