## Beskrivelse Katalogen og detaljvisningen henter fortsatt annonser fra `mockListings`. Sett opp Apollo Client og hent annonsene fra GraphQL-backenden, slik at klienten og backenden faktisk snakker sammen. ## Akseptansekriterier - [x] Apollo Client er installert og satt opp med cache. Valget er begrunnet kort i README. - [x] `vite.config.ts` har `base: '/project2/'` og en dev-proxy fra `/project2/api` til `http://localhost:3001`, slik at frontend bruker samme sti lokalt som på VM-en. - [x] Katalogen henter én side med annonser fra `listings` og har «Forrige» og «Neste». Gjeldende side ligger i URL-en. - [x] Antall treff kommer fra serveren, ikke fra antall annonser på siden. - [x] Detaljvisningen henter annonsen med `listing(id)`. Ukjent ID viser fortsatt «Fant ikke annonsen». - [x] Katalogen og detaljvisningen har tydelige laste-, feil- og tomtilstander. Feiltilstanden forteller at backenden ikke svarer, og lar brukeren prøve igjen. - [x] Bildene fra databasen (`/project2/assets/listings/…`) vises også ved lokal utvikling. - [x] Søk, filtre og sortering som ennå ikke støttes av serveren, er skjult eller merket som ikke tilgjengelig, slik at de ikke bare virker på siden som er lastet. - [x] Komponenttestene er oppdatert og bruker mockede GraphQL-svar i stedet for `mockListings`. - [x] README beskriver hvordan frontend og backend startes sammen lokalt. ## Avgrensning Lagring fra utleieskjemaet, publisering på VM-en og søk, filtre og sortering på serveren gjøres i egne oppgaver. Leieforespørselen er fortsatt en demo. ## Avhengigheter Paginering i listings-spørringen – må være merget før katalogen kan gå over til sider. Apollo-oppsettet og detaljvisningen kan lages mot dagens API i mellomtiden.