@bigbinary/neeto-tags-frontend 1.5.14 → 1.5.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +146 -12
- package/dist/index.cjs.js +75 -59
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +76 -60
- package/dist/index.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -1,19 +1,153 @@
|
|
|
1
|
-
# neetoTagsNano
|
|
2
1
|
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
# neeto-tags-nano
|
|
3
|
+
The `neeto-tags-nano` manages tags across neeto applications. The nano exports the `@bigbinary/neeto-tags-frontend` NPM package and `neeto-tags-engine` Rails engine for development.
|
|
5
4
|
|
|
6
|
-
#
|
|
5
|
+
# Contents
|
|
6
|
+
1. [Development with Host Application](#development-with-host-application)
|
|
7
|
+
- [Engine](#engine)
|
|
8
|
+
- [Installation](#installation)
|
|
9
|
+
- [Usage](#usage)
|
|
10
|
+
- [Frontend package](#frontend-package)
|
|
11
|
+
- [Installation](#installation-1)
|
|
12
|
+
- [Components](#components)
|
|
13
|
+
2. [Instructions for Publishing](#instructions-for-publishing)
|
|
7
14
|
|
|
8
|
-
|
|
9
|
-
|
|
15
|
+
# Development with Host Application
|
|
16
|
+
## Engine
|
|
17
|
+
The engine is used to manage tags for any entity across neeto products.
|
|
10
18
|
|
|
11
|
-
|
|
19
|
+
### Installation
|
|
20
|
+
1. Add this line to your application's Gemfile:
|
|
21
|
+
```ruby
|
|
22
|
+
source "NEETO_GEM_SERVER_URL" do
|
|
23
|
+
# ..existing gems
|
|
12
24
|
|
|
13
|
-
|
|
14
|
-
|
|
25
|
+
gem 'neeto-tags-engine'
|
|
26
|
+
end
|
|
27
|
+
```
|
|
28
|
+
2. And then execute:
|
|
29
|
+
```ruby
|
|
30
|
+
bundle install
|
|
31
|
+
```
|
|
32
|
+
3. Add this line to your application's `config/routes.rb` file:
|
|
33
|
+
```ruby
|
|
34
|
+
mount NeetoTagsEngine::Engine => "/neeto_tags_engine"
|
|
35
|
+
```
|
|
36
|
+
4. Run the following command to copy the migrations from the engine to the host application:
|
|
37
|
+
```ruby
|
|
38
|
+
bundle exec rails neeto_tags_engine:install:migrations
|
|
39
|
+
```
|
|
40
|
+
5. Add the migrations to the database:
|
|
41
|
+
```ruby
|
|
42
|
+
bundle exec rails db:migrate
|
|
43
|
+
```
|
|
44
|
+
### Usage
|
|
45
|
+
You can learn more about the setup and usage here:
|
|
46
|
+
1. [Models](/docs/engine/models.md)
|
|
47
|
+
2. [Controllers](/docs/engine/controllers.md)
|
|
15
48
|
|
|
16
|
-
|
|
49
|
+
## Frontend package
|
|
50
|
+
The package exports two components: `NeetoTags` and `Tags`.
|
|
17
51
|
|
|
18
|
-
|
|
19
|
-
|
|
52
|
+
The package also exports one hook: `refetchTags`.
|
|
53
|
+
|
|
54
|
+
### Installation
|
|
55
|
+
1. `neeto-tags-nano` has a few peer dependencies that are required for the proper functioning of the package. Install all the peer dependencies using the below command:
|
|
56
|
+
```zsh
|
|
57
|
+
yarn add @bigbinary/neeto-commons-frontend@2.0.35 @bigbinary/neeto-icons@1.9.10 @bigbinary/neetoui@4.3.3 @honeybadger-io/js@5.1.1 @honeybadger-io/react@5.1.2 axios@1.3.3 classnames@2.3.2 formik@2.2.9 js-logger@1.6.1 ramda@0.28.0 react-helmet@6.1.0 react-query@3.39.3 react-router-dom@5.3.4 react-toastify@8.2.0 yup@1.0.0
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
2. Now install the latest `neeto-tags-nano` package using the below command:
|
|
61
|
+
```zsh
|
|
62
|
+
yarn add @bigbinary/neeto-tags-frontend
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Components
|
|
66
|
+
#### `NeetoTags` ([source code](https://github.com/bigbinary/neeto-tags-nano/blob/e61f7bd2b9cab9fbf29fcfecf57e66131c86e6ef/app/javascript/src/index.jsx))
|
|
67
|
+
This component provides a dashboard to manage tags for an application.
|
|
68
|
+
|
|
69
|
+
##### Props
|
|
70
|
+
- `config`: Configuration object that includes specifications for tags, display menu, and breadcrumbs.
|
|
71
|
+
|
|
72
|
+
##### Configuration
|
|
73
|
+
Refer to the [NeetoTags](/docs/frontend/neeto_tags.md) section for detailed information on the available configurations for the `NeetoTags` component.
|
|
74
|
+
|
|
75
|
+
##### Usage
|
|
76
|
+
```jsx
|
|
77
|
+
import React from "react";
|
|
78
|
+
|
|
79
|
+
import { NeetoTags } from "@bigbinary/neeto-tags-frontend";
|
|
80
|
+
|
|
81
|
+
const App = () => {
|
|
82
|
+
return <NeetoTags config={config} />;
|
|
83
|
+
};
|
|
84
|
+
export default App;
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
#### `Tags` ([source code](https://github.com/bigbinary/neeto-tags-nano/blob/e61f7bd2b9cab9fbf29fcfecf57e66131c86e6ef/app/javascript/src/components/Tags/index.jsx#L22))
|
|
88
|
+
|
|
89
|
+
This component provides functionality to assign tags to an entity.
|
|
90
|
+
|
|
91
|
+
##### Configuration
|
|
92
|
+
Refer to the [Tags](/docs/frontend/tags.md) section for detailed information on the available configurations for the `Tags` component.
|
|
93
|
+
|
|
94
|
+
##### Usage
|
|
95
|
+
```jsx
|
|
96
|
+
import React from "react";
|
|
97
|
+
|
|
98
|
+
import { TagsComponent } from "@bigbinary/neeto-tags-frontend";
|
|
99
|
+
|
|
100
|
+
const App = ({
|
|
101
|
+
allTags,
|
|
102
|
+
buttonProps,
|
|
103
|
+
selectProps,
|
|
104
|
+
selectedTags,
|
|
105
|
+
handleTagCreate,
|
|
106
|
+
handleTagRemove,
|
|
107
|
+
handleTagSelect,
|
|
108
|
+
}) => {
|
|
109
|
+
return (
|
|
110
|
+
<TagsComponent
|
|
111
|
+
allTags={allTags}
|
|
112
|
+
buttonProps={buttonProps}
|
|
113
|
+
selectProps={selectProps}
|
|
114
|
+
selectedTags={selectedTags}
|
|
115
|
+
onTagCreate={handleTagCreate}
|
|
116
|
+
onTagDelete={handleTagRemove}
|
|
117
|
+
onTagSelect={handleTagSelect}
|
|
118
|
+
/>
|
|
119
|
+
);
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export default App;
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Hooks
|
|
126
|
+
#### `refetchTags` ([source code](https://github.com/bigbinary/neeto-tags-nano/blob/e61f7bd2b9cab9fbf29fcfecf57e66131c86e6ef/app/javascript/src/hooks/useTagsApi.js#L39))
|
|
127
|
+
This function refetches the tags list.
|
|
128
|
+
|
|
129
|
+
##### Usage
|
|
130
|
+
Below is an example usage of the `refetchTags` hook:
|
|
131
|
+
|
|
132
|
+
```js
|
|
133
|
+
const useBulkUpdateTickets = () =>
|
|
134
|
+
useMutationWithInvalidation(
|
|
135
|
+
({ payload }) => ticketsApi.bulkUpdateTickets(payload),
|
|
136
|
+
{
|
|
137
|
+
keysToInvalidate: [
|
|
138
|
+
[QUERY_KEYS.TICKETS_LIST],
|
|
139
|
+
[QUERY_KEYS.TICKETS_DEFAULT_VIEWS],
|
|
140
|
+
[QUERY_KEYS.TEAMS],
|
|
141
|
+
...REPORT_DATA_KEYS_TO_INVALIDATE,
|
|
142
|
+
],
|
|
143
|
+
onSuccess: () => {
|
|
144
|
+
refetchTags();
|
|
145
|
+
},
|
|
146
|
+
}
|
|
147
|
+
);
|
|
148
|
+
```
|
|
149
|
+
Used by [neetoDesk](https://github.com/bigbinary/neeto-desk-web/blob/5ba3471deae047bc9d08dca6bf26537194b9a209/app/javascript/src/hooks/reactQuery/tickets/useTicketsApi.js#L83)
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
# Instructions for Publishing
|
|
153
|
+
Consult the [building and releasing packages](https://neeto-engineering.neetokb.com/articles/building-and-releasing-packages) guide for details on how to publish.
|
package/dist/index.cjs.js
CHANGED
|
@@ -17,9 +17,9 @@ var reactRouterDom = require('react-router-dom');
|
|
|
17
17
|
var Container$1 = require('@bigbinary/neeto-molecules/Container');
|
|
18
18
|
var reactQuery = require('react-query');
|
|
19
19
|
var axios = require('axios');
|
|
20
|
+
var yup = require('yup');
|
|
20
21
|
var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
|
|
21
22
|
var formik = require('@bigbinary/neetoui/formik');
|
|
22
|
-
var yup = require('yup');
|
|
23
23
|
var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
|
|
24
24
|
var TableWrapper = require('@bigbinary/neeto-molecules/TableWrapper');
|
|
25
25
|
var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
|
|
@@ -50,8 +50,8 @@ var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
|
50
50
|
var Metadata__default = /*#__PURE__*/_interopDefaultLegacy(Metadata);
|
|
51
51
|
var Container__default = /*#__PURE__*/_interopDefaultLegacy(Container$1);
|
|
52
52
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
53
|
-
var NeetoHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoHeader);
|
|
54
53
|
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
54
|
+
var NeetoHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoHeader);
|
|
55
55
|
var SubHeader__default = /*#__PURE__*/_interopDefaultLegacy(SubHeader);
|
|
56
56
|
var TableWrapper__default = /*#__PURE__*/_interopDefaultLegacy(TableWrapper);
|
|
57
57
|
var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
|
|
@@ -204,7 +204,8 @@ var Container = function Container(_ref) {
|
|
|
204
204
|
if (isMetadataBlock) {
|
|
205
205
|
return /*#__PURE__*/React__default["default"].createElement(Metadata__default["default"].Block, _extends({}, containerProps, {
|
|
206
206
|
actionBlock: /*#__PURE__*/React__default["default"].createElement(TitleActionBlock, actionBlockProps),
|
|
207
|
-
title: /*#__PURE__*/React__default["default"].createElement(Title, titleComponentProps)
|
|
207
|
+
title: /*#__PURE__*/React__default["default"].createElement(Title, titleComponentProps),
|
|
208
|
+
className: "space-y-4"
|
|
208
209
|
}), isTagsBodyVisible && children);
|
|
209
210
|
}
|
|
210
211
|
return /*#__PURE__*/React__default["default"].createElement("div", _extends({
|
|
@@ -257,7 +258,6 @@ var TagsSelector = reactUtils.withT(function (_ref) {
|
|
|
257
258
|
onCreateOption: onCreateOption,
|
|
258
259
|
autoFocus: true,
|
|
259
260
|
isCreateable: true,
|
|
260
|
-
className: "neeto-ui-mt-4",
|
|
261
261
|
maxLength: 50,
|
|
262
262
|
options: tags,
|
|
263
263
|
placeholder: t("neetoTags.placeholder.selectOrCreateTag")
|
|
@@ -375,7 +375,6 @@ var Tags$2 = function Tags(_ref) {
|
|
|
375
375
|
isTagsBodyVisible: isTagsBodyVisible,
|
|
376
376
|
titleComponentProps: titleComponentProps
|
|
377
377
|
}, neetoCist.isNotEmpty(selectedTags) && /*#__PURE__*/React__default["default"].createElement(TagsList, tagsListProps), isTagsDropdownVisible && /*#__PURE__*/React__default["default"].createElement(TagsSelector, tagsSelectorProps), isAddTagsButtonVisible && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, _extends({
|
|
378
|
-
className: "neeto-ui-mt-4",
|
|
379
378
|
disabled: isDisabled,
|
|
380
379
|
icon: neetoIcons.Plus,
|
|
381
380
|
label: t("neetoTags.button.addTag", constants.SINGULAR),
|
|
@@ -522,13 +521,13 @@ var queryClient = new reactQuery.QueryClient({
|
|
|
522
521
|
})
|
|
523
522
|
});
|
|
524
523
|
|
|
525
|
-
function ownKeys$
|
|
526
|
-
function _objectSpread$
|
|
524
|
+
function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
525
|
+
function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
527
526
|
var useFetchTags = function useFetchTags(params) {
|
|
528
527
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
529
528
|
return reactQuery.useQuery([TAG_KEY, params], function () {
|
|
530
529
|
return tagsApi.fetch(params);
|
|
531
|
-
}, _objectSpread$
|
|
530
|
+
}, _objectSpread$4({
|
|
532
531
|
staleTime: STALE_TIME,
|
|
533
532
|
select: function select(response) {
|
|
534
533
|
return response.data || response;
|
|
@@ -577,6 +576,29 @@ var refetchTags = function refetchTags() {
|
|
|
577
576
|
return queryClient.invalidateQueries([TAG_KEY]);
|
|
578
577
|
};
|
|
579
578
|
|
|
579
|
+
var TAG_NAME_MAX_LENGTH = 50;
|
|
580
|
+
var TAG_DESCRIPTION_ROW_LENGTH = 3;
|
|
581
|
+
var TAG_DESCRIPTION_MAX_LENGTH = 255;
|
|
582
|
+
var TAG_SCHEMA = yup__namespace.object().shape({
|
|
583
|
+
name: yup__namespace.string().typeError(i18next.t("neetoTags.validation.nameMustBeString")).required(i18next.t("neetoTags.validation.nameRequired")).max(TAG_NAME_MAX_LENGTH, i18next.t("neetoTags.validation.nameMaxLength", {
|
|
584
|
+
length: TAG_NAME_MAX_LENGTH
|
|
585
|
+
})),
|
|
586
|
+
description: yup__namespace.string().typeError(i18next.t("neetoTags.validation.descriptionMustBeString")).nullable().max(TAG_DESCRIPTION_MAX_LENGTH, i18next.t("neetoTags.validation.descriptionMaxLength", {
|
|
587
|
+
length: TAG_DESCRIPTION_MAX_LENGTH
|
|
588
|
+
}))
|
|
589
|
+
});
|
|
590
|
+
var TAGS_FORMIK_PROPS = {
|
|
591
|
+
validateOnBlur: true,
|
|
592
|
+
validateOnChange: true,
|
|
593
|
+
validationSchema: TAG_SCHEMA
|
|
594
|
+
};
|
|
595
|
+
var DEFAULT_FILTERS = {
|
|
596
|
+
page: constants.DEFAULT_PAGE_INDEX,
|
|
597
|
+
pageSize: constants.DEFAULT_PAGE_SIZE,
|
|
598
|
+
sortBy: "",
|
|
599
|
+
orderBy: ""
|
|
600
|
+
};
|
|
601
|
+
|
|
580
602
|
var Header = function Header(_ref) {
|
|
581
603
|
var breadcrumbs = _ref.breadcrumbs,
|
|
582
604
|
_ref$tagsMergable = _ref.tagsMergable,
|
|
@@ -665,25 +687,8 @@ var useTagsForm = function useTagsForm(_ref) {
|
|
|
665
687
|
};
|
|
666
688
|
};
|
|
667
689
|
|
|
668
|
-
var
|
|
669
|
-
var
|
|
670
|
-
var TAG_DESCRIPTION_MAX_LENGTH = 255;
|
|
671
|
-
var TAG_SCHEMA = yup__namespace.object().shape({
|
|
672
|
-
name: yup__namespace.string().typeError(i18next.t("neetoTags.validation.nameMustBeString")).required(i18next.t("neetoTags.validation.nameRequired")).max(TAG_NAME_MAX_LENGTH, i18next.t("neetoTags.validation.nameMaxLength", {
|
|
673
|
-
length: TAG_NAME_MAX_LENGTH
|
|
674
|
-
})),
|
|
675
|
-
description: yup__namespace.string().typeError(i18next.t("neetoTags.validation.descriptionMustBeString")).nullable().max(TAG_DESCRIPTION_MAX_LENGTH, i18next.t("neetoTags.validation.descriptionMaxLength", {
|
|
676
|
-
length: TAG_DESCRIPTION_MAX_LENGTH
|
|
677
|
-
}))
|
|
678
|
-
});
|
|
679
|
-
var TAGS_FORMIK_PROPS = {
|
|
680
|
-
validateOnBlur: true,
|
|
681
|
-
validateOnChange: true,
|
|
682
|
-
validationSchema: TAG_SCHEMA
|
|
683
|
-
};
|
|
684
|
-
|
|
685
|
-
function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
686
|
-
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
690
|
+
function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
691
|
+
function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
687
692
|
var ManageTags = function ManageTags(_ref) {
|
|
688
693
|
var createTags = _ref.createTags,
|
|
689
694
|
goToFirstPage = _ref.goToFirstPage,
|
|
@@ -715,7 +720,7 @@ var ManageTags = function ManageTags(_ref) {
|
|
|
715
720
|
style: "h2",
|
|
716
721
|
weight: "semibold"
|
|
717
722
|
}, isEdit ? t("neetoTags.common.editTag") : t("neetoTags.common.addNewTag", constants.SINGULAR))), /*#__PURE__*/React__default["default"].createElement(formik.Form, {
|
|
718
|
-
formikProps: _objectSpread$
|
|
723
|
+
formikProps: _objectSpread$3(_objectSpread$3({}, TAGS_FORMIK_PROPS), {}, {
|
|
719
724
|
initialValues: initialValues,
|
|
720
725
|
onSubmit: handleSubmit
|
|
721
726
|
})
|
|
@@ -836,13 +841,13 @@ var renderColumnData = function renderColumnData(handleEdit, handleDelete) {
|
|
|
836
841
|
var Table = function Table(_ref) {
|
|
837
842
|
var _data$tags;
|
|
838
843
|
var data = _ref.data,
|
|
844
|
+
filters = _ref.filters,
|
|
839
845
|
handleDelete = _ref.handleDelete,
|
|
840
846
|
handleEdit = _ref.handleEdit,
|
|
847
|
+
handleOnChange = _ref.handleOnChange,
|
|
841
848
|
isLoading = _ref.isLoading,
|
|
842
849
|
onTagRowClick = _ref.onTagRowClick,
|
|
843
|
-
page = _ref.page,
|
|
844
850
|
primaryButtonProps = _ref.primaryButtonProps,
|
|
845
|
-
setPage = _ref.setPage,
|
|
846
851
|
tagType = _ref.tagType;
|
|
847
852
|
var _useTranslation = reactI18next.useTranslation(),
|
|
848
853
|
t = _useTranslation.t;
|
|
@@ -866,13 +871,12 @@ var Table = function Table(_ref) {
|
|
|
866
871
|
type: (tagType === null || tagType === void 0 ? void 0 : tagType.label) || ""
|
|
867
872
|
}))
|
|
868
873
|
}), /*#__PURE__*/React__default["default"].createElement(TableWrapper__default["default"], {
|
|
869
|
-
hasPagination: (data === null || data === void 0 ? void 0 : data.totalCount) >
|
|
874
|
+
hasPagination: (data === null || data === void 0 ? void 0 : data.totalCount) > filters.pageSize
|
|
870
875
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Table, {
|
|
871
876
|
fixedHeight: true,
|
|
872
877
|
allowRowClick: !!onTagRowClick,
|
|
873
|
-
currentPageNumber: page,
|
|
874
|
-
defaultPageSize:
|
|
875
|
-
handlePageChange: setPage,
|
|
878
|
+
currentPageNumber: filters.page,
|
|
879
|
+
defaultPageSize: filters.pageSize,
|
|
876
880
|
loading: isLoading,
|
|
877
881
|
paginationProps: {
|
|
878
882
|
showSizeChanger: false
|
|
@@ -884,6 +888,7 @@ var Table = function Table(_ref) {
|
|
|
884
888
|
},
|
|
885
889
|
totalCount: data === null || data === void 0 ? void 0 : data.totalCount,
|
|
886
890
|
columnData: renderColumnData(handleEdit, handleDelete, tagType.columns),
|
|
891
|
+
onChange: handleOnChange,
|
|
887
892
|
onRowClick: function onRowClick(event, record, rowIndex) {
|
|
888
893
|
return onTagRowClick({
|
|
889
894
|
event: event,
|
|
@@ -894,6 +899,8 @@ var Table = function Table(_ref) {
|
|
|
894
899
|
})));
|
|
895
900
|
};
|
|
896
901
|
|
|
902
|
+
function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
903
|
+
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
897
904
|
var Dashboard = function Dashboard(_ref) {
|
|
898
905
|
var breadcrumbs = _ref.breadcrumbs,
|
|
899
906
|
createTags = _ref.createTags,
|
|
@@ -911,27 +918,25 @@ var Dashboard = function Dashboard(_ref) {
|
|
|
911
918
|
_useState2 = _slicedToArray(_useState, 2),
|
|
912
919
|
selectedTag = _useState2[0],
|
|
913
920
|
setSelectedTag = _useState2[1];
|
|
914
|
-
var _useState3 = React.useState(
|
|
921
|
+
var _useState3 = React.useState(null),
|
|
915
922
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
var _useState5 = React.useState(
|
|
923
|
+
paneType = _useState4[0],
|
|
924
|
+
setPaneType = _useState4[1];
|
|
925
|
+
var _useState5 = React.useState(false),
|
|
919
926
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
var _useState7 = React.useState(
|
|
927
|
+
isDeleteAlertOpen = _useState6[0],
|
|
928
|
+
setIsDeleteAlertOpen = _useState6[1];
|
|
929
|
+
var _useState7 = React.useState(DEFAULT_FILTERS),
|
|
923
930
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
924
|
-
|
|
925
|
-
|
|
931
|
+
filters = _useState8[0],
|
|
932
|
+
setFilters = _useState8[1];
|
|
926
933
|
var _useQueryParams = reactUtils.useQueryParams(),
|
|
927
934
|
_useQueryParams$searc = _useQueryParams.search_term,
|
|
928
935
|
searchTerm = _useQueryParams$searc === void 0 ? "" : _useQueryParams$searc;
|
|
929
|
-
var _useFetchTags = useFetchTags({
|
|
936
|
+
var _useFetchTags = useFetchTags(_objectSpread$2({
|
|
930
937
|
url: tagType.url,
|
|
931
|
-
searchTerm: searchTerm
|
|
932
|
-
|
|
933
|
-
page: page
|
|
934
|
-
}),
|
|
938
|
+
searchTerm: searchTerm
|
|
939
|
+
}, filters)),
|
|
935
940
|
data = _useFetchTags.data,
|
|
936
941
|
isLoading = _useFetchTags.isLoading;
|
|
937
942
|
var _useTranslation = reactI18next.useTranslation(),
|
|
@@ -956,6 +961,16 @@ var Dashboard = function Dashboard(_ref) {
|
|
|
956
961
|
setIsDeleteAlertOpen(false);
|
|
957
962
|
setSelectedTag(null);
|
|
958
963
|
};
|
|
964
|
+
var handleOnChange = function handleOnChange(_ref2, _, _ref3) {
|
|
965
|
+
var page = _ref2.current;
|
|
966
|
+
var sortBy = _ref3.field,
|
|
967
|
+
orderBy = _ref3.order;
|
|
968
|
+
return setFilters(ramda.mergeLeft({
|
|
969
|
+
page: page,
|
|
970
|
+
sortBy: orderBy && sortBy,
|
|
971
|
+
orderBy: orderBy
|
|
972
|
+
}));
|
|
973
|
+
};
|
|
959
974
|
var _useDeleteTag = useDeleteTag(),
|
|
960
975
|
mutate = _useDeleteTag.mutate,
|
|
961
976
|
isDeletingTag = _useDeleteTag.isLoading;
|
|
@@ -970,9 +985,9 @@ var Dashboard = function Dashboard(_ref) {
|
|
|
970
985
|
var _data$tags, _deleteTags$onSuccess;
|
|
971
986
|
setIsDeleteAlertOpen(false);
|
|
972
987
|
if ((data === null || data === void 0 || (_data$tags = data.tags) === null || _data$tags === void 0 ? void 0 : _data$tags.length) === 1) {
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
});
|
|
988
|
+
setFilters(ramda.mergeLeft({
|
|
989
|
+
page: filters.page - 1
|
|
990
|
+
}));
|
|
976
991
|
}
|
|
977
992
|
deleteTags === null || deleteTags === void 0 || (_deleteTags$onSuccess = deleteTags.onSuccess) === null || _deleteTags$onSuccess === void 0 ? void 0 : _deleteTags$onSuccess.callback();
|
|
978
993
|
// @ts-ignore
|
|
@@ -983,6 +998,11 @@ var Dashboard = function Dashboard(_ref) {
|
|
|
983
998
|
}
|
|
984
999
|
});
|
|
985
1000
|
};
|
|
1001
|
+
var resetPage = function resetPage() {
|
|
1002
|
+
return setFilters(ramda.mergeLeft({
|
|
1003
|
+
page: constants.DEFAULT_PAGE_INDEX
|
|
1004
|
+
}));
|
|
1005
|
+
};
|
|
986
1006
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Container__default["default"], null, /*#__PURE__*/React__default["default"].createElement(Header, {
|
|
987
1007
|
breadcrumbs: breadcrumbs,
|
|
988
1008
|
data: data,
|
|
@@ -991,30 +1011,26 @@ var Dashboard = function Dashboard(_ref) {
|
|
|
991
1011
|
setSelectedTag: setSelectedTag,
|
|
992
1012
|
tagsMergable: tagsMergable,
|
|
993
1013
|
tagsPath: tagsPath,
|
|
994
|
-
goToFirstPage:
|
|
995
|
-
return setPage(constants.DEFAULT_PAGE_INDEX);
|
|
996
|
-
}
|
|
1014
|
+
goToFirstPage: resetPage
|
|
997
1015
|
}), displayMenu && /*#__PURE__*/React__default["default"].createElement(Menu$1, {
|
|
998
1016
|
setTagType: setTagType,
|
|
999
1017
|
tagType: tagType,
|
|
1000
1018
|
tagTypes: tagTypes
|
|
1001
1019
|
}), /*#__PURE__*/React__default["default"].createElement(Table, {
|
|
1002
1020
|
data: data,
|
|
1021
|
+
filters: filters,
|
|
1003
1022
|
handleDelete: handleDelete,
|
|
1004
1023
|
handleEdit: handleEdit,
|
|
1024
|
+
handleOnChange: handleOnChange,
|
|
1005
1025
|
isLoading: isLoading,
|
|
1006
1026
|
onTagRowClick: onTagRowClick,
|
|
1007
|
-
page: page,
|
|
1008
1027
|
primaryButtonProps: primaryButtonProps,
|
|
1009
|
-
setPage: setPage,
|
|
1010
1028
|
tagType: tagType
|
|
1011
1029
|
})), /*#__PURE__*/React__default["default"].createElement(ManageTags, {
|
|
1012
1030
|
createTags: createTags,
|
|
1013
1031
|
tagType: tagType,
|
|
1014
1032
|
updateTags: updateTags,
|
|
1015
|
-
goToFirstPage:
|
|
1016
|
-
return setPage(constants.DEFAULT_PAGE_INDEX);
|
|
1017
|
-
},
|
|
1033
|
+
goToFirstPage: resetPage,
|
|
1018
1034
|
tag: selectedTag,
|
|
1019
1035
|
type: paneType,
|
|
1020
1036
|
onClose: function onClose() {
|