From cff89458894cfef9e07a083c9aa589263c09a8b0 Mon Sep 17 00:00:00 2001 From: elforjani3 Date: Sat, 4 Apr 2020 19:32:05 +0200 Subject: [PATCH] WIP item categories. --- client/src/components/DialogsContainer.js | 4 +- .../src/components/Items/ItemsCategoryList.js | 85 ++++++++ client/src/config/sidebarMenu.js | 8 +- .../src/connectors/ItemsCategory.connect.js | 31 +++ .../Dashboard/Dialogs/ItemCategoryDialog.js | 205 ++++++++++++++++++ .../Dashboard/Items/ItemsActionsBar.js | 80 ++++--- .../Items/ItemsCategoryActionsBar.js | 58 +++++ .../Dashboard/Items/ItemsCategoryList.js | 90 ++++++++ client/src/routes/dashboard.js | 7 +- .../itemCategories/itemsCategory.actions.js | 67 +++--- .../itemCategories/itemsCategory.reducer.js | 30 +++ .../itemCategories/itemsCategory.type.js | 4 +- .../itemCategories/itemsCateory.reducer.js | 13 +- client/src/store/reducers.js | 2 +- server/src/http/controllers/ItemCategories.js | 124 +++++++---- 15 files changed, 697 insertions(+), 111 deletions(-) create mode 100644 client/src/components/Items/ItemsCategoryList.js create mode 100644 client/src/connectors/ItemsCategory.connect.js create mode 100644 client/src/containers/Dashboard/Dialogs/ItemCategoryDialog.js create mode 100644 client/src/containers/Dashboard/Items/ItemsCategoryActionsBar.js create mode 100644 client/src/containers/Dashboard/Items/ItemsCategoryList.js create mode 100644 client/src/store/itemCategories/itemsCategory.reducer.js diff --git a/client/src/components/DialogsContainer.js b/client/src/components/DialogsContainer.js index ededd0cd0..1259ebf89 100644 --- a/client/src/components/DialogsContainer.js +++ b/client/src/components/DialogsContainer.js @@ -1,14 +1,14 @@ import React from 'react'; import AccountFormDialog from 'containers/Dashboard/Dialogs/AccountFormDialog'; import UserFormDialog from 'containers/Dashboard/Dialogs/UserFormDialog'; -import ItemFromDialog from 'containers/Dashboard/Dialogs/ItemFromDialog'; +import ItemFCategoryDialog from 'containers/Dashboard/Dialogs/ItemCategoryDialog'; export default function DialogsContainer() { return ( + - ); } diff --git a/client/src/components/Items/ItemsCategoryList.js b/client/src/components/Items/ItemsCategoryList.js new file mode 100644 index 000000000..33f1ba7b6 --- /dev/null +++ b/client/src/components/Items/ItemsCategoryList.js @@ -0,0 +1,85 @@ +import React, { useEffect, useCallback, useState, useMemo } from 'react'; +import Icon from 'components/Icon'; +import ItemsCategoryConnect from 'connectors/ItemsCategory.connect'; +import DialogConnect from 'connectors/Dialog.connector'; +import LoadingIndicator from 'components/LoadingIndicator'; +import { compose } from 'utils'; +import DataTable from 'components/DataTable'; +import { Button, Popover, Menu, MenuItem, Position } from '@blueprintjs/core'; + +const ItemsCategoryList = ({ + categories, + onFetchData, + onDeleteCategory, + onEditCategory, + openDialog +}) => { + const handelEditCategory = category => () => { + openDialog('item-form', { action: 'edit', id: category.id }); + onEditCategory(category.id); + }; + + const handleDeleteCategory = category => () => { + onDeleteCategory(category); + }; + + const actionMenuList = category => ( + + + + + ); + + const columns = useMemo( + () => [ + { + id: 'name', + Header: 'Category Name', + accessor: 'name' + }, + { + id: 'description', + Header: 'Description', + accessor: 'description' + }, + + { + id: 'actions', + Header: '', + Cell: ({ cell }) => ( + +