Skip to content

bug(ios): dashboard session rows render as empty gray bars after returning from a conversation #314

Description

@DatScreamer

Reproduction:

  1. Open a session from the home dashboard.
  2. Press back to return to the dashboard.
  3. The session rows render as opaque gray bars (the pinch-blur overlay stuck at full effect), hiding the title/preview text. The rows are still tappable.
  4. The symptom clears after any gesture that forces a re-layout (e.g. dragging up from the bottom, or a second tap).

Root cause:
Each dashboard row hosts its content inside a UIVisualEffectView (pinchBlur) used to blur sibling rows during pinch-to-zoom. During a NavigationStack push/pop, iOS can finish/invalidate the paused UIViewPropertyAnimator driving the blur, snapping the effect to its end state. forceResetPinchBlurIfIdle was called on re-apply, but it skipped resetting when a stale fade CADisplayLink was present and rebuilt the paused animator without removing the stale effect view — so the milky band persisted until an external gesture forced a re-layout.

Fix:
In forceResetPinchBlurIfIdle, cancel any stale fade display link and remove the UIVisualEffectView from the hierarchy (the pinch path lazily reinstalls it when a real pinch begins), so returning from a conversation starts from a clean, blur-free row.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions