From 61e0ad969f28fb667a020797e92ec3ed40acb7ed Mon Sep 17 00:00:00 2001 From: elforjani3 Date: Tue, 27 Apr 2021 16:16:31 +0200 Subject: [PATCH] feat: expense drawer. --- .../ExpenseDrawer/ExpenseDrawerActionBar.js | 70 +++++++++++++++++++ .../ExpenseDrawer/ExpenseDrawerContent.js | 17 +++++ .../ExpenseDrawer/ExpenseDrawerDetails.js | 24 +++++++ .../ExpenseDrawer/ExpenseDrawerFooter.js | 21 ++++++ .../ExpenseDrawer/ExpenseDrawerHeader.js | 68 ++++++++++++++++++ .../ExpenseDrawer/ExpenseDrawerProvider.js | 31 ++++++++ .../ExpenseDrawer/ExpenseDrawerTable.js | 40 +++++++++++ .../containers/Drawers/ExpenseDrawer/index.js | 36 ++++++++++ .../ExpensesLanding/ExpenseDataTable.js | 26 ++++--- .../Expenses/ExpensesLanding/components.js | 3 +- 10 files changed, 325 insertions(+), 11 deletions(-) create mode 100644 client/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerActionBar.js create mode 100644 client/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerContent.js create mode 100644 client/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerDetails.js create mode 100644 client/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerFooter.js create mode 100644 client/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerHeader.js create mode 100644 client/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerProvider.js create mode 100644 client/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerTable.js create mode 100644 client/src/containers/Drawers/ExpenseDrawer/index.js diff --git a/client/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerActionBar.js b/client/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerActionBar.js new file mode 100644 index 000000000..d7b899899 --- /dev/null +++ b/client/src/containers/Drawers/ExpenseDrawer/ExpenseDrawerActionBar.js @@ -0,0 +1,70 @@ +import React from 'react'; +import { useHistory } from 'react-router-dom'; +import Icon from 'components/Icon'; +import { Button, Classes, NavbarGroup, Intent } from '@blueprintjs/core'; +import { FormattedMessage as T } from 'react-intl'; +import { safeCallback } from 'utils'; + +import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; +import withAlertsActions from 'containers/Alert/withAlertActions'; +import withDrawerActions from 'containers/Drawer/withDrawerActions'; + +import { compose } from 'utils'; + +/** + * Expense drawer action bar. + */ +function ExpenseDrawerActionBar({ + // #ownProps + expense, + + // #withAlertsDialog + openAlert, + + // #withDrawerActions + closeDrawer, +}) { + const history = useHistory(); + + // Handle the expense edit action. + const onEditExpense = () => { + if (expense) { + history.push(`/expenses/${expense.id}/edit`); + closeDrawer('expense-drawer'); + } + }; + + // Handle the expense delete action. + const onDeleteExpense = () => { + if (expense) { + openAlert('expense-delete', { expenseId: expense.id }); + closeDrawer('expense-drawer'); + } + }; + + return ( + + +