aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Berwaldt <zberwaldt@tutamail.com>2024-03-01 20:26:42 -0500
committerZach Berwaldt <zberwaldt@tutamail.com>2024-03-01 20:26:42 -0500
commit326f186d67017f87e631a1fbcdf3f184cbc42d7d (patch)
treefcfda018e445e95451512eecc67a76ed470c5940
parentd8b0f1335078d53d95a4212b1a4d4b0b28016702 (diff)
feat: Add last seven days labels to chart
In the `DataView.svelte` component, the last seven days are now included as labels in the chart. This allows users to easily visualize data for the past week. The `getLastSevenDays` function generates an array of string values representing the dates in ISO format. This array is assigned to the `lastSevenDays` variable, which is then used as the labels in the chart's dataset.
-rw-r--r--fe/src/lib/DataView.svelte27
1 files changed, 23 insertions, 4 deletions
diff --git a/fe/src/lib/DataView.svelte b/fe/src/lib/DataView.svelte
index 7f368c6..5182a85 100644
--- a/fe/src/lib/DataView.svelte
+++ b/fe/src/lib/DataView.svelte
@@ -12,6 +12,8 @@
12 let canvasRef: HTMLCanvasElement; 12 let canvasRef: HTMLCanvasElement;
13 let chart: any; 13 let chart: any;
14 14
15 let lastSevenDays: string[];
16
15 async function fetchData() { 17 async function fetchData() {
16 const res = await fetch("http://localhost:8080/api/v1/stats/", { 18 const res = await fetch("http://localhost:8080/api/v1/stats/", {
17 method: "GET", 19 method: "GET",
@@ -26,6 +28,16 @@
26 } 28 }
27 } 29 }
28 30
31 function getLastSevenDays() {
32 const result = [];
33 for (let i = 0; i < 7; i++) {
34 let d = new Date();
35 d.setDate(d.getDate() - i);
36 result.push(d.toISOString().substring(0, 10));
37 }
38 return result;
39 }
40
29 function handleClick() { 41 function handleClick() {
30 open = true; 42 open = true;
31 } 43 }
@@ -41,14 +53,21 @@
41 53
42 onMount(() => { 54 onMount(() => {
43 fetchData(); 55 fetchData();
56 lastSevenDays = getLastSevenDays();
44 chart = new Chart(canvasRef, { 57 chart = new Chart(canvasRef, {
45 type: "bar", 58 type: "bar",
46 data: { 59 data: {
47 labels: ["one", "two"], 60 labels: lastSevenDays,
48 datasets: [ 61 datasets: [
49 { 62 {
50 label: "Water", 63 label: "Zach",
51 data: [1, 2], 64 data: [1, 2, 8, 2, 5, 5, 1],
65 backgroundColor: "rgba(255, 192, 192, 0.2)",
66 borderColor: "rgba(75, 192, 192, 1)",
67 borderWidth: 1
68 }, {
69 label: "Parker",
70 data: [6, 1, 1, 4, 3, 5, 1],
52 backgroundColor: "rgba(75, 192, 192, 0.2)", 71 backgroundColor: "rgba(75, 192, 192, 0.2)",
53 borderColor: "rgba(75, 192, 192, 1)", 72 borderColor: "rgba(75, 192, 192, 1)",
54 borderWidth: 1 73 borderWidth: 1
@@ -66,8 +85,8 @@
66 85
67<div> 86<div>
68 <button on:click={handleClick}>Add</button> 87 <button on:click={handleClick}>Add</button>
69 <canvas bind:this={canvasRef} />
70 <AddForm {open} on:submit={onStatisticAdd} on:close={closeDialog} /> 88 <AddForm {open} on:submit={onStatisticAdd} on:close={closeDialog} />
89 <canvas bind:this={canvasRef} />
71 {#await json then data} 90 {#await json then data}
72 <Table {data} nofooter /> 91 <Table {data} nofooter />
73 {:catch error} 92 {:catch error}