Skip to content

frontend2025

Kai Brobeil requested to merge yorrd/frontend2025 into master
  • wir bleiben auf lit-basis weil 1) Ockam's razor, 2) use the platform, 3) it doesn't matter und wir wollen zumindest teilweise webcomponents und die sind mit react echt schlecht darstellbar
  • Fokus auf Signals bzw hierarchischen Context für alles was (semi-)global ist (baseQL, global state, theme, routing, etc)
  • baseQL (mindestens die consumption side) ist durch signals vollständig abbildbar, rxjs also raus. Aber damit das kein Blocker wird können wir vorerst die conversion functions nutzen und useQuery direkt auch noch rxjs supporten lassen. Ob Signals auf dem Server auch gehen ist anzunehmen aber tbd, aber das blockt hier nicht.
  • RXJS bleibt library of choice für event based, dafür gibt es toSignal und eine toObservable
  • überall webcomponents aber shadow root auf opt-in-basis. Style leakage ist nur ein Problem bei Embeds und dafür haben wir ja noch shadow roots
  • hooks stellen wir optional für rein internen state zur Verfügung, mit denselben Regeln und Implementierungen wie bei react (basically, only call on top level: https://react.dev/reference/rules/rules-of-hooks)
  • der class based Weg mit lit-element bleibt und wird auch nicht deprecatet, dafür gibt es gute cases. Die lit-element dependency ist aber optional, Chemistry dependet nur auf lit-html
  • ChemistryLitElement wird deprecatet, alles was da zur Verfügung gestellt wird, wird als signal oder context zur Verfügung gestellt
  • bewusst kein HMR
  • neuer signal basierter router
  • form fields bleiben aber werden möglichst headless sodass man sie mit tailwind oder daisyUI classes stylen kann (und später auch umstylen kann)

Todo

  • PoC implementation for signals and hooks
  • tailwind support
  • router port
  • useForm und minimalinvasiver eingriff
  • daisyUI PoC
  • src,functional-lit,router,forms nach // TODO durchsuchen und entweder machen oder auf post-release aufschreiben
  • docs für neuen router
  • docs für functional-lit
  • in realem Projekt testen
  • breaking release publishen
  • weiteres reales Projekt onboarden
  • final release kommunizieren
  • skeleton updaten und mal in real life clonen und DX prüfen

post-release

  • get rid of old dependencies in router and deprecate the old logic
  • alle chemistry components nochmal durchgehen und ersetzen, dann chemistry löschen
  • translation rework
  • forms zu signals umbauen und rxjs loswerden
  • daisyUI und form fields integrieren
  • data-view und daisyUI integrieren
Edited by Kai Brobeil

Merge request reports

Loading