Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(next15): upgrade to next 15 #1738

Merged
merged 32 commits into from
Nov 21, 2024
Merged

feat(next15): upgrade to next 15 #1738

merged 32 commits into from
Nov 21, 2024

Conversation

adrianflatner
Copy link
Collaborator

@adrianflatner adrianflatner commented Nov 19, 2024

Next 15 med SSR for ustøttede browsere

For å håndtere browsere som ikke støtter next 15 så har vi kommet fram til følgende løsning

Alle browsere under disse versjonene er ansett som ikke støttet:

const MIN_VERSIONS: { [key: string]: string } = {
    chrome: '60',
    firefox: '55',
    edge: '80',
    safari: '11.1',
}
  1. De vil bli refreshet hvert 60' sek ved hjelp av meta-taggen.

{needsRefresh && <meta httpEquiv="refresh" content="60" />}

  1. For å sørge for at de får data fra server må fetchQuery bli kalt i getServerSideProps. På den måten kan vi sende med en fallbackData inn i useSwr. Dette gjør at funksjonen ikke lenger trenger å gjøre noe på klientsiden for å vise frem data 🍾

Av en eller annen grunn fungerer det ikke å hente graphql-quieries på som blir generert med yarn generate når man skal bruke de serverside. Dette gjør at jeg måtte lage de selv uten new TypedDocumentString i en egen fil tavla/src/Shared/graphql/ssrQueries.ts. Gjerne se på om det finnes alternative måter å gjøre det på!

Migrerer til next 15

  • Bruker next sin guide for å migrere.

[!IMPORTANT]
Må testes godt før merge🧪

Nøkkeleendringer

  • React 19 med useActionState
  • Async Request API med en del ny syntax
  • Strengere og bedre errorhåndtering. Dette gjør at det er en del fixes som må gjøres. Blant annet er det en del ting i designsystemet som ikke støttes lengre.

Håndtering av breaking changes

  • Tooltip fra designsystemet har sideeffects som gjør at id-er endrer navn etter content er hentet fra server. Det gir en errormelding i next. Dette håndteres ved å sørge for at Tooltip bare rendres på client. Tooltip wrappes derfor i <ClientOnlyComponent>. Eksempel:
 <ClientOnlyComponent>
                <Tooltip content="Administrer merkelapper" placement="bottom">
                    <IconButton
                        aria-label="Administrer merkelapper"
                        onClick={open}
                    >
                        <ReferenceIcon />
                    </IconButton>
                </Tooltip>
            </ClientOnlyComponent>

  • Det samme problemet dukker opp i <TextField>. Her har jeg midlertidig laget et nytt komponent <ClientOnlyTextField> som også er wrappet i <ClientOnlyComponent>.

[!NOTE]
Disse endringene er foreløpige, mens designsystemet ikke støtter denne typen sideeffects. Det at komponentene nå bare lastes på client, gjør at de er treigere ved reload av siden, men prefetches fortsatt ved navigering fra annen side.

@SelmaBergstrand
Copy link
Collaborator

Min chromium går bare i hvitt 🤔 mulig det bare er noe galt med min setup hvis det funker for deg
Screenshot 2024-11-19 at 15 40 12

tavla/package.json Show resolved Hide resolved
tavla/pages/_document.tsx Show resolved Hide resolved
tavla/pages/_document.tsx Outdated Show resolved Hide resolved
tavla/pages/_document.tsx Outdated Show resolved Hide resolved
tavla/src/Shared/utils/browserDetection.ts Outdated Show resolved Hide resolved
Copy link
Collaborator

@emilielr emilielr left a comment

Choose a reason for hiding this comment

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

Jeg har testa og det ser bra ut for meg! Fint om andre tester og da, ganske stor endrings-PR

@SelmaBergstrand
Copy link
Collaborator

🥳 🔥 🎆

@adrianflatner adrianflatner merged commit 836c38a into main Nov 21, 2024
3 checks passed
@adrianflatner adrianflatner deleted the next-15-upgrade branch November 21, 2024 13:43
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.

3 participants