Skip to main content

State Management Patterns

1. Server-to-Client State Flow​

sequenceDiagram
participant Server
participant Context
participant Client

Server->>Context: Fetch initial data
Server->>Context: Pass as props
Context->>Client: Provide via Context
Client->>Client: Use state
Client->>Context: Update state (if mutable)
Context->>Client: Re-render with new state

Pattern:

  1. Server Component fetches data
  2. Data passed to Context Provider as props
  3. Context Provider initializes state
  4. Client Components consume via hooks

2. Form State Flow​

sequenceDiagram
participant Form
participant RHF
participant Zod
participant Action

Form->>RHF: User input
RHF->>RHF: Update state
RHF->>Zod: Validate on submit
Zod->>RHF: Validation result
RHF->>Action: Submit if valid
Action->>Form: Success/Error

Pattern:

  1. React Hook Form manages form state
  2. Zod validates on submit
  3. Server Action processes submission
  4. Form handles success/error states

3. Table State Flow​

sequenceDiagram
participant Table
participant Context
participant Hook
participant Supabase
participant URL

Table->>Context: Update filters/sort
Context->>Hook: Trigger refetch
Hook->>URL: Update search params
Hook->>Supabase: Fetch data
Supabase->>Hook: Return data
Hook->>Context: Update state
Context->>Table: Re-render

Pattern:

  1. User interacts with table (filter, sort, paginate)
  2. Context updates state
  3. Hook fetches data from Supabase
  4. URL updated for shareability
  5. Table re-renders with new data