fix(mobile): reset filtrow dziala od razu, licznik filtrow wzgledem domyslnych, rok w filtrze filmow 1900..2100

- ScenesFilterModal: Reset all filters stosuje domyslne i zamyka arkusz (f5193fba)
- ScenesScreen: has_playback domyslnie wlaczone nie liczy sie jako filtr, za to sort,
  min. dlugosc, min. jakosc i stuby tak
- MovieFiltersSheet: rok poza 1900..2100 ignorowany zamiast 422 (2b6dbc75)
- changelog 2026-09-14a, OTA 6cca22ce na 1.3

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
goon-foss 2026-09-14 14:38:59 +02:00
parent c55596dd6f
commit d5fb3fb521
4 changed files with 22 additions and 5 deletions

View file

@ -29,6 +29,15 @@ export type ChangelogEntry = {
}; };
export const CHANGELOG: ChangelogEntry[] = [ export const CHANGELOG: ChangelogEntry[] = [
{
id: '2026-09-14a',
date: 'September 2026',
items: [
'xhamster and mypornerleak thumbnails show up in lists straight away. Both sites changed their pages; new scenes get thumbnails at import again and the last 30 days are being filled in.',
'"Reset all filters" now applies immediately and closes the sheet, and the filter badge no longer shows "1" when nothing is set.',
'Movies: a release year outside 1900 to 2100 is ignored instead of breaking the list.',
],
},
{ {
id: '2026-09-08c', id: '2026-09-08c',
date: 'September 2026', date: 'September 2026',

View file

@ -163,8 +163,9 @@ export function MovieFiltersSheet({ visible, value, onChange, onClose }: Props)
const yt = parseInt(yearToText, 10); const yt = parseInt(yearToText, 10);
onChange({ onChange({
...draft, ...draft,
year_from: Number.isFinite(yf) && yf >= 1900 ? yf : null, // Backend przyjmuje 1900..2100; wpisane np. 5005 konczylo sie 422 i pusta lista.
year_to: Number.isFinite(yt) && yt >= 1900 ? yt : null, year_from: Number.isFinite(yf) && yf >= 1900 && yf <= 2100 ? yf : null,
year_to: Number.isFinite(yt) && yt >= 1900 && yt <= 2100 ? yt : null,
}); });
onClose(); onClose();
}; };

View file

@ -154,7 +154,10 @@ export function ScenesFilterModal({
const toggle = (list: string[], value: string): string[] => const toggle = (list: string[], value: string): string[] =>
list.includes(value) ? list.filter((s) => s !== value) : [...list, value]; list.includes(value) ? list.filter((s) => s !== value) : [...list, value];
const reset = () => setDraft(DEFAULT_FILTER); const reset = () => {
setDraft(DEFAULT_FILTER);
onApply(DEFAULT_FILTER);
};
const apply = () => onApply(draft); const apply = () => onApply(draft);
const activeCount = const activeCount =

View file

@ -149,8 +149,12 @@ export function ScenesScreen({
filter.tagSlugs.length + filter.tagSlugs.length +
filter.studioSlugs.length + filter.studioSlugs.length +
filter.performerIds.length + filter.performerIds.length +
(filter.hasPlayback ? 1 : 0) + (filter.hasPlayback !== DEFAULT_FILTER.hasPlayback ? 1 : 0) +
(filter.origin.trim() ? 1 : 0); (filter.origin.trim() ? 1 : 0) +
(filter.sort !== DEFAULT_FILTER.sort ? 1 : 0) +
(filter.minDurationSec > 0 ? 1 : 0) +
(filter.minQualityP > 0 ? 1 : 0) +
(filter.includeStubs ? 1 : 0);
// Saved searches, zapisane słowa kluczowe (user-report mobilism). // Saved searches, zapisane słowa kluczowe (user-report mobilism).
const queryClient = useQueryClient(); const queryClient = useQueryClient();