import { Accordion, AccordionButton, AccordionItem, AccordionPanel, Box, HStack, IconButton, Table, TableProps, Tbody, Td, Text, Th, Thead, Tooltip, Tr, useBreakpointValue, VStack, } from '@chakra-ui/react'; import classNames from 'classnames'; import { statusColors } from 'constants/Settings'; import { FC, Fragment, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { OnlineBadge } from 'components/online-badge'; import { OnlineStatus } from 'components/online-status'; import { StatusBadge } from 'components/status-badge'; import { Pagination, EmptySection, AccordionArrowIcon, handleSort, EditIcon, StatusSortSelect, Sort, } from 'components/table'; import { UsageSlider, UsageSliderCompact } from './usage-slider'; import { useUsers } from 'stores'; import { ActionButtons } from './action-buttons'; import { pageSizeManagers } from 'utils/userPreferenceStorage'; type ExpandedIndex = number | number[]; type UsersTableProps = {} & TableProps; export const UsersTable: FC = (props) => { const { usersFilters: filters, users: { users }, users: { total }, onEditingUser, onCreateUser, onFilterChange, } = useUsers(); const { t } = useTranslation(); const [selectedRow, setSelectedRow] = useState( undefined ); const useTable = useBreakpointValue({ base: false, md: true }); const isFiltered = users.length !== total; const handleStatusFilter = (e: any) => { onFilterChange({ status: e.target.value.length > 0 ? e.target.value : undefined, }); }; const toggleAccordion = (index: number) => { setSelectedRow(index === selectedRow ? undefined : index); }; return ( {!useTable && users?.map((user, i) => { return ( ); })}
{t('users')} {t('usersTable.status')} {filters.status ? ': ' + filters.status : ''} {t('usersTable.dataUsage')}
{user.username}
{t('usersTable.dataUsage')} { e.stopPropagation(); onEditingUser(user); }} >
{useTable && users?.map((user, i) => { return ( onEditingUser(user)} > ); })} {users.length == 0 && ( )}
{t('username')} {t('usersTable.status')} {filters.status ? ': ' + filters.status : ''} {t('usersTable.dataUsage')}
{user.username}
); };