Compare commits
3 Commits
d78f58976f
...
2a124b7201
| Author | SHA1 | Date | |
|---|---|---|---|
| 2a124b7201 | |||
| 1d597a431e | |||
| 73df15a188 |
@ -1,3 +1,6 @@
|
|||||||
|
// NOTE: The "expand" fields might be undefined.
|
||||||
|
// I'm not using "expand?" because I won't check for undefined anyways.
|
||||||
|
|
||||||
// Application Data
|
// Application Data
|
||||||
|
|
||||||
export interface Graphic {
|
export interface Graphic {
|
||||||
@ -36,6 +39,9 @@ export interface Driver {
|
|||||||
headshot_url?: string;
|
headshot_url?: string;
|
||||||
team: string;
|
team: string;
|
||||||
active: boolean;
|
active: boolean;
|
||||||
|
expand: {
|
||||||
|
team: Team;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Race {
|
export interface Race {
|
||||||
@ -56,6 +62,9 @@ export interface Substitution {
|
|||||||
substitute: string;
|
substitute: string;
|
||||||
for: string;
|
for: string;
|
||||||
race: string;
|
race: string;
|
||||||
|
expand: {
|
||||||
|
race: Race;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// User Data
|
// User Data
|
||||||
|
|||||||
@ -29,6 +29,7 @@ export const load: LayoutServerLoad = async ({ fetch, locals }) => {
|
|||||||
return teams;
|
return teams;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// TODO: Duplicated code from racepicks/+page.server.ts
|
||||||
const fetch_drivers = async (): Promise<Driver[]> => {
|
const fetch_drivers = async (): Promise<Driver[]> => {
|
||||||
const drivers: Driver[] = await locals.pb.collection("drivers").getFullList({
|
const drivers: Driver[] = await locals.pb.collection("drivers").getFullList({
|
||||||
sort: "+code",
|
sort: "+code",
|
||||||
@ -56,11 +57,14 @@ export const load: LayoutServerLoad = async ({ fetch, locals }) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const fetch_substitutions = async (): Promise<Substitution[]> => {
|
const fetch_substitutions = async (): Promise<Substitution[]> => {
|
||||||
// TODO: Sort by race step (does the race need to be expanded for this?)
|
|
||||||
const substitutions: Substitution[] = await locals.pb.collection("substitutions").getFullList({
|
const substitutions: Substitution[] = await locals.pb.collection("substitutions").getFullList({
|
||||||
|
expand: "race",
|
||||||
fetch: fetch,
|
fetch: fetch,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Sort by race step (ascending)
|
||||||
|
substitutions.sort((a, b) => a.expand.race.step - b.expand.race.step);
|
||||||
|
|
||||||
return substitutions;
|
return substitutions;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -69,7 +73,7 @@ export const load: LayoutServerLoad = async ({ fetch, locals }) => {
|
|||||||
graphics: await fetch_graphics(),
|
graphics: await fetch_graphics(),
|
||||||
teams: await fetch_teams(),
|
teams: await fetch_teams(),
|
||||||
|
|
||||||
// The rest is streamed gradually, since the user has to switch tabs to need them.
|
// The rest is streamed gradually, since the user has to switch pages to need them.
|
||||||
drivers: fetch_drivers(),
|
drivers: fetch_drivers(),
|
||||||
races: fetch_races(),
|
races: fetch_races(),
|
||||||
substitutions: fetch_substitutions(),
|
substitutions: fetch_substitutions(),
|
||||||
|
|||||||
@ -54,6 +54,11 @@
|
|||||||
);
|
);
|
||||||
|
|
||||||
const substitutions_columns: TableColumn[] = [
|
const substitutions_columns: TableColumn[] = [
|
||||||
|
{
|
||||||
|
data_value_name: "expand",
|
||||||
|
label: "Step",
|
||||||
|
valuefun: async (value: { race: Race }): Promise<string> => value.race.step.toString(),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
data_value_name: "substitute",
|
data_value_name: "substitute",
|
||||||
label: "Substitute",
|
label: "Substitute",
|
||||||
|
|||||||
Reference in New Issue
Block a user