1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2026-03-28 18:04:19 -04:00
Files
Sonarr/frontend/src/RootFolder/RootFolders.tsx
Mark McDowall 7a5157df29 Use react-query for root folders
New: Add tooltip for empty root folders
Closes #8196
2025-11-26 18:42:19 -08:00

70 lines
1.7 KiB
TypeScript

import React from 'react';
import Alert from 'Components/Alert';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import Column from 'Components/Table/Column';
import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody';
import { kinds } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import RootFolderRow from './RootFolderRow';
import useRootFolders from './useRootFolders';
const rootFolderColumns: Column[] = [
{
name: 'path',
label: () => translate('Path'),
isVisible: true,
},
{
name: 'freeSpace',
label: () => translate('FreeSpace'),
isVisible: true,
},
{
name: 'unmappedFolders',
label: () => translate('UnmappedFolders'),
isVisible: true,
},
{
name: 'actions',
label: '',
isVisible: true,
},
];
function RootFolders() {
const { isFetching, isFetched, error, data } = useRootFolders();
if (isFetching && !isFetched) {
return <LoadingIndicator />;
}
if (!isFetching && !!error) {
return (
<Alert kind={kinds.DANGER}>{translate('RootFoldersLoadError')}</Alert>
);
}
return (
<Table columns={rootFolderColumns}>
<TableBody>
{data.map((rootFolder) => {
return (
<RootFolderRow
key={rootFolder.id}
id={rootFolder.id}
path={rootFolder.path}
accessible={rootFolder.accessible}
isEmpty={rootFolder.isEmpty}
freeSpace={rootFolder.freeSpace}
unmappedFolders={rootFolder.unmappedFolders}
/>
);
})}
</TableBody>
</Table>
);
}
export default RootFolders;