From 544fd864b75f31f1d9042e656b643b2b154f00e5 Mon Sep 17 00:00:00 2001 From: caedenph Date: Mon, 15 Jul 2024 22:17:24 +0100 Subject: [PATCH] feat(results): Add results-graph and display it in results summary page --- src/assets/results_graph.png | Bin 0 -> 34878 bytes src/routes/results.ts | 21 ++++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 src/assets/results_graph.png diff --git a/src/assets/results_graph.png b/src/assets/results_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..288c09ae967898bf439609a72e93d8ae03ad9c50 GIT binary patch literal 34878 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 E9}H`J(*OVf literal 0 HcmV?d00001 diff --git a/src/routes/results.ts b/src/routes/results.ts index 01e5696..eadd83b 100644 --- a/src/routes/results.ts +++ b/src/routes/results.ts @@ -1,5 +1,5 @@ import axios from "axios"; -import { Application, Container, Graphics, Point, Sprite, Text } from "pixi.js"; +import { Application, Container, Graphics, Point, Sprite, Text, Texture } from "pixi.js"; import { PDFDocument, rgb, StandardFonts } from "pdf-lib"; import { table } from "table"; @@ -7,7 +7,11 @@ import { CogSpeedGraphicsHandler } from "../ui/handler"; import { startUp } from "../main"; import { Config } from "../types/Config"; +import resultsGraph from "../assets/results_graph.png"; + export class ProcessResultsPage { + public resultsGraphTexture: Texture | undefined; + constructor(private app: Application, private ui: CogSpeedGraphicsHandler) {} private formatKey(key: string, capitalise: boolean = false): string { @@ -231,7 +235,7 @@ export class ProcessResultsPage { wordWrapWidth: this.app.screen.width * 0.8 }); textSummary.position.set(this.app.screen.width * 0.5, - this.app.screen.height * 0.15); + this.app.screen.height * 0.18); textSummary.anchor.set(0.5); this.app.stage.addChild(textSummary); @@ -247,6 +251,17 @@ export class ProcessResultsPage { this.ui.removeAllStageChildren(); this.show(data, config, {shouldLoad: false}); }); + + if (!this.resultsGraphTexture) { + throw new Error("Results graph texture is not loaded."); + } + + const graphSprite = new Sprite(this.resultsGraphTexture); + graphSprite.position.set(this.app.screen.width * 0.5, this.app.screen.height * 0.55) + graphSprite.scale.set(0.7); + graphSprite.anchor.set(0.5, 0.5) + + this.app.stage.addChild(graphSprite); this.app.stage.addChild(backButtonContainer); } @@ -254,9 +269,9 @@ export class ProcessResultsPage { let loadingContainer; if (args.shouldLoad) { loadingContainer = this.loadingScreen(); + this.resultsGraphTexture = Texture.from(resultsGraph); } - const [geolocation, normalizedLocation] = await this.getCurrentPosition(); data.location = { geolocation,