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

Tsff 230 meldinger omskriving (meir typebasert backend kommunikasjon) #6054

Merged
merged 37 commits into from
May 28, 2024

Conversation

josstn
Copy link
Collaborator

@josstn josstn commented May 21, 2024

Bakgrunn
Ønske om opprydding, forenkling og forbetring av Meldingspanel.

Ønsker også generelt å få meir typesikker typescript kode. Som ein del av dette ønsker eg og å få generert typescript kode direkte frå backend kode for modell-typer, konstant-verdier, urler for endepunkt, argument namn til disse, etc.

På denne måten får vi på sikt ein meir forståeleg frontend kode, og det er forhåpentlegvis lettare å forstå samanheng med backend.

Prøver og å auke kvaliteten/nytteverdien av storybook, at ein får testa meir av komponentane via storybook.

Løysing
Denne PR introduserer litt nye typer i v2/backend, basert på generert typescriptkode. Gjere og nokre kodeverk typer meir typesikre ut frå dette.

Det er og ein ny implementasjon av meldingspanel komponenter i denne PR, og storybook for disse. Entrypoint for nytt meldingspanel er framleis ikkje tatt i bruk i denne PR, så det er kun for visning i storybook endå. For å få feedback og teste meir før utrulling.

josstn added 27 commits March 27, 2024 09:47
For å bruke css nesting når tailwind er aktivert, uten å få advarsel, må ein også aktivere tailwindcss/nesting plugin i postcss.

Endre og konfigurasjonsfila til å vere meir lik eksempeloppsett frå nettet.
Sidan vite advarer om at commonjs som grunnkonfigurasjon er deprecated og vil slutte å fungere med vite 6.0
Sidan package.json type no er "module".
Starta på ny implementasjon av Messages.tsx
Hadde feil ending på ein del importer.
Fører til at typescript feiler, sidan gammal kode då blir sjekka med strict tsconfig.
Fjerner gamal testing-react, legger til addon-interactions og testing-library. For bruk i "play" funksjon i stories.
Denne erstatter @storybook/addon-knobs som ikkje ser ut til å fungere lenger. (Viser ingen kontroller for å justere argument.)
Ein enkel måte å begrense bredda til komponenter vi lager stories for, når det er ein komponent som til vanleg lever ein tilværelse med fast begrensing på bredde.

Eksempel på bruk vil vere å sjå i Messages.stories.tsx
…sjon.

Gjev automatisk bruk av "addon-controls", betre typesafety/intellisense og enklare, mindre kode for storybook definisjon.
Bør helst også skrive disse om til ny storybook definisjon.
Bakgrunn:
For å få gradvis overgang til strict typescript redefinerer ein nokre typer frå gammal kode på nytt i v2 kode. Ein definerer då kanskje ikkje heile den gamle typen viss ein ikkje treng alle props frå den i første omgang.

Det kan og vere at ein lage ein ny type som bevisst skal vere eit subsett av ein anna type for bruk som prop i nokre komponenter. Slik at ein ikkje må spesifisere unødvendige data i storybook/testing av prop.

Ein treng då ein måte å sikre at dei ulike typane er i synk over tid.

Løsning:
For å sikre at den "delvise" nye typen er i synk med anna meir komplett type kan ein bruke denne nye Implements typen på den (gamle) "komplette" typen.

Eksempel:
type New = {
  a: string
}

type Old = Implements<New, {
  a: string
  b: number
}>
…timModuleSyntax.

exactOptionalPropertyTypes vart tungvindt mtp react måte å skrive kode på.

verbatimModuleSyntax virka å vere anbefalt for framtida, får meir konsekvent oppførsel av imports.
…komponenter for nytt meldingspanel.

Bruker lokal versjon av k9-sak-typescript-client. Må vente til ny versjon der er publisert før denne kan rullast ut.
Ikkje blitt gjort sidan 2021, og er urealistisk å gjere sidan mange dependencies feiler å kompilere då.
# Conflicts:
#	package.json
#	packages/behandling-innsyn/src/components/InnsynProsess.spec.tsx
#	packages/storybook/stories/prosess/TilkjentYtelseProsessIndex.stories.tsx
#	packages/storybook/stories/prosess/VilkarresultatMedOverstyringProsessIndex.stories.tsx
#	packages/storybook/stories/prosess/VilkarresultatSoknadsfristProsessIndex.stories.tsx
#	packages/storybook/stories/sak/BehandlingVelgerSakIndexOld.stories.tsx
#	packages/storybook/stories/sak/DekoratorSakIndex.stories.tsx
#	packages/storybook/stories/sak/FatterVedtakApprovalModalSakIndex.stories.tsx
#	packages/storybook/stories/sak/MeldingerSakIndex.stories.tsx
#	packages/storybook/stories/sak/RisikoklassifiseringSakIndex.stories.tsx
#	yarn.lock
shorthand grid-template kan fort bli vanskeleg å forstå.
@josstn josstn marked this pull request as ready for review May 21, 2024 14:05
@josstn josstn requested a review from a team as a code owner May 21, 2024 14:05
Bruken av denne vart fjerna i master.
@josstn josstn merged commit 9029349 into master May 28, 2024
5 checks passed
@josstn josstn deleted the TSFF-230-meldinger-omskriving branch May 28, 2024 09:17
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