From 090d11d4c3ffa46a74e57d0a14e448fd6be34243 Mon Sep 17 00:00:00 2001 From: Sandro Date: Thu, 29 Oct 2026 20:40:59 +0100 Subject: [PATCH] refactor(capture): memoize writable lists in the capture bar Co-Authored-By: Claude Opus 5.5 --- frontend/src/features/capture/InstantCaptureBar.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/src/features/capture/InstantCaptureBar.tsx b/frontend/src/features/capture/InstantCaptureBar.tsx index 4097356..114e074 100644 --- a/frontend/src/features/capture/InstantCaptureBar.tsx +++ b/frontend/src/features/capture/InstantCaptureBar.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useRef, useState } from 'react'; +import React, { useEffect, useRef, useState, useMemo } from 'react'; import { Mic, MicOff, @@ -38,7 +38,8 @@ export const InstantCaptureBar: React.FC = ({ hideTargetPicker = false, fixedTarget, }) => { - const writableLists = lists.filter((l) => l.isOwner || l.role !== 'viewer'); + // Read-only shared lists cannot take new items; stable reference for the effect below + const writableLists = useMemo(() => lists.filter((l) => l.isOwner || l.role !== 'viewer'), [lists]); const [content, setContent] = useState(''); const [priority, setPriority] = useState('normal'); const [dueDate, setDueDate] = useState('');