diff --git a/README.md b/README.md index 4549a7d..5f1e9d7 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,12 @@ Prosjekt 1 i **IT2810 Webutvikling** ved NTNU. Turvær Norge er en responsiv React-applikasjon som henter oppdaterte værdata for norske byer. Brukeren kan velge aktivitet, sammenligne byer og finne ut hvor været passer best til for eksempel gåtur, sykling eller utendørsaktiviteter. +## Publisert applikasjon + +Applikasjonen er tilgjengelig på **[http://it2810-31.idi.ntnu.no/project1/](http://it2810-31.idi.ntnu.no/project1/)**. + +> **Merk:** Nettsiden er kun tilgjengelig når du er koblet til NTNUs nettverk eller bruker [NTNU VPN](https://i.ntnu.no/wiki/-/wiki/Norsk/Installere+VPN). + ## Kom i gang Bruk Node **24.6+** og npm **11**. Med nvm: diff --git a/web/src/App.tsx b/web/src/App.tsx index 1783441..2be28ec 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -22,6 +22,7 @@ import type { ActivityId } from './types/activity'; const sortModes = ['default', 'best', 'temperature', 'rain', 'wind'] as const; type SortMode = (typeof sortModes)[number]; +type CityFilter = 'all' | CityId; const cityIds = new Set(cities.map(({ id }) => id)); const activitySchema = z.enum(['walking', 'cycling', 'running', 'skiing']); const sortModeSchema = z.enum(sortModes); @@ -30,6 +31,8 @@ const cityIdSchema = z .refine((id): id is CityId => cityIds.has(id as CityId)); const favoriteIdsSchema = z.array(cityIdSchema); +const cityFilterSchema = z.union([z.literal('all'), cityIdSchema]); + function Header({ selectedCityId, activity, @@ -38,10 +41,10 @@ function Header({ onActivityChange, onSortChange, }: { - selectedCityId: CityId; + selectedCityId: CityFilter; activity: ActivityId; sortMode: SortMode; - onCityChange: (cityId: CityId) => void; + onCityChange: (cityId: CityFilter) => void; onActivityChange: (activity: ActivityId) => void; onSortChange: (sortMode: SortMode) => void; }) { @@ -61,8 +64,12 @@ function Header({ By onActivityChange(event.target.value as ActivityId) } @@ -89,6 +103,7 @@ function Header({ Sorter etter