Git Product home page Git Product logo

dp-faktasider-frontend's Introduction

Produktområde arbeid - infosider

Monorepo med nextjs-frontend og sanity-cms for infosider rettet mot arbeidsledige og permitterte på www.nav.no/arbeid/. Inhhold kan redigeres på www.nav.no/arbeid/cms.

Utvikle lokalt

npm i
npm run dev

Optional oppsett

Live oppdatering av data fra Sanity

Det funker ca sånn her:

  • Start Sanity Studio opp lokalt
  • Når du har startet opp Sanity Studio og åpnet det på localhost blir du bedt om å logge inn i Sanity. Når du har logget inn blir det satt en autentiseringscookie på localhost-domenet i nettleseren din.
  • Nå skal liveoppdateringer funke i nextjs-frontenden på localhost (dette sørger usePreviewSubscription for, den gjør autentiserte kall fra klienten mot Sanity vha cookien du satt i forrige steg).

Env-variabler

Opprett filen .env.development i root-folderet med innholdet:

# SECRET - DO NOT COMMIT TO GIT

SANITY_READ_TOKEN="ditt hemmelige token her"
NEXT_PUBLIC_SANITY_DATASET="development"

Trengs hvis du vil besøke sidene under /historikk som må gjøre autentiserte kall mot Sanity eller jobbe mot et development-datasett.

Sanity-token kan du lage her. Du trenger bare et token med Viewer-rettighet.

Scripts

  • npm run docker bygger appen i en dockercontainer på samme måte som i pipeline, hoster appen på localhost:3000/arbeid.

Oversettelser

Innhold fra Sanity

Det meste av innholdet som kommer fra sanity vil ha språkversjoner. Da starter typen til sanity-elementet med 'locale'. Feks:

const content = {
  mySting: {
    _type: "localeString",
    en: "English",
    no: "Norwegian",
  },
};

Det finnes en utilityfunksjon hentet fra Sanity-docs som leter gjennom et javascriptobjekt etter properties som starter med 'locale' for så å velge rikitg språk. Alt innhold fra sanity kjøres gjennom denne for å lette håndtering av språk.

console.log(content.myString); // "{_type: 'localeString', en: 'English', no: 'Norwegian'}"

const lang = "no";
const localizedContent = localizeSanityContent(content, lang);

console.log(localizedContent.myString); // "Norwegian"

Lokale oversettelser, i18next

Det finnes også innhold som ikke ligger i sanity, f.eks custom lagde react-komponenter, og 404-siden. I disse komponentene ligger tekst og oversettelser i koden ved hjelp av i18next-biblioteket.

Sanity oversettelser og i18next oversettelser er i utgangpunktet ikke knyttet sammen på noe vis og fungerer uavhengig hver for seg.

Tester

Mange av de automatiske testene har testdata du man kan få visualisert dersom du går til localhost:3000/arbeid/testdata.

Deploy av nye tekster fra sanity

Nextjs sjekker med jevne mellomrom for nytt innhold fra sanity som automatisk vil gå ut i prod. Se revalidate i getStaticProps-metodene for hvor hyppig intervallet er (2 minutter i dag).

Kontakt

Spørsmål tilknyttet koden kan rettes mot:

Internt

Slack: #po-arbeid-innhold, #po-arbeid, #team-dagpenger, #team-dagpenger-dev

dp-faktasider-frontend's People

Contributors

androa avatar celinetendam avatar geiralund avatar gtcno avatar hanneolsen avatar kamileg avatar kmriise avatar martefroyen avatar mikaila94 avatar snyk-bot avatar ssaegrov avatar synnevaaasbrenn avatar tobiasmcvey avatar tonjemjovik avatar winsvold avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dp-faktasider-frontend's Issues

Problemer med språkfiltrering i skjul for/vis for i dp-faktasider-cms?

Innholdsredaktører greier ikke å endre skjul for/vis for på en undertekst.

Spesifikt: "Gi beskjed hvis situasjonen din endrer seg" under "søk om dagpenger" -> usikker på om det er en bug, eller om det er noe greier med skjul/vis logikk som skal fungere slik. per nå så er filtreringen fjernet, i stedet for å fjerne for kun streikende (som er fjernet fra tilpass innhold)

