import React, { useCallback, useState } from 'react'; import { useDispatch } from 'react-redux'; import Label from 'Components/Label'; import IconButton from 'Components/Link/IconButton'; import Link from 'Components/Link/Link'; import ConfirmModal from 'Components/Modal/ConfirmModal'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; import TableRow from 'Components/Table/TableRow'; import { icons, kinds } from 'Helpers/Props'; import { deleteRootFolder } from 'Store/Actions/rootFolderActions'; import formatBytes from 'Utilities/Number/formatBytes'; import translate from 'Utilities/String/translate'; import styles from './RootFolderRow.css'; interface RootFolderRowProps { id: number; path: string; accessible: boolean; freeSpace?: number; unmappedFolders: object[]; } function RootFolderRow(props: RootFolderRowProps) { const { id, path, accessible, freeSpace, unmappedFolders = [] } = props; const isUnavailable = !accessible; const dispatch = useDispatch(); const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); const onDeletePress = useCallback(() => { setIsDeleteModalOpen(true); }, [setIsDeleteModalOpen]); const onDeleteModalClose = useCallback(() => { setIsDeleteModalOpen(false); }, [setIsDeleteModalOpen]); const onConfirmDelete = useCallback(() => { dispatch(deleteRootFolder({ id })); setIsDeleteModalOpen(false); }, [dispatch, id]); return ( {isUnavailable ? (
{path}
) : ( {path} )}
{isUnavailable || isNaN(Number(freeSpace)) ? '-' : formatBytes(freeSpace)} {isUnavailable ? '-' : unmappedFolders.length}
); } export default RootFolderRow;