diff --git a/Dockerfile b/Dockerfile index e05f017c0..7aad1b82c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -48,6 +48,7 @@ RUN apt-get update -qq && \ # Install npm dependencies for Vite. Vendored Inertia packages must exist # before `bun i` because they are referenced via local file dependencies. COPY package.json bun.lock ./ +COPY patches patches COPY vendor/inertia vendor/inertia RUN bun i diff --git a/Dockerfile.dev b/Dockerfile.dev index 34df3ea42..78ce68d37 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -28,6 +28,7 @@ WORKDIR /app # Install npm dependencies for Vite. Vendored Inertia packages must exist # before `bun install` because they are referenced via local file dependencies. COPY package.json bun.lock ./ +COPY patches patches COPY vendor/inertia vendor/inertia RUN bun install diff --git a/app/javascript/pages/Home/SignedIn.svelte b/app/javascript/pages/Home/SignedIn.svelte index dc51c6e12..4b81d9a52 100644 --- a/app/javascript/pages/Home/SignedIn.svelte +++ b/app/javascript/pages/Home/SignedIn.svelte @@ -133,6 +133,36 @@ {/if} + {#snippet dashboardContent(reloading: boolean)} +
+
+ {#if dashboard_stats?.today_stats} + + {/if} +
+ + {#if dashboard_stats?.filterable_dashboard_data} + + {/if} + + {#if dashboard_stats?.activity_graph} + + {/if} +
+ {/snippet} + {#snippet fallback()}
@@ -145,36 +175,7 @@ {/snippet} {#snippet children({ reloading })} -
- -
- {#if dashboard_stats?.today_stats} - - {/if} -
- - - {#if dashboard_stats?.filterable_dashboard_data} - - {/if} - - - {#if dashboard_stats?.activity_graph} - - {/if} -
+ {@render dashboardContent(reloading)} {/snippet}
diff --git a/app/javascript/pages/Home/signedIn/PieChart.svelte b/app/javascript/pages/Home/signedIn/PieChart.svelte index f20f71039..954773d77 100644 --- a/app/javascript/pages/Home/signedIn/PieChart.svelte +++ b/app/javascript/pages/Home/signedIn/PieChart.svelte @@ -69,6 +69,9 @@ const formatDuration = (value: number | null | undefined) => secondsToDisplay(value ?? 0); + + const CHART_WIDTH = 480; + const CHART_HEIGHT = 300;
0} ` tag. Useful for bindings. */ + export let element = undefined; +@@ -179,8 +184,8 @@ + * Prefix these with `_` to keep things organized + */ + const _percentRange = writable(percentRange); +- const _containerWidth = writable(containerWidth); +- const _containerHeight = writable(containerHeight); ++ const _containerWidth = writable(resolvedContainerWidth); ++ const _containerHeight = writable(resolvedContainerHeight); + const _extents = writable(filterObject(extents)); + const _data = writable(data); + const _flatData = writable(flatData || data); +@@ -221,8 +226,8 @@ + const _custom = writable(custom); + + $: $_percentRange = percentRange; +- $: $_containerWidth = containerWidth; +- $: $_containerHeight = containerHeight; ++ $: $_containerWidth = resolvedContainerWidth; ++ $: $_containerHeight = resolvedContainerHeight; + $: $_extents = filterObject(extents); + $: $_data = data; + $: $_flatData = flatData || data; +@@ -540,8 +545,8 @@ + style:bottom={position === 'absolute' ? '0' : null} + style:left={position === 'absolute' ? '0' : null} + style:pointer-events={pointerEvents === false ? 'none' : null} +- bind:clientWidth={containerWidth} +- bind:clientHeight={containerHeight} ++ bind:clientWidth={measuredContainerWidth} ++ bind:clientHeight={measuredContainerHeight} + > + (() => resolveRenderProps(component, page, key)) + // Populate the global page store before the initial render so SSR can + // resolve Deferred/WhenVisible content against the actual page props. + setPage(page) + // Reactively update the global page state when local page state changes $effect.pre(() => { setPage(page)