feat(library): a clear-all button puts every filter back at once

This commit is contained in:
2026-10-12 12:53:48 +07:00
parent fbaf24ec32
commit 1f0fb0374e
3 changed files with 25 additions and 0 deletions
+23
View File
@@ -3023,6 +3023,29 @@ function Catalogue({ admin, user }: { admin: boolean; user: User | null }) {
))}
</select>
{/* 5b. The way back to the whole roll: every filter in this
row undone at once, which is otherwise four selects and
two dropdowns put back by hand. The order is left alone —
a sort is not a filter, and it is where the reader was. */}
<button
type="button"
className="adm-input"
data-key="lib-filter-reset"
aria-label={t('lib.filterReset')}
title={t('lib.filterReset')}
onClick={() => {
setMinStar(0);
setYear('all');
setMonth('all');
setDay('all');
setFrom('any');
setTo('any');
}}
style={{ flexShrink: 0, cursor: 'pointer', fontWeight: 600, padding: '0 8px' }}
>
✕
</button>
{/* 6. Search: a name or a tag. The one control here that
leaves the shelf — the four before it look through the
frames already in hand, this one asks Immich for frames
+1
View File
@@ -307,6 +307,7 @@ export const en: Dict = {
'lib.rating': 'RATING',
'lib.ratingAll': 'Any rating',
'lib.ratingAtLeast': '{n}★ and up',
'lib.filterReset': 'Clear every filter — back to the whole roll',
'lib.search.label': 'Search Immich',
'lib.search.placeholder': 'Name or tag…',
'lib.search.hint': 'Immich: type a file name or a tag, then Enter — the answer becomes a node of its own in the tree.',
+1
View File
@@ -319,6 +319,7 @@ export const vi = {
'lib.rating': 'XẾP HẠNG',
'lib.ratingAll': 'Mọi mức sao',
'lib.ratingAtLeast': 'Từ {n} sao',
'lib.filterReset': 'Xoá mọi bộ lọc — về lại toàn bộ ảnh',
'lib.search.label': 'Tìm trên Immich',
'lib.search.placeholder': 'Tên ảnh hoặc tag…',
'lib.search.hint': 'Immich: gõ tên ảnh hoặc tên tag rồi Enter — kết quả thành một mục riêng trong cây.',