feat(search): sender picker, date presets, has:link filter
- Add SelectSenderButton: clickable people picker for the From filter replacing the text-only from:@user syntax - Add date preset shortcuts in DateRangeButton (Today, Last week, Last month, Last year) for one-click range selection - Add Has link chip backed by Matrix contains_url API filter; toggle removes cleanly with X badge - Wire containsUrl through URL params, useMessageSearch hook, and SearchFilters props UNTESTED — verify at chat.lotusguild.org post-deploy. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -35,6 +35,7 @@ const useSearchPathSearchParams = (searchParams: URLSearchParams): _SearchPathSe
|
||||
senders: searchParams.get('senders') ?? undefined,
|
||||
fromTs: searchParams.get('fromTs') ?? undefined,
|
||||
toTs: searchParams.get('toTs') ?? undefined,
|
||||
containsUrl: searchParams.get('containsUrl') ?? undefined,
|
||||
}),
|
||||
[searchParams],
|
||||
);
|
||||
@@ -197,6 +198,7 @@ export function MessageSearch({
|
||||
senders: searchParamsSenders ?? senders,
|
||||
fromTs: searchPathSearchParams.fromTs ? Number(searchPathSearchParams.fromTs) : undefined,
|
||||
toTs: searchPathSearchParams.toTs ? Number(searchPathSearchParams.toTs) : undefined,
|
||||
containsUrl: searchPathSearchParams.containsUrl === 'true' ? true : undefined,
|
||||
};
|
||||
}, [searchPathSearchParams, searchParamRooms, searchParamsSenders, rooms, senders]);
|
||||
|
||||
@@ -357,6 +359,18 @@ export function MessageSearch({
|
||||
[setSearchParams],
|
||||
);
|
||||
|
||||
const handleContainsUrlChange = useCallback(
|
||||
(value?: boolean) => {
|
||||
setSearchParams((prevParams) => {
|
||||
const p = new URLSearchParams(prevParams);
|
||||
p.delete('containsUrl');
|
||||
if (value) p.append('containsUrl', 'true');
|
||||
return p;
|
||||
});
|
||||
},
|
||||
[setSearchParams],
|
||||
);
|
||||
|
||||
const lastVItem = vItems[vItems.length - 1];
|
||||
const lastVItemIndex: number | undefined = lastVItem?.index;
|
||||
const lastGroupIndex = groups.length - 1;
|
||||
@@ -409,6 +423,8 @@ export function MessageSearch({
|
||||
fromTs={msgSearchParams.fromTs}
|
||||
toTs={msgSearchParams.toTs}
|
||||
onDateRangeChange={handleDateRangeChange}
|
||||
containsUrl={msgSearchParams.containsUrl}
|
||||
onContainsUrlChange={handleContainsUrlChange}
|
||||
/>
|
||||
</Box>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user