From 05833f441f94cc1de7d02c0e4fcc8f377f043784 Mon Sep 17 00:00:00 2001 From: Victor Jack <67293106+thedon-dev@users.noreply.github.com> Date: Fri, 24 Jul 2026 14:09:09 +0100 Subject: [PATCH] fix: Chart Circular Dependency (#772) * Fix: Chart Circular Dependency * Corrections to greptile reviews * code rabbit coding guideline --------- --- .../analytics/components/trend-chart.svelte | 17 +++--- .../analytics/analytics-graph.svelte | 24 ++++++--- .../components/login-activity-chart.svelte | 17 +++--- .../components/ai-credits/usage-chart.svelte | 17 +++--- apps/dashboard/vite.config.ts | 8 ++- packages/ui/src/base/chart/chart-utils.ts | 10 ++-- packages/ui/src/base/chart/types.ts | 13 +++++ .../renderers/checkbox/submission.svelte | 4 +- .../renderers/fill-blank/submission.svelte | 4 +- .../renderers/radio/submission.svelte | 2 +- .../submission-response-bar-chart.svelte | 52 ++++++++++++++----- .../submission-response-pie-chart.svelte | 42 ++++++++++----- .../renderers/true-false/submission.svelte | 20 +++---- .../renderers/word-bank/submission.svelte | 4 +- packages/ui/src/output.css | 2 +- 15 files changed, 156 insertions(+), 80 deletions(-) create mode 100644 packages/ui/src/base/chart/types.ts diff --git a/apps/dashboard/src/lib/features/analytics/components/trend-chart.svelte b/apps/dashboard/src/lib/features/analytics/components/trend-chart.svelte index 3165a6fc..055047cb 100644 --- a/apps/dashboard/src/lib/features/analytics/components/trend-chart.svelte +++ b/apps/dashboard/src/lib/features/analytics/components/trend-chart.svelte @@ -1,13 +1,14 @@ + {#if chartData.length > 0} - - - + {#if isBrowser} + {#await loadChart() then C} + + + + {:catch error} + + {/await} + {:else} +
+ +
+ {/if} {:else}

{emptyLabel}

{/if} diff --git a/packages/ui/src/custom/exercise-question/renderers/shared/submission-response-pie-chart.svelte b/packages/ui/src/custom/exercise-question/renderers/shared/submission-response-pie-chart.svelte index c889626b..a9814ce5 100644 --- a/packages/ui/src/custom/exercise-question/renderers/shared/submission-response-pie-chart.svelte +++ b/packages/ui/src/custom/exercise-question/renderers/shared/submission-response-pie-chart.svelte @@ -1,9 +1,17 @@ - + {#if chartData.length > 0} - - - ({ - label: d.label, - color: d.color ?? CHART_COLORS[0], - value: d.responses - }))} - /> - + {#if isBrowser} + {#await loadChart() then C} + + + ({ + label: d.label, + color: d.color ?? CHART_COLORS[0], + value: d.responses + }))} + /> + + {/await} + {:else} +
+ +
+ {/if} {:else}

{emptyLabel}

{/if} diff --git a/packages/ui/src/custom/exercise-question/renderers/true-false/submission.svelte b/packages/ui/src/custom/exercise-question/renderers/true-false/submission.svelte index e9c33841..0760334c 100644 --- a/packages/ui/src/custom/exercise-question/renderers/true-false/submission.svelte +++ b/packages/ui/src/custom/exercise-question/renderers/true-false/submission.svelte @@ -1,7 +1,8 @@ -{#if chartData.length > 0} - - - ({ label: d.label, color: d.color, value: d.responses }))} /> - -{:else} -

- {getSubmissionLabel(labels, 'submission.chart.no_data', 'No responses yet')} -

-{/if} + diff --git a/packages/ui/src/custom/exercise-question/renderers/word-bank/submission.svelte b/packages/ui/src/custom/exercise-question/renderers/word-bank/submission.svelte index 94fdb0f1..30e1212a 100644 --- a/packages/ui/src/custom/exercise-question/renderers/word-bank/submission.svelte +++ b/packages/ui/src/custom/exercise-question/renderers/word-bank/submission.svelte @@ -1,5 +1,5 @@