diff --git a/packages/addon/src/addon.ts b/packages/addon/src/addon.ts index 49d0528e..5bb8ae0b 100644 --- a/packages/addon/src/addon.ts +++ b/packages/addon/src/addon.ts @@ -739,12 +739,19 @@ export class AIOStreams { ? -1 : 1; // cached > uncached } - } else if (field === 'hasProvider') { - // files from a provider should be prioritised and then - let aHasProvider = a.provider; - let bHasProvider = b.provider; - if (aHasProvider && !bHasProvider) return -1; - if (!aHasProvider && bHasProvider) return 1; + } else if (field === 'personal') { + // depending on direction, sort by personal or not personal + const direction = this.config.sortBy.find( + (sort) => Object.keys(sort)[0] === 'personal' + )?.direction; + if (direction === 'asc') { + // prefer not personal over personal + return a.personal === b.personal ? 0 : a.personal ? 1 : -1; + } + if (direction === 'desc') { + // prefer personal over not personal + return a.personal === b.personal ? 0 : a.personal ? -1 : 1; + } } else if (field === 'service') { // sort files with providers by name let aProvider = a.provider?.id; diff --git a/packages/frontend/src/app/configure/page.tsx b/packages/frontend/src/app/configure/page.tsx index 877a0ff7..5a941e7c 100644 --- a/packages/frontend/src/app/configure/page.tsx +++ b/packages/frontend/src/app/configure/page.tsx @@ -104,6 +104,7 @@ const defaultEncodes: Encode[] = [ ]; const defaultSortCriteria: SortBy[] = [ + { personal: true, direction: 'desc' }, { cached: true, direction: 'desc' }, { resolution: true }, { language: true },