diff --git a/src/plugins/built-in/gradeAnalytics/AnalyticsAreaChart.svelte b/src/plugins/built-in/gradeAnalytics/AnalyticsAreaChart.svelte index 833f35af..6cee8391 100644 --- a/src/plugins/built-in/gradeAnalytics/AnalyticsAreaChart.svelte +++ b/src/plugins/built-in/gradeAnalytics/AnalyticsAreaChart.svelte @@ -14,6 +14,7 @@ } from "./timeRange"; import { computeGradeForecast, aggregateToMonthlyPoints } from "./utils/gradePrediction"; import PredictionMonthsSlider from "./PredictionMonthsSlider.svelte"; + import { settingsState } from "@/seqta/utils/listeners/SettingsState"; interface Props { data: Assessment[]; @@ -166,6 +167,8 @@ return monthly.length >= 3; }); + const animationsOn = $derived($settingsState.animations); + /** Historical + future forecast points so tooltips work across the dashed line. */ const chartData = $derived.by((): TrendPoint[] => { if (!showPrediction || !forecast?.points.length) { @@ -243,7 +246,7 @@ curve: curveMonotoneX, "fill-opacity": showSubjectTrends ? 0.12 : 0.35, line: { class: "stroke-2" }, - motion: "tween", + motion: animationsOn ? "tween" : false, }, xAxis: { ticks: timeRange === "7d" ? 7 : undefined, @@ -267,12 +270,12 @@ {#each series as s, i (s.key)} {@const meta = chartSeries.find((c) => c.key === s.key)} diff --git a/src/plugins/built-in/gradeAnalytics/AnalyticsBarChart.svelte b/src/plugins/built-in/gradeAnalytics/AnalyticsBarChart.svelte index 2bdbed52..8b728d8a 100644 --- a/src/plugins/built-in/gradeAnalytics/AnalyticsBarChart.svelte +++ b/src/plugins/built-in/gradeAnalytics/AnalyticsBarChart.svelte @@ -27,6 +27,7 @@ } from "./gradeDistribution"; import { loadDistributionMode, saveDistributionMode } from "./storage"; + import { settingsState } from "@/seqta/utils/listeners/SettingsState"; @@ -312,7 +313,7 @@ motion: { - y: { type: "tween", duration: 600, easing: cubicInOut }, + y: { type: "tween", duration: $settingsState.animations ? 600 : 0, easing: cubicInOut }, }, diff --git a/src/plugins/built-in/gradeAnalytics/GradeAnalyticsPage.svelte b/src/plugins/built-in/gradeAnalytics/GradeAnalyticsPage.svelte index 3d265080..b9cfbe7b 100644 --- a/src/plugins/built-in/gradeAnalytics/GradeAnalyticsPage.svelte +++ b/src/plugins/built-in/gradeAnalytics/GradeAnalyticsPage.svelte @@ -20,6 +20,7 @@ type TimeRange, } from "./timeRange"; import { openAnalyticsPrivacyPopup } from "./openAnalyticsPrivacyPopup"; + import { settingsState } from "@/seqta/utils/listeners/SettingsState"; let analyticsData: Assessment[] | null = $state(null); let loading = $state(true); @@ -39,6 +40,8 @@ let timestampInterval: ReturnType | null = null; let contentReady = $state(false); + const fadeDuration = $derived($settingsState.animations ? 200 : 0); + const emptyFadeDuration = $derived($settingsState.animations ? 300 : 0); const formattedTimestamp = $derived(() => { if (!lastUpdated) return ""; @@ -204,7 +207,7 @@
{#if error} - {/if} @@ -462,7 +465,7 @@
{:else} -
+