Skip to content

UX Track 2 — Perceived speed: remaining slices #141

@os-zhuang

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions