1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2026-04-20 21:54:58 -04:00
Files
Sonarr/frontend/src/Series/Index/Select/Delete/useSelectedSeriesStats.ts
T
2026-03-16 16:54:31 -07:00

46 lines
1.2 KiB
TypeScript

import { useMemo } from 'react';
import { useSelect } from 'App/Select/SelectContext';
import Series from 'Series/Series';
import useSeries from 'Series/useSeries';
import sortByProp from 'Utilities/Array/sortByProp';
function useSelectedSeriesStats() {
const { data: allSeries } = useSeries();
const { useSelectedIds } = useSelect<Series>();
const seriesIds = useSelectedIds();
const series = useMemo((): Series[] => {
const seriesList = seriesIds.map((id) => {
return allSeries.find((s) => s.id === id);
}) as Series[];
return seriesList.sort(sortByProp('sortTitle'));
}, [allSeries, seriesIds]);
const { totalEpisodeFileCount, totalSizeOnDisk } = useMemo(() => {
return series.reduce(
(acc, { statistics = {} }) => {
const { episodeFileCount = 0, sizeOnDisk = 0 } = statistics;
acc.totalEpisodeFileCount += episodeFileCount;
acc.totalSizeOnDisk += sizeOnDisk;
return acc;
},
{
totalEpisodeFileCount: 0,
totalSizeOnDisk: 0,
}
);
}, [series]);
return {
series,
seriesIds,
totalEpisodeFileCount,
totalSizeOnDisk,
};
}
export default useSelectedSeriesStats;