Lib: Remove caching from dropdown options generators
This commit is contained in:
@ -9,35 +9,25 @@ import {
|
|||||||
TEAM_BANNER_WIDTH,
|
TEAM_BANNER_WIDTH,
|
||||||
} from "$lib/config";
|
} from "$lib/config";
|
||||||
|
|
||||||
let team_dropdown_opts: DropdownOption[] | null = null;
|
/**
|
||||||
|
* Generates a list of [DropdownOptions] for a <Dropdown> component.
|
||||||
|
*/
|
||||||
|
export const team_dropdown_options = (teams: Team[]): DropdownOption[] =>
|
||||||
|
teams.map((team: Team) => {
|
||||||
|
return {
|
||||||
|
label: team.name,
|
||||||
|
value: team.id,
|
||||||
|
icon_url: team.banner_url,
|
||||||
|
icon_width: TEAM_BANNER_WIDTH,
|
||||||
|
icon_height: TEAM_BANNER_HEIGHT,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates a list of [DropdownOptions] for a <Dropdown> component.
|
* Generates a list of [DropdownOptions] for a <Dropdown> component.
|
||||||
* Cached until page reload.
|
|
||||||
*/
|
*/
|
||||||
export const team_dropdown_options = (teams: Team[]): DropdownOption[] => {
|
export const driver_dropdown_options = (drivers: Driver[]): DropdownOption[] =>
|
||||||
if (!team_dropdown_opts) {
|
drivers.map((driver: Driver) => {
|
||||||
console.log("team_dropdown_options");
|
|
||||||
team_dropdown_opts = teams.map((team: Team) => {
|
|
||||||
return {
|
|
||||||
label: team.name,
|
|
||||||
value: team.id,
|
|
||||||
icon_url: team.banner_url,
|
|
||||||
icon_width: TEAM_BANNER_WIDTH,
|
|
||||||
icon_height: TEAM_BANNER_HEIGHT,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return team_dropdown_opts;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generates a list of [DropdownOptions] for a <Dropdown> component.
|
|
||||||
* Not cached, because drivers are often filtered by active/inactive.
|
|
||||||
*/
|
|
||||||
export const driver_dropdown_options = (drivers: Driver[]): DropdownOption[] => {
|
|
||||||
return drivers.map((driver: Driver) => {
|
|
||||||
return {
|
return {
|
||||||
label: driver.code,
|
label: driver.code,
|
||||||
value: driver.id,
|
value: driver.id,
|
||||||
@ -46,27 +36,17 @@ export const driver_dropdown_options = (drivers: Driver[]): DropdownOption[] =>
|
|||||||
icon_height: DRIVER_HEADSHOT_HEIGHT,
|
icon_height: DRIVER_HEADSHOT_HEIGHT,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
|
||||||
|
|
||||||
let race_dropdown_opts: DropdownOption[] | null = null;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates a list of [DropdownOptions] for a <Dropdown> component.
|
* Generates a list of [DropdownOptions] for a <Dropdown> component.
|
||||||
* Cached until page reload.
|
|
||||||
*/
|
*/
|
||||||
export const race_dropdown_options = (races: Race[]): DropdownOption[] => {
|
export const race_dropdown_options = (races: Race[]): DropdownOption[] =>
|
||||||
if (!race_dropdown_opts) {
|
races.map((race: Race) => {
|
||||||
console.log("race_dropdown_options");
|
return {
|
||||||
race_dropdown_opts = races.map((race: Race) => {
|
label: race.name,
|
||||||
return {
|
value: race.id,
|
||||||
label: race.name,
|
icon_url: race.pictogram_url,
|
||||||
value: race.id,
|
icon_width: RACE_PICTOGRAM_WIDTH,
|
||||||
icon_url: race.pictogram_url,
|
icon_height: RACE_PICTOGRAM_HEIGHT,
|
||||||
icon_width: RACE_PICTOGRAM_WIDTH,
|
};
|
||||||
icon_height: RACE_PICTOGRAM_HEIGHT,
|
});
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return race_dropdown_opts;
|
|
||||||
};
|
|
||||||
|
Reference in New Issue
Block a user