Skip to content

UX Track 2 — Perceived speed: remaining slices #141

Description

@os-zhuang

Part of the 4-track top-tier-UX elevation effort. This track makes the app feel instant.

Shipped:

Remaining:

  • Prefetch-on-press — warm the detail query when a list row is pressed (or on press-in) so the detail paints from cache instantly. A usePrefetch hook already exists (hooks/usePrefetch.ts) but is per-component local state; needs a shared/module-level cache (or react-query prefetchQuery) so the list screen's prefetch is readable by the detail screen.
  • Skeleton → content crossfade — when a list/detail finishes loading, fade the content in over the skeleton instead of a hard swap. Watch for double-animation with the existing entrance animations (detail sections already FadeInDown).
  • Optimistic create — after submitting the create form, prepend the new record to the list optimistically (temp id) and reconcile on the server response; navigate back without waiting on a refetch.

Pattern reference: the optimistic snapshot-set-rollback approach in #137/#138 (app/(app)/[appName]/[objectName]/index.tsx, …/[id].tsx).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions