Skip to content

Frontend for dagpenge-relaterte faktasider på nav.no

License

Notifications You must be signed in to change notification settings

navikt/dp-faktasider-frontend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d965e03 · Dec 7, 2023
Oct 2, 2023
May 5, 2021
Apr 26, 2023
Dec 1, 2023
Jul 19, 2021
Jun 27, 2023
Feb 12, 2021
Apr 26, 2023
Sep 1, 2022
Jul 26, 2022
Sep 1, 2022
May 19, 2022
Oct 2, 2023
Oct 1, 2020
Dec 7, 2023
Oct 2, 2023
May 5, 2020
Jul 26, 2022
Apr 26, 2023
Oct 28, 2021
May 19, 2022
Oct 13, 2021
May 19, 2022
May 23, 2023
Nov 15, 2023
Nov 15, 2023
Nov 8, 2021
Sep 1, 2022
Sep 1, 2022
Sep 1, 2022
Sep 15, 2021
May 19, 2022

Repository files navigation

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