~/talk

Put it All in State

Talkat React and Chill 2024 · on Thursday, 2024-08-22· [react, frontend-architecture]
github:ubercolin
slides:none on file

Argues that UI state must include every side-effect source so the view is derived from denormalized state and event metadata rather than just mutable fields. Demonstrates with a React Native Expo playground: a spinner that breaks when a timer and pull-to-refresh race, fixed by splitting flags and computing isLoading = isRefreshing || isMessagesLoading; a draft form where cache and network responses clobber edits, solved by tracking didEdit and merging via useQuery + useMemo; a collaborative demo that stores UI and network values plus author info so a “use network” button reconciles changes.

AI-written summary · about

  1. 0:00Introduction
  2. 1:09Traditional dynamic UI state
  3. 2:56Side effects as state
  4. 4:41Live demo: spinner example
  5. 9:47Draft state vs network response
  6. 13:23Fixing draft state
  7. 21:34Collaborative editing reconciliation
  8. 25:34Key takeaways
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.