diff --git a/src/components/modals/ShareSummaryModal.tsx b/src/components/modals/ShareSummaryModal.tsx index 0c838fc..eb1e419 100644 --- a/src/components/modals/ShareSummaryModal.tsx +++ b/src/components/modals/ShareSummaryModal.tsx @@ -24,17 +24,25 @@ export function ShareSummaryModal({ isOpen, onClose, summaryId, requestTitle, on const [searching, setSearching] = useState(false); const [sharing, setSharing] = useState(false); - // Search users + // Search users - only when input starts with @ useEffect(() => { - if (!isOpen || !searchTerm.trim()) { + if (!isOpen) { setUsers([]); return; } + // Only trigger search when using @ sign + if (!searchTerm || !searchTerm.startsWith('@') || searchTerm.length < 2) { + setUsers([]); + setSearching(false); + return; + } + const searchTimeout = setTimeout(async () => { try { setSearching(true); - const response = await searchUsers(searchTerm); + const term = searchTerm.slice(1); // Remove @ prefix + const response = await searchUsers(term, 10); const results = response?.data?.data || response?.data || []; setUsers(Array.isArray(results) ? results : []); } catch (error) { @@ -111,12 +119,17 @@ export function ShareSummaryModal({ isOpen, onClose, summaryId, requestTitle, on setSearchTerm(e.target.value)} className="pl-10" /> + {searchTerm && !searchTerm.startsWith('@') && ( +

+ Start with @ to search users (e.g., @john) +

+ )} {searching && ( @@ -163,11 +176,17 @@ export function ShareSummaryModal({ isOpen, onClose, summaryId, requestTitle, on )} - {!searching && searchTerm && users.length === 0 && ( + {!searching && searchTerm && searchTerm.startsWith('@') && users.length === 0 && (
No users found
)} + + {!searching && searchTerm && !searchTerm.startsWith('@') && ( +
+ Start typing with @ to search users +
+ )} {selectedUserIds.size > 0 && (