Add WithGraphData

This commit is contained in:
Henrik Giesel 2021-03-21 22:06:25 +01:00
parent e11b31c29d
commit 36e14cd525
2 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1,31 @@
<script lang="typescript">
import { writable } from "svelte/store";
import useAsync from "./async";
import useAsyncReactive from "./asyncReactive";
import { getGraphData, RevlogRange, daysToRevlogRange } from "./graph-helpers";
import { getPreferences } from "./preferences";
export let initialSearch: string;
export let initialDays: number;
const preferencesPromise = getPreferences();
const search = writable(initialSearch);
const days = writable(initialDays);
const sourceData = useAsyncReactive(() => getGraphData($search, $days), [search, days])
const preferences = useAsync(() => getPreferences())
$: revlogRange = daysToRevlogRange($days);
</script>
<slot
{search}
{days}
{revlogRange}
pending={$sourceData.pending || $preferences.pending}
sourceData={$sourceData.value}
preferences={$preferences.value}
>
</slot>

View File

@ -27,6 +27,7 @@ function useAsyncReactive<T, E>(
promise,
($promise, set: (error: E | null) => void) => {
$promise.catch((error: E) => set(error));
return () => set(null);
},
null
);