From 7e646b3e0fd0cd5dcc52a7e217d759dc4597ae7a Mon Sep 17 00:00:00 2001 From: iamdoubz <> Date: Mon, 6 Jul 2026 14:55:50 -0500 Subject: [PATCH] feat(calendar): search/date filter on the meeting-linking event picker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A real mailbox import is thousands of events — searching/filtering belongs where the user is actually tying a meeting to one, not just the general browse list in Settings. Defaults the date filter to the selected meeting's own recording date, since that's almost always the event being linked. --- src/lib/views/SummaryPanel.svelte | 37 ++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/lib/views/SummaryPanel.svelte b/src/lib/views/SummaryPanel.svelte index ed87151..b8eb7de 100644 --- a/src/lib/views/SummaryPanel.svelte +++ b/src/lib/views/SummaryPanel.svelte @@ -94,6 +94,35 @@ await meetings.attachEvent(m.id, eventId); } + // ---- Search/date filter for the event picker (a real mailbox import can + // be thousands of events) — defaults to the recording's own date since + // that's almost always the event being linked. ---- + let eventLinkSearch = $state(""); + let eventLinkDateFilter = $state(""); + $effect(() => { + const m = meetings.selected; + eventLinkDateFilter = m ? eventLocalYmd(m.started_at) : ""; + eventLinkSearch = ""; + }); + + function eventLocalYmd(unixSecs: number | null): string { + if (!unixSecs) return ""; + const d = new Date(unixSecs * 1000); + return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(d.getDate()).padStart(2, "0")}`; + } + + let filteredLinkEvents = $derived( + calendar.events.filter((ev) => { + if (eventLinkDateFilter && eventLocalYmd(ev.starts_at) !== eventLinkDateFilter) return false; + if ( + eventLinkSearch && + !(ev.subject ?? "").toLowerCase().includes(eventLinkSearch.toLowerCase()) + ) + return false; + return true; + }), + ); + // ---- Attendee-aware speaker naming (T6.5, FR-SPK-4) ---- const NEW_NAME = "__new__"; let addingNameFor = $state(null); @@ -275,11 +304,15 @@ {#if !meetings.selected}

Select a meeting to link it to a calendar event.

{:else} +
+ + +