Mohamed Boudra
57db997028
docs: lock down hover pattern, fix user message bubble flicker
...
The user message bubble had hover on a `Pressable` wrapping the bubble,
with the timestamp and copy button as siblings outside it — moving the
cursor onto them lost hover. Wrapping both in a single Pressable then
flickered, because `TurnCopyButton` is itself a Pressable and nested
Pressables fight over hover state.
Rewrite `UserMessage` to match the workspace row pattern: hover-tracking
on a plain outer `View` with `onPointerEnter`/`onPointerLeave`, nested
Pressables freely inside. Pointer events are non-bubbling DOM events,
so descendants can't disrupt the outer hover.
Rewrite `docs/hover.md` with the workspace row as THE canonical pattern,
not one option among several. Names the three failure modes that come
from skipping it — including "nested Pressables fight over hover" — and
explicitly bounds when `Pressable.onHoverIn`/`onHoverOut` is acceptable
(self-styling only).
Update `constants/platform.ts` so its hover guidance points at the doc
instead of recommending the broken pattern.
2026-05-15 11:25:19 +07:00
..
2026-04-24 12:26:10 +08:00
2026-05-02 18:04:18 +07:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-05-10 12:18:27 +00:00
2026-05-10 12:18:27 +00:00
2026-04-18 14:21:40 +07:00
2026-05-07 13:08:10 +08:00
2026-05-06 20:00:40 +08:00
2026-04-18 12:08:30 +07:00
2026-04-18 12:08:30 +07:00
2026-05-09 22:42:03 +08:00
2026-04-01 13:37:51 +07:00
2026-04-01 13:37:51 +07:00
2026-04-04 16:35:31 +07:00
2026-05-13 13:58:15 +08:00
2026-05-05 19:58:56 +07:00
2026-04-24 12:26:10 +08:00
2026-03-10 12:56:18 +07:00
2026-04-24 12:26:10 +08:00
2026-03-21 20:22:15 +07:00
2026-04-06 18:15:30 +07:00
2026-05-05 19:58:55 +07:00
2026-05-05 19:58:55 +07:00
2026-05-15 11:09:13 +08:00
2026-04-24 11:55:43 +07:00
2026-04-24 11:55:43 +07:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-05-06 15:15:15 +07:00
2026-05-02 19:28:40 +08:00
2026-05-02 19:28:40 +08:00
2026-04-28 13:28:02 +07:00
2026-05-07 15:23:16 +07:00
2026-05-10 12:18:27 +00:00
2026-05-07 15:23:16 +07:00
2026-04-24 12:26:10 +08:00
2026-05-14 17:52:46 +08:00
2026-05-14 17:52:46 +08:00
2026-05-05 19:58:55 +07:00
2026-04-19 14:26:50 +07:00
2026-04-19 14:26:50 +07:00
2026-04-24 12:26:10 +08:00
2026-03-29 23:20:18 +07:00
2026-03-29 23:20:18 +07:00
2026-05-14 17:52:46 +08:00
2026-05-02 18:04:18 +07:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-04-18 09:56:14 +07:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-01-26 18:03:51 +07:00
2026-03-04 11:57:22 +07:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-05-09 15:39:26 +08:00
2026-04-24 12:26:10 +08:00
2026-05-05 19:56:26 +07:00
2026-04-16 10:33:49 +08:00
2026-04-16 10:33:49 +08:00
2026-05-02 14:02:27 +08:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-05-12 14:24:20 +08:00
2026-04-12 09:56:05 +08:00
2026-05-13 13:52:21 +00:00
2026-05-13 13:52:21 +00:00
2026-05-05 19:58:55 +07:00
2026-05-05 19:58:55 +07:00
2026-05-13 17:52:39 +08:00
2026-05-15 11:25:19 +07:00
2026-05-06 17:25:16 +08:00
2026-05-01 11:42:30 +07:00
2026-05-09 16:46:49 +08:00
2026-05-05 19:56:26 +07:00
2026-04-15 10:52:28 +07:00
2026-04-24 12:26:10 +08:00
2026-04-27 15:22:16 +07:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-04-23 15:19:40 +07:00
2026-04-23 15:19:40 +07:00
2026-04-23 15:19:40 +07:00
2026-04-23 15:19:40 +07:00
2026-04-26 13:16:24 +07:00
2026-04-26 13:16:24 +07:00
2026-05-06 13:22:31 +08:00
2026-05-14 20:57:32 +08:00
2026-03-18 01:36:54 +07:00
2026-03-21 20:22:15 +07:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-03-21 20:22:15 +07:00
2026-03-18 20:39:16 +07:00
2026-03-21 20:22:15 +07:00
2026-03-21 20:22:15 +07:00
2026-05-05 19:58:55 +07:00
2026-04-24 12:26:10 +08:00
2026-05-02 19:53:50 +08:00
2026-04-06 18:15:30 +07:00
2026-05-02 19:53:50 +08:00
2026-05-02 19:53:50 +08:00
2026-05-02 19:53:50 +08:00
2026-04-24 12:26:10 +08:00
2026-05-14 17:48:22 +08:00
2026-05-14 17:48:22 +08:00
2026-05-03 17:17:02 +07:00
2026-05-02 17:20:22 +07:00
2026-05-10 12:07:54 +08:00
2026-03-21 20:22:15 +07:00
2026-04-24 12:26:10 +08:00
2026-05-14 17:52:46 +08:00
2026-05-14 17:52:46 +08:00
2026-05-05 19:56:26 +07:00
2026-04-24 12:26:10 +08:00
2026-04-24 12:26:10 +08:00
2026-02-18 15:10:20 +07:00
2026-04-24 12:26:10 +08:00
2026-05-03 15:05:59 +07:00
2026-05-13 14:02:39 +00:00
2026-05-09 22:42:03 +08:00
2026-04-30 21:36:41 +08:00
2026-04-20 18:06:09 +07:00
2026-05-10 07:44:44 +00:00
2026-05-10 22:43:25 +08:00
2026-05-10 07:44:44 +00:00