// Jedna definicja "co jest NOWĄ sceną" dla favorite-driven widoków (PerformerScenes, // StudioScenes, SceneTile). Wcześniej reguła była skopiowana w 3-4 miejscach i dryfowała // (martwy FavoriteSceneRow miał starą wersję bez backfillu). Trzymaj tu. import type { SceneOut } from '../types'; /** * NEW = dodane od ostatniej wizyty (created_at > seenSince), ale NIE backfill (masowy * import starego katalogu, tube podaje datę importu jako release_date, więc udawałby * świeżość). Spójne z licznikiem "+N" w backendzie (app/api/favorites.py _new_counts). */ export function isNewScene(scene: SceneOut, seenSince: string | undefined): boolean { return !!(seenSince && scene.created_at && scene.created_at > seenSince && !scene.backfill); } /** NEW-first: nowe sceny na górę (zachowując kolejność), reszta bez zmian. Bez seenSince * zwraca listę jak jest. */ export function sortNewFirst(items: SceneOut[], seenSince: string | undefined): SceneOut[] { if (!seenSince) return items; const newOnes: SceneOut[] = []; const rest: SceneOut[] = []; for (const s of items) { if (isNewScene(s, seenSince)) newOnes.push(s); else rest.push(s); } return [...newOnes, ...rest]; }