You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| T1a |**FK violation for unauthenticated users** — `channel_members.member_id` FK violated when anonymous session UUID doesn't exist in `public.users`|`useChannleInitialData.ts`| Runtime crash on chatroom open | ✅ Fixed v1.7.0 |
| T2 |**RLS not fully enabled** — Messages and channels tables have RLS policies commented out in `13-RLS.sql`|`supabase/scripts/13-RLS.sql`| Security concern — all authenticated users can access all messages | ❌ Open |
@@ -1170,7 +1171,7 @@ interface ThreadState {
1170
1171
| ID | Issue | Location | Impact |
1171
1172
|----|-------|----------|--------|
1172
1173
| T4 |**`useChannleInitialData` typo** in filename |`hooks/useChannleInitialData.ts`| Developer confusion |
1173
-
| T5 |**Mixed icon libraries** — `MdMoreVert` (Material) in `HoverMenuActions.tsx`, should be `LuEllipsisVertical` (Lucide) |`HoverMenuActions.tsx`|Design system inconsistency|
1174
+
| T5 |~~**Mixed icon libraries** — `MdMoreVert` (Material) in `HoverMenuActions.tsx`, should be `LuEllipsisVertical` (Lucide)~~|`HoverMenuActions.tsx`|✅ Fixed v1.9.0 — migrated to `Icons.moreVertical` via Icons registry|
1174
1175
| T6 |**Stale `@ts-ignore` comments** — Multiple `@ts-ignore` in stores and hooks |`chatroom.ts`, `channelMessagesStore.ts`| Bypassed type checking |
1175
1176
| T7 |~~**Legacy `ChannelProvider`** — Separate context provider in `context/ChannelProvider.tsx` with duplicated settings~~|~~`context/ChannelProvider.tsx`~~| ✅ Fixed v1.8.0 — file deleted, wrapper removed from `ChatContainerMobile.tsx`|
1176
1177
| T8 |**Debounce in `useChannelInitialData`** — Using lodash debounce with `useCallback(debounce(...), [channelId])` is incorrect (creates new debounce on channelId change) |`hooks/useChannleInitialData.ts`| Potential double-fetch |
The design system states: *"If an element can scroll, it must use the shared ScrollArea component"*
3331
3334
3332
-
**Current state: ZERO imports of `ScrollArea`in the chatroom directory**
3335
+
**Current state: Shared UI components (`Select`, `SearchableSelect`) migrated to `ScrollArea`(v1.10.0). Chatroom-specific scrollable elements still pending.**
3333
3336
3334
3337
Scrollable elements using native scroll:
3335
-
- Message feed list (virtual scroll via Tanstack Virtual)
3338
+
- Message feed list (virtual scroll via Tanstack Virtual) — **valid exception** (same as TipTap editor in §2.3)
**Note:** The message feed uses Tanstack Virtual, which requires a native scroll container. This is a valid exception (similar to the TipTap editor exception in §2.3). However, the `QuickReactionMenu` and `MentionList` should use `ScrollArea`.
3342
+
**Migrated to `ScrollArea`:**
3343
+
-`Select.tsx` dropdown options list — ✅ v1.10.0
3344
+
-`SearchableSelect.tsx` dropdown options list — ✅ v1.10.0
3345
+
3346
+
**Still pending:**`QuickReactionMenu` and `MentionList` should use `ScrollArea`.
8.**Icons** — All icons (`chevronDown`, `check`, `search`) use the `Icons` registry (§3.5) — never raw `Lu*` imports.
426
+
9.**ScrollArea** — Dropdown option lists use the shared `ScrollArea` component (§2.4) — never raw `overflow-y-auto`.
410
427
411
428
> ⚠️ **DaisyUI `select` gotcha:** On a `<button>`, the `select` class adds an arrow via `background-image`. Add `bg-none` to remove it and `pr-3` to fix padding. Both components handle this.
0 commit comments