From 457cd02cc426a072ea718133fa3aeccb9e325874 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 28 Jun 2022 14:03:01 +0530 Subject: [PATCH 1/5] Fix #851: Simplify data flow and error handling --- src/lib/components/actions.svelte | 18 +++--- src/lib/components/editor.svelte | 7 +-- src/lib/components/history/history.svelte | 6 +- src/lib/components/preset.svelte | 5 +- src/lib/components/view.svelte | 33 +++++----- src/lib/types.d.ts | 18 +++++- src/lib/util/error.ts | 3 - src/lib/util/state.ts | 74 ++++++++++++++++++----- src/routes/edit.svelte | 71 ++++++---------------- 9 files changed, 131 insertions(+), 104 deletions(-) delete mode 100644 src/lib/util/error.ts diff --git a/src/lib/components/actions.svelte b/src/lib/components/actions.svelte index 7a23e0149..db5e74375 100644 --- a/src/lib/components/actions.svelte +++ b/src/lib/components/actions.svelte @@ -4,7 +4,7 @@ import Card from '$lib/components/card/card.svelte'; import { krokiRendererUrl, rendererUrl } from '$lib/util/env'; import { pakoSerde } from '$lib/util/serde'; - import { serializedState, codeStore } from '$lib/util/state'; + import { stateStore } from '$lib/util/state'; import { toBase64 } from 'js-base64'; import moment from 'moment'; @@ -130,10 +130,10 @@ }; let gistURL = ''; - codeStore.subscribe((state) => { - if (state.loader?.type === 'gist') { + stateStore.subscribe(({ loader }) => { + if (loader?.type === 'gist') { // @ts-ignore Gist will have url - gistURL = state.loader.config.url; + gistURL = loader.config.url; } }); @@ -155,11 +155,11 @@ if (browser && ['mermaid.live', 'netlify'].some((path) => window.location.host.includes(path))) { isNetlify = true; } - serializedState.subscribe((encodedState: string) => { - iUrl = `${rendererUrl}/img/${encodedState}`; - svgUrl = `${rendererUrl}/svg/${encodedState}`; - krokiUrl = `${krokiRendererUrl}/mermaid/svg/${pakoSerde.serialize($codeStore.code)}`; - mdCode = `[![](${iUrl})](${window.location.protocol}//${window.location.host}${window.location.pathname}#${encodedState})`; + stateStore.subscribe(({ code, serialized }) => { + iUrl = `${rendererUrl}/img/${serialized}`; + svgUrl = `${rendererUrl}/svg/${serialized}`; + krokiUrl = `${krokiRendererUrl}/mermaid/svg/${pakoSerde.serialize(code)}`; + mdCode = `[![](${iUrl})](${window.location.protocol}//${window.location.host}${window.location.pathname}#${serialized})`; }); diff --git a/src/lib/components/editor.svelte b/src/lib/components/editor.svelte index 536bb427a..1399a3506 100644 --- a/src/lib/components/editor.svelte +++ b/src/lib/components/editor.svelte @@ -1,6 +1,6 @@ diff --git a/src/lib/components/view.svelte b/src/lib/components/view.svelte index 6bb96687c..976a41c2b 100644 --- a/src/lib/components/view.svelte +++ b/src/lib/components/view.svelte @@ -1,7 +1,5 @@ +{#if error && $stateStore.error instanceof Error} +
{$stateStore.error}
+{/if} +