From d9e10fd6b4a414ff161df26db8992da83343445e Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Mon, 30 Mar 2020 00:13:45 +0200 Subject: [PATCH] feat: Accounts datatable. --- .../components/Accounts/AccountsActionsBar.js | 22 ++- .../components/Accounts/AccountsDataTable.js | 178 +++++++----------- .../components/Accounts/AccountsViewsTabs.js | 32 +++- client/src/components/DataTable.js | 150 +++++++++++---- client/src/components/DialogsContainer.js | 2 +- client/src/components/LoadingIndicator.js | 34 +++- client/src/connectors/Accounts.connector.js | 27 ++- .../Dashboard/Accounts/AccountsChart.js | 121 ++++++------ .../Dashboard/Dialogs/AccountFormDialog.js | 21 ++- client/src/hooks/index.js | 21 +++ client/src/static/json/icons.js | 8 + client/src/store/accounts/accounts.actions.js | 43 ++++- client/src/store/accounts/accounts.reducer.js | 33 +++- client/src/store/accounts/accounts.types.js | 9 +- client/src/store/queryReducers.js | 28 +++ client/src/style/components/data-table.scss | 86 +++++++-- client/src/style/pages/accounts-chart.scss | 17 +- client/src/style/pages/dashboard.scss | 3 +- client/src/style/views/Sidebar.scss | 2 + 19 files changed, 543 insertions(+), 294 deletions(-) create mode 100644 client/src/store/queryReducers.js diff --git a/client/src/components/Accounts/AccountsActionsBar.js b/client/src/components/Accounts/AccountsActionsBar.js index 30041d94e..b8cc91984 100644 --- a/client/src/components/Accounts/AccountsActionsBar.js +++ b/client/src/components/Accounts/AccountsActionsBar.js @@ -25,9 +25,10 @@ import ResourceConnect from 'connectors/Resource.connector'; function AccountsActionsBar({ openDialog, views, - bulkActions, + selectedRows = [], getResourceFields, - onFilterChange, + addAccountsTableQueries, + onFilterChanged, }) { const {path} = useRouteMatch(); const onClickNewAccount = () => { openDialog('account-form', {}); }; @@ -37,13 +38,16 @@ function AccountsActionsBar({ const viewsMenuItems = views.map((view) => { return (); }); - const hasBulkActionsSelected = useMemo(() => { - return Object.keys(bulkActions).length > 0; - }, [bulkActions]); + const hasSelectedRows = useMemo(() => selectedRows.length > 0, [selectedRows]); const filterDropdown = FilterDropdown({ fields: accountsFields, - onFilterChange, + onFilterChange: (filterConditions) => { + addAccountsTableQueries({ + filter_roles: filterConditions || '', + }); + onFilterChanged && onFilterChanged(filterConditions); + }, }); return ( @@ -82,7 +86,7 @@ function AccountsActionsBar({ - {hasBulkActionsSelected && ( + {hasSelectedRows && (