From 5f5017a44926ed6dfa0c1f1338d5923c86dac992 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Mon, 23 Dec 2024 16:03:13 +0100 Subject: [PATCH] Data/Season: Add value formatting functions for substitutions page --- src/routes/data/season/+page.svelte | 61 ++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 15 deletions(-) diff --git a/src/routes/data/season/+page.svelte b/src/routes/data/season/+page.svelte index ea279ea..6b65b6f 100644 --- a/src/routes/data/season/+page.svelte +++ b/src/routes/data/season/+page.svelte @@ -101,13 +101,13 @@ { data_value_name: "name", label: "Name", - valuefun: (value: string): string => + valuefun: async (value: string): Promise => `${value}`, }, { data_value_name: "color", label: "Color", - valuefun: (value: string): string => + valuefun: async (value: string): Promise => `C`, }, ]; @@ -131,7 +131,7 @@ { data_value_name: "code", label: "Driver Code", - valuefun: (value: string): string => + valuefun: async (value: string): Promise => `${value}`, }, { data_value_name: "firstname", label: "First Name" }, @@ -139,7 +139,7 @@ { data_value_name: "team", label: "Team", - valuefun: (value: string): string => { + valuefun: async (value: string): Promise => { const team: Team | undefined = get_by_value(data.teams, "id", value); return team ? `C${team.name}` @@ -149,7 +149,7 @@ { data_value_name: "active", label: "Active", - valuefun: (value: boolean): string => + valuefun: async (value: boolean): Promise => `${value ? "Yes" : "No"}`, }, ]; @@ -177,15 +177,30 @@ { data_value_name: "name", label: "Name", - valuefun: (value: string): string => + valuefun: async (value: string): Promise => `${value}`, }, { data_value_name: "step", label: "Step" }, - // TODO: Date formatting - { data_value_name: "sprintqualidate", label: "Sprint Quali" }, - { data_value_name: "sprintdate", label: "Sprint Race" }, - { data_value_name: "qualidate", label: "Quali" }, - { data_value_name: "racedate", label: "Race" }, + { + data_value_name: "sprintqualidate", + label: "Sprint Quali", + valuefun: async (value: string): Promise => value.slice(0, -5), + }, + { + data_value_name: "sprintdate", + label: "Sprint Race", + valuefun: async (value: string): Promise => value.slice(0, -5), + }, + { + data_value_name: "qualidate", + label: "Quali", + valuefun: async (value: string): Promise => value.slice(0, -5), + }, + { + data_value_name: "racedate", + label: "Race", + valuefun: async (value: string): Promise => value.slice(0, -5), + }, ]; const races_handler = async (event: Event, id: string) => { @@ -204,10 +219,26 @@ }; const substitutions_columns: TableColumn[] = [ - // TODO: Lookup actual values from driver/race objects - { data_value_name: "substitute", label: "Substitute" }, - { data_value_name: "for", label: "For" }, - { data_value_name: "race", label: "Race" }, + { + data_value_name: "substitute", + label: "Substitute", + valuefun: async (value: string): Promise => { + const substitute = get_by_value(await data.drivers, "id", value)?.code ?? "Invalid"; + return `${substitute}`; + }, + }, + { + data_value_name: "for", + label: "For", + valuefun: async (value: string): Promise => + get_by_value(await data.drivers, "id", value)?.code ?? "Invalid", + }, + { + data_value_name: "race", + label: "Race", + valuefun: async (value: string): Promise => + get_by_value(await data.races, "id", value)?.name ?? "Invalid", + }, ]; const substitutions_handler = async (event: Event, id: string) => {