Skip to content

Legg til konfigurerbar forside i portalen#5885

Open
lmfaole wants to merge 1 commit intomainfrom
feat/portal-frontpage
Open

Legg til konfigurerbar forside i portalen#5885
lmfaole wants to merge 1 commit intomainfrom
feat/portal-frontpage

Conversation

@lmfaole
Copy link
Copy Markdown
Contributor

@lmfaole lmfaole commented Mar 19, 2026

Oppsummering

  • legg til en konfigurerbar Sanity-singleton for portalens forside med hero-tekst, fremhevet innhold og bilder i gridet
  • del opp forsiden i egne komponenter og legg til Jøkul-basert styling for hero, portalseksjoner, fremhevet innhold og sist oppdatert
  • optimaliser logoanimasjonen og bildehåndteringen på forsiden, inkludert Sanity-/fallback-bilder og responsiv synlighet

Testing

  • kjørt pnpm --filter portal typegen
  • kjørt pnpm build:portal

@lmfaole lmfaole requested a review from a team as a code owner March 19, 2026 13:23
@lmfaole lmfaole force-pushed the feat/portal-frontpage branch from e3d1a28 to 7829f8d Compare March 19, 2026 13:27
@lmfaole lmfaole changed the title Add configurable frontpage in portal Legg til konfigurerbar forside i portalen Mar 19, 2026
@lmfaole lmfaole force-pushed the feat/portal-frontpage branch from 7829f8d to ba25bd7 Compare March 19, 2026 14:03
@lmfaole lmfaole force-pushed the feat/portal-frontpage branch from ba25bd7 to bda8a64 Compare April 1, 2026 09:59
Copilot AI review requested due to automatic review settings April 1, 2026 09:59
@lmfaole lmfaole force-pushed the feat/portal-frontpage branch from bda8a64 to 4530322 Compare April 1, 2026 10:01
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Legger til en konfigurerbar forside i portalen ved å introdusere en Sanity-singleton for forsiden, samt nye React-komponenter og styling for hero/portalseksjoner/nyheter/bildestripe. PR-en erstatter også tidligere “placeholder”-forside og justerer header-layout og Next.js-konfig for Sanity-bilder.

Changes:

  • Ny Sanity-dokumenttype (jokul_frontpage) + desk-structure entry, samt GROQ-query og typegenererte resultater for forsidedata.
  • Ny forsideimplementasjon i Next (komponentisert) med hero-logoanimasjon, lenkekort, bildestripe og “nyheter/sist oppdatert”.
  • Oppdateringer i header/CSS og Next.js image remotePatterns for å støtte Sanity CDN.

Reviewed changes

Copilot reviewed 26 out of 26 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
portal/src/sanity/types.ts Oppdaterte typegen-typer og la til FrontpageQueryResult + Jokul_frontpage.
portal/src/sanity/schemas/index.ts Registrerer ny frontpage-schema type.
portal/src/sanity/schemas/documents/frontpage.ts Ny Sanity-schema for konfigurerbar forside (hero, lenkekort, grid-bilder, fremhevet nyhet).
portal/src/sanity/queries/frontpage.ts Ny GROQ-query for forsidedata + siste oppdaterte dokumenter.
portal/src/frontpagePortalLinks.ts Default “portal-lenkekort” brukt som initialValue/fallback.
portal/src/components/layout/header/Logo.tsx Forenkler logo til statisk tekst.
portal/src/components/layout/header/Header.tsx Endrer header-markup for nytt layout/sticky wrapper.
portal/src/components/layout/global-layout.module.scss Ny sticky/full-bleed header-styling, fjerner holiday-logo styling.
portal/src/components/frontpage/index.ts Eksporterer nye forsidekomponenter.
portal/src/components/frontpage/FrontPagePortalSections/FrontPagePortalSections.tsx Render av lenkekort-seksjonen på forsiden med fallback til defaults.
portal/src/components/frontpage/FrontPagePortalSections/frontPagePortalSections.module.scss Styling for lenkekort-grid.
portal/src/components/frontpage/frontpagePage.module.scss Wrapper-layout for forsiden.
portal/src/components/frontpage/FrontPageNewsSection/* Nyhetsseksjon (fremhevet + liste) og tilhørende styling.
portal/src/components/frontpage/FrontPageLogo/* Ny hero-logoanimasjon med reduced-motion støtte.
portal/src/components/frontpage/FrontPageImageStrip/* Bildestripe/marquee basert på Sanity-bilder.
portal/src/app/(frontend)/page.tsx Erstatter placeholder-forside med faktisk forside som fetcher fra Sanity.
portal/src/app/(frontend)/global.scss Innfører --portal-inline-padding og bruker den i main-padding.
portal/sanity.config.ts Legger til “Forside” singleton i studio-strukturen og filtrerer bort type i listen.
portal/next.config.mjs Fjerner redirect fra / og legger til images.remotePatterns for cdn.sanity.io.

Comment on lines +44 to +54
<Card
as={Link}
key={link.href}
href={link.href}
clickable
padding="xl"
className={styles.link}
>
<h2 className={styles.linkTitle}>{link.title}</h2>
<p className={styles.linkDescription}>{link.description}</p>
</Card>
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Disse klikkbare Card-lenkene mangler aria-label. Jøkul anbefaler å gi klikkbare kort et tilgjengelig navn slik at skjermlesere ikke leser opp hele kortinnholdet; vurder å sette et aria-label (f.eks. basert på link.title).

Copilot uses AI. Check for mistakes.
}

&:first-of-type {
grid-column: 1 / 3;
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

grid-column: 1 / 3 på første kort kan opprette implisitte grid-kolonner når layouten bare har én kolonne (smale skjermer), og gi uventet overflow/layout. Bruk heller grid-column: 1 / -1 (span alle eksisterende kolonner) eller begrens regelen til tilfeller der grid faktisk har minst 2 kolonner (f.eks. via media query).

Suggested change
grid-column: 1 / 3;
@include jkl.from-medium-device {
grid-column: 1 / 3;
}

Copilot uses AI. Check for mistakes.
Comment on lines +23 to +35
const { data } = await sanityFetch({
query: frontpageQuery,
requestTag: "frontpage",
tags: [
"jokul_frontpage",
"jokul_component",
"jokul_fundamentals",
"jokul_blog_post",
],
});
const frontpageData = data as FrontpageQueryResult | null;
const frontpage = frontpageData?.frontpage || null;
const latestUpdatedDocuments = frontpageData?.latestUpdatedDocuments || [];
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

data as FrontpageQueryResult omgår typesikkerhet og kan skjule mismatch mellom GROQ-query og genererte typer. Andre sider bruker sanityFetch uten type-assertion (f.eks. portal/src/app/(frontend)/blog/page.tsx), så vurder å la sanityFetch/defineQuery inferere typen direkte eller angi generisk type i fetch-kallet.

Copilot uses AI. Check for mistakes.
@lmfaole lmfaole force-pushed the feat/portal-frontpage branch from 4530322 to d8ddb3b Compare April 7, 2026 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants