Skip to content

Commit

Permalink
add errors
Browse files Browse the repository at this point in the history
  • Loading branch information
hardingjam committed Feb 26, 2025
1 parent 80d71a6 commit 51d3920
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 11 deletions.
9 changes: 1 addition & 8 deletions packages/webapp/src/routes/deploy/+layout.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
33 changes: 30 additions & 3 deletions packages/webapp/src/routes/deploy/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -57,10 +68,26 @@
</h1>
</div>

{#if strategyDetails.length > 0}
{#key strategyDetails}
{#if invalidStrategies.length > 0}
<div class="flex flex-col gap-4 rounded-xl bg-red-100 p-6 dark:bg-red-900">
<h2 class="text-xl font-semibold text-gray-900 dark:text-white">
Invalid Strategies in registry
</h2>
<div class="flex flex-col gap-2">
{#each invalidStrategies as strategy}
<div class="flex flex-col gap-1">
<span class="font-medium">{strategy.name}</span>
<span class="text-red-600 dark:text-red-400">{strategy.error}</span>
</div>
{/each}
</div>
</div>
{/if}

{#if validStrategies.length > 0}
{#key validStrategies}
<div class="mb-36 grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3">
{#each strategyDetails as strategyDetail}
{#each validStrategies as strategyDetail}
<StrategyShortTile
strategyDetails={strategyDetail.details}
registryName={strategyDetail.name}
Expand Down

0 comments on commit 51d3920

Please sign in to comment.