=> {
+ if (!$pbUser?.id || $pbUser.id === "") {
+ toastStore.trigger(get_error_toast("Invalid user id!"));
+ return;
+ }
+ if (!wdcwinner_select_value || wdcwinner_select_value === "") {
+ toastStore.trigger(get_error_toast("Please select a driver for WDC!"));
+ return;
+ }
+ if (!wccwinner_select_value || wccwinner_select_value === "") {
+ toastStore.trigger(get_error_toast("Please select a team for WCC!"));
+ return;
+ }
+ if (!overtakes_ids || overtakes_ids.length === 0) {
+ toastStore.trigger(get_error_toast("Please select a driver for most overtakes!"));
+ return;
+ }
+ if (!dnfs_ids || dnfs_ids.length === 0) {
+ toastStore.trigger(get_error_toast("Please select a driver for most DNFs!"));
+ return;
+ }
+ if (
+ !doohan_starts ||
+ doohan_starts === "" ||
+ parseInt(doohan_starts) <= 0 ||
+ parseInt(doohan_starts) > 24
+ ) {
+ toastStore.trigger(
+ get_error_toast("Please enter between 0 and 24 starts for Jack Doohan!"),
+ );
+ return;
+ }
+ if (!teamwinners_ids || teamwinners_ids.length !== 10) {
+ toastStore.trigger(get_error_toast("Please select a winner for each team!"));
+ return;
+ }
+ if (!podiums_ids || podiums_ids.length < 3) {
+ toastStore.trigger(get_error_toast("Please select at least 3 drivers with podiums!"));
+ return;
+ }
+
+ const seasonpickresults_data = {
+ user: $pbUser.id,
+ correcthottake: Object.entries(hottake_correct)
+ .filter(([userid, correct]: [string, boolean]) => correct)
+ .map(([userid, correct]: [string, boolean]) => userid),
+ wdcwinner: wdcwinner_select_value,
+ wccwinner: wccwinner_select_value,
+ mostovertakes: overtakes_ids,
+ mostdnfs: dnfs_ids,
+ doohanstarts: doohan_starts,
+ teamwinners: teamwinners_ids,
+ podiums: podiums_ids,
+ };
+
+ try {
+ if (create) {
+ await pb.collection("seasonpickresults").create(seasonpickresults_data);
+ } else {
+ if (!seasonpickresult?.id) {
+ toastStore.trigger(get_error_toast("Invalid seasonpickresult id!"));
+ return;
+ }
+ await pb
+ .collection("seasonpickresults")
+ .update(seasonpickresult.id, seasonpickresults_data);
+ }
+ } catch (error) {
+ toastStore.trigger(get_error_toast("" + error));
+ }
+ };
+
+ return handler;
+ };
+
+
+
+ Formula 11 - Season Pick Results
+
+
+
+ {#if seasonpickresult}
+
+ {:else}
+
+ {/if}
+
+{#await Promise.all( [data.graphics, data.seasonpicks, data.users, data.seasonpickresults, data.drivers, data.teams], ) then [graphics, seasonpicks, users, seasonpickresults, drivers, teams]}
+
+
+ (drivers, "id", wdcwinner_select_value)?.headshot_url ??
+ get_driver_headshot_template(graphics)}
+ imgid="wdcwinner_headshot"
+ width="w-full h-24"
+ imgwidth={DRIVER_HEADSHOT_WIDTH}
+ imgheight={DRIVER_HEADSHOT_HEIGHT}
+ imgleft={true}
+ imgshadow={false}
+ extraimgclass="mt-[11px]"
+ extraclass="w-full"
+ >
+ Which driver fucking obliterated this season?
+
+ WDC Winner
+
+
+
+
+ (teams, "id", wccwinner_select_value)?.banner_url ??
+ get_team_banner_template(graphics)}
+ imgid="wccwinner_banner"
+ width="w-full h-24"
+ imgwidth={TEAM_BANNER_WIDTH}
+ imgheight={TEAM_BANNER_HEIGHT}
+ imgleft={true}
+ imgshadow={false}
+ extraimgclass="mt-[10px] rounded-r-md"
+ extraclass="w-full"
+ >
+ Which constructor constructed the best this season?
+
+ WCC Winner
+
+
+
+
+
+
+ (drivers, "code", "DOO")?.headshot_url ??
+ get_driver_headshot_template(graphics)}
+ imgid="doohan_headshot"
+ width="w-full h-24"
+ imgwidth={DRIVER_HEADSHOT_WIDTH}
+ imgheight={DRIVER_HEADSHOT_HEIGHT}
+ imgleft={true}
+ imgshadow={false}
+ extraimgclass="mt-[11px]"
+ extraclass="w-full"
+ >
+ How often did JACK DOOHAN start?
+
+ Doohan Starts
+
+
+
+
+
+
+ {#each seasonpicks as seasonpick}
+ {@const user = get_by_value(users, "id", seasonpick.user)}
+
+
+
+
+
+
{user?.username ?? "INVALID"}'s Hottake 💀
+
+ "{seasonpick.hottake}"
+
+
+
+
+
+
+ {/each}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{/await}
diff --git a/src/routes/data/seasonpickresults/+page.ts b/src/routes/data/seasonpickresults/+page.ts
new file mode 100644
index 0000000..ab559b5
--- /dev/null
+++ b/src/routes/data/seasonpickresults/+page.ts
@@ -0,0 +1,20 @@
+import {
+ fetch_drivers,
+ fetch_seasonpickresults,
+ fetch_teams,
+ fetch_users,
+ fetch_visibleseasonpicks,
+} from "$lib/fetch";
+import type { PageLoad } from "../../$types";
+
+export const load: PageLoad = async ({ fetch, depends }) => {
+ depends("data:drivers", "data:seasonpickresults", "data:users", "data:seasonpicks", "data:teams");
+
+ return {
+ users: fetch_users(fetch),
+ drivers: fetch_drivers(fetch),
+ teams: fetch_teams(fetch),
+ seasonpicks: fetch_visibleseasonpicks(fetch),
+ seasonpickresults: fetch_seasonpickresults(fetch),
+ };
+};