diff --git a/ui/app/components/Simple.vue b/ui/app/components/Simple.vue index dcc790fb..d40fbad6 100644 --- a/ui/app/components/Simple.vue +++ b/ui/app/components/Simple.vue @@ -243,27 +243,25 @@ const addInProgress = ref(false) const showExtras = ref(false) const dlFields = useStorage>('dl_fields', {}) const show_thumbnail = useStorage('show_thumbnail', true) - -const sortByNewest = (items: StoreItem[]): StoreItem[] => items.slice().sort((a, b) => (b.timestamp ?? 0) - (a.timestamp ?? 0)) -const sortByOldest = (items: StoreItem[]): StoreItem[] => items.slice().sort((a, b) => (a.timestamp ?? 0) - (b.timestamp ?? 0)) - -const queueItems = computed(() => sortByNewest(Object.values(queue.value ?? {}))) -const historyEntries = computed(() => sortByOldest(Object.values(history.value ?? {}))) const paginationInfo = computed(() => stateStore.getPagination()) +const queueItems = computed(() => Object.values(queue.value ?? {}).slice().sort((a, b) => (b.timestamp ?? 0) - (a.timestamp ?? 0))) + +const historyEntries = computed(() => { + const items = Object.values(history.value ?? {}) + return items.slice().sort((a, b) => new Date(b.datetime).getTime() - new Date(a.datetime).getTime()) +}) + const downloadingStatuses: ReadonlySet = new Set(['downloading', 'postprocessing', 'preparing']) const isDownloading = (status: ItemStatus | null): boolean => downloadingStatuses.has(status) -const downloadingItems = computed(() => queueItems.value.filter(item => isDownloading(item.status))) -const queuedItems = computed(() => queueItems.value.filter(item => !isDownloading(item.status))) - type DisplayEntry = { item: StoreItem; source: 'queue' | 'history' } const displayItems = computed(() => [ - ...downloadingItems.value.map(item => ({ item, source: 'queue' as const })), - ...queuedItems.value.map(item => ({ item, source: 'queue' as const })), - ...historyEntries.value.map(item => ({ item, source: 'history' as const })), + ...queueItems.value.filter(item => isDownloading(item.status)).map(item => ({ item, source: 'queue' as const })), + ...queueItems.value.filter(item => !isDownloading(item.status)).map(item => ({ item, source: 'queue' as const })), + ...historyEntries.value.map(item => ({ item, source: 'history' as const })) ]) const hasActiveQueue = computed(() => queueItems.value.length > 0)