konsoll feil virker som at den prøver å finne oversettelse, men failer?

Mulighet for bruker å vise historiske utgaver av infosidene på nav.no/arbeid

Det er noen ting som kompliserer litt her:

En ferdig faktaside består nå av en kombinasjon av faktaside-data, delt-tekst data, notifikasjons-data samt litt data fra oppsett-dokumentet. Det betyr at det ikke holder å bare vise historisk versjon av faktasiden, vi må også trekke inn riktige delte tekster osv.

1.0:

  • Denne delen av sidene bør kanskje ekskluderes i robot.txt så søkemotorer etc ikke crawler her, det vil kunne skape mye unødvendig trafikk. (Løst med meta-tag)
  • Håndtere tekst som er merket med at det skal vises på en spesifikk side (visPaa i visForAnnotation)
  • Mikrotekster i Sanity
  • GtilNok, skal vises som "3G = X" med lenke til grunnbelløp-forklaring
  • Custom-component - ikke vise komponenten da det kan være villedende, men tekst ala "kan ikke vise KOMPONENTAVN" og liten forklaring.
  • Tester
  • Logge feil på server
  • Legge inn hemmelighet for sanity read token, slik at historikk kan hentes og caches. Må testes
  • indeks side på /historikk

2.0:

  • Mer brukervennlig visning der delte tekster vises i kontekst? Må fortsatt ha mulighet til å bla i historikken til de delte tekstene individuelt, men dette kan kanskje løses med liten dropdown sammen med hver delte tekst? Må sansynligvis løses vha egne api-endepunkter for å fetche delt tekst-historikk.
  • Bør vi se på strategier for å hindre caching-problemer når bruker feks kan skrive inn valgfritt tidspunkt i url?
  • Vise notifikasjoner som ble vist..?

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

ISR av historiske faktasider

Nå prefetches alle historiske versjoner når man scroller nedover siden eller hovrer vesjonsdatoen, dette fører til at hele nettverks tabben blir blokkert som potensielt gjør navigasjon til historisk versjon veldig treig.

Se på muligheten for å implementere Incremental Static Rendering.

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Kunne vise hvem som lenker til hvilke sider i sanity studio

Usecase:
Man ønsker å endre url på en faktaside i cms, og for å forhindre brukne lenker vite hvem som lenker dit.

Alternativer:

  • Sette opp redirect fra gammel url til ny url i en viss periode

  • Ha en oversikt over alle url som er brukt på dokumentet (historikk) og automatisk redirecte dit hvis ingen annen side har tatt den url'en allerede, gjerne med en liten informasjon om at lenken er utdatert.

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Refaktorere sidemeny infosider

I dagens sidemeny har vi både interne og eksterne lenker som ser identiske ut, men som oppfører seg ulikt. Den interne ekspanderer og viser innholdsfortegnelse for siden, mens den eksterne sender deg til et annet sted på nav.no.

Enten burde vi differensiere de eksterne og interne i menyen, eller så kan vi fjerne menyen helt siden vi har alle menypunktene på landingssiden.

Forbedre logging av feil

Bytte ut console.error med sentry eller lignende for å forbedre logging og innsikt. Kanskje sette opp noe grafana dashboard og slack varsling.

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Legg til "Delte lenker"

Det er ønskelig å kunne sentralisere lenker som er ofte brukt flere sted på lik linje med delt tekst.

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Ukentlig oppdatering av avhengigheter

Sjekkliste

  • Mottatt – jeg fikser i løpet av uka!
  • På rotnivå i prosjektet, kjør npm run check-updates (Ref: https://www.npmjs.com/package/npm-check-updates).
    Velg alle patch- og minor-versjoner [^1], og se om majors kan oppgraderes uten problemer (f. eks. devDependency som fjerner støtte for gammel Node-versjon).
  • Lag issue(s) på Github for å gjøre oppgraderinger av versjoner som krever mer tid
  • Kjør npm run build, npm run test og npm run cypress:run
  • Lag en pull request som vanlig

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.