BIG-118: feat: hide the pagination before table has minimum items length.

This commit is contained in:
a.bouhuolia
2021-09-28 19:52:01 +02:00
parent 0aca6d9af7
commit d6c78a9908
5 changed files with 22 additions and 8 deletions

View File

@@ -196,6 +196,8 @@ export default function DataTable(props) {
DataTable.defaultProps = { DataTable.defaultProps = {
pagination: false, pagination: false,
hidePaginationNoPages: true,
size: null, size: null,
spinnerProps: { size: 30 }, spinnerProps: { size: 30 },

View File

@@ -14,12 +14,15 @@ export default function TablePagination() {
pageCount, pageCount,
state: { pageIndex, pageSize }, state: { pageIndex, pageSize },
}, },
props: { pagination, loading, onPaginationChange }, props: { pagination, loading, onPaginationChange, hidePaginationNoPages },
} = useContext(TableContext); } = useContext(TableContext);
const triggerOnPaginationChange = useCallback((payload) => { const triggerOnPaginationChange = useCallback(
saveInvoke(onPaginationChange, payload) (payload) => {
}, [onPaginationChange]); saveInvoke(onPaginationChange, payload);
},
[onPaginationChange],
);
// Handles the page changing. // Handles the page changing.
const handlePageChange = useCallback( const handlePageChange = useCallback(
@@ -45,8 +48,14 @@ export default function TablePagination() {
[gotoPage, setPageSize, triggerOnPaginationChange], [gotoPage, setPageSize, triggerOnPaginationChange],
); );
// Detarmines when display the pagination.
const showPagination =
pagination &&
((hidePaginationNoPages && pageCount > 1) || !hidePaginationNoPages) &&
!loading;
return ( return (
<If condition={pagination && !loading}> showPagination && (
<Pagination <Pagination
currentPage={pageIndex + 1} currentPage={pageIndex + 1}
total={pageSize * pageCount} total={pageSize * pageCount}
@@ -54,6 +63,6 @@ export default function TablePagination() {
onPageChange={handlePageChange} onPageChange={handlePageChange}
onPageSizeChange={handlePageSizeChange} onPageSizeChange={handlePageSizeChange}
/> />
</If> )
); );
} }

View File

@@ -89,7 +89,7 @@ function CustomerActionsBar({
// Handle table row size change. // Handle table row size change.
const handleTableRowSizeChange = (size) => { const handleTableRowSizeChange = (size) => {
addSetting('custoemrs', 'tableSize', size); addSetting('customers', 'tableSize', size);
}; };
return ( return (

View File

@@ -14,7 +14,7 @@ export default (mapState) => {
itemsSettings: state.settings.data.items, itemsSettings: state.settings.data.items,
expenseSettings: state.settings.data.expenses, expenseSettings: state.settings.data.expenses,
accountsSettings: state.settings.data.accounts, accountsSettings: state.settings.data.accounts,
customersSettings: state.settings.data.custoemrs, customersSettings: state.settings.data.customers,
vendorsSettings: state.settings.data.vendors, vendorsSettings: state.settings.data.vendors,
}; };
return mapState ? mapState(mapped, state, props) : mapped; return mapState ? mapState(mapped, state, props) : mapped;

View File

@@ -43,6 +43,9 @@ const initialState = {
vendors: { vendors: {
tableSize: 'medium', tableSize: 'medium',
}, },
accounts: {
tableSize: 'medium'
}
}, },
}; };