awing-library 2.1.121-beta → 2.1.122-beta

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.
Files changed (46) hide show
  1. package/lib/ACM-AXN/AuthenticationProfile/Container.js +2 -2
  2. package/lib/ACM-AXN/AuthenticationProfile/Container.test.js +1 -1
  3. package/lib/ACM-AXN/AuthenticationProfile/CreateOrEdit/CreateOrEdit.test.js +2 -2
  4. package/lib/ACM-AXN/AuthenticationProfile/CreateOrEdit/index.js +1 -1
  5. package/lib/ACM-AXN/Holiday/Container.d.ts +2 -0
  6. package/lib/ACM-AXN/Holiday/Container.js +55 -0
  7. package/lib/ACM-AXN/Holiday/Container.test.d.ts +1 -0
  8. package/lib/ACM-AXN/Holiday/Container.test.js +227 -0
  9. package/lib/ACM-AXN/Holiday/Context.d.ts +3 -0
  10. package/lib/ACM-AXN/Holiday/Context.js +5 -0
  11. package/lib/ACM-AXN/Holiday/CreateOrEdit.d.ts +2 -0
  12. package/lib/ACM-AXN/Holiday/CreateOrEdit.js +62 -0
  13. package/lib/ACM-AXN/Holiday/CreateOrEdit.test.d.ts +1 -0
  14. package/lib/ACM-AXN/Holiday/CreateOrEdit.test.js +255 -0
  15. package/lib/ACM-AXN/Holiday/Detail/AddOrEditDate.d.ts +2 -0
  16. package/lib/ACM-AXN/Holiday/Detail/AddOrEditDate.js +107 -0
  17. package/lib/ACM-AXN/Holiday/Detail/AddOrEditDate.test.d.ts +1 -0
  18. package/lib/ACM-AXN/Holiday/Detail/AddOrEditDate.test.js +181 -0
  19. package/lib/ACM-AXN/Holiday/Detail/Dates.d.ts +6 -0
  20. package/lib/ACM-AXN/Holiday/Detail/Dates.js +153 -0
  21. package/lib/ACM-AXN/Holiday/Detail/Dates.test.d.ts +1 -0
  22. package/lib/ACM-AXN/Holiday/Detail/Dates.test.js +220 -0
  23. package/lib/ACM-AXN/Holiday/Detail/Form.d.ts +6 -0
  24. package/lib/ACM-AXN/Holiday/Detail/Form.js +32 -0
  25. package/lib/ACM-AXN/Holiday/Detail/Form.test.d.ts +1 -0
  26. package/lib/ACM-AXN/Holiday/Detail/Form.test.js +120 -0
  27. package/lib/ACM-AXN/Holiday/Detail.d.ts +2 -0
  28. package/lib/ACM-AXN/Holiday/Detail.js +29 -0
  29. package/lib/ACM-AXN/Holiday/FormHoliday.d.ts +9 -0
  30. package/lib/ACM-AXN/Holiday/FormHoliday.js +53 -0
  31. package/lib/ACM-AXN/Holiday/Hooks.d.ts +2 -0
  32. package/lib/ACM-AXN/Holiday/Hooks.js +12 -0
  33. package/lib/ACM-AXN/Holiday/Types.d.ts +73 -0
  34. package/lib/ACM-AXN/Holiday/Types.js +15 -0
  35. package/lib/ACM-AXN/Holiday/Utils.d.ts +13 -0
  36. package/lib/ACM-AXN/Holiday/Utils.js +34 -0
  37. package/lib/ACM-AXN/Holiday/index.d.ts +3 -0
  38. package/lib/ACM-AXN/Holiday/index.js +45 -0
  39. package/lib/ACM-AXN/Wizard/Container.js +1 -1
  40. package/lib/ACM-AXN/Wizard/Container.test.js +1 -1
  41. package/lib/ACM-AXN/Wizard/CreateOrEdit/FormInformationBasic.js +1 -1
  42. package/lib/ACM-AXN/Wizard/CreateOrEdit/FormInformationBasic.test.js +1 -1
  43. package/lib/ACM-AXN/Wizard/CreateOrEdit/index.test.js +2 -2
  44. package/lib/translate/en/translation.json +20 -0
  45. package/lib/translate/vi/translation.json +20 -0
  46. package/package.json +1 -1
@@ -7,11 +7,11 @@ var jsx_runtime_1 = require("react/jsx-runtime");
7
7
  var react_1 = require("react");
8
8
  var react_i18next_1 = require("react-i18next");
9
9
  var Context_1 = require("../../Context");
10
+ var Router_1 = require("../../AWING/Router");
10
11
  var Utils_1 = require("./Utils");
11
12
  var Constant_1 = require("../Common/Constant");
12
- var Router_1 = require("../../AWING/Router");
13
- var Hooks_1 = __importDefault(require("./Hooks"));
14
13
  var AWING_1 = require("../../AWING");
14
+ var Hooks_1 = __importDefault(require("./Hooks"));
15
15
  function Container() {
16
16
  var _a;
17
17
  var navigate = (0, Router_1.useNavigate)();
@@ -111,7 +111,7 @@ jest.mock('./Hooks', function () { return ({
111
111
  // Mock đa ngữ
112
112
  jest.mock('react-i18next', function () { return (__assign(__assign({}, jest.requireActual('react-i18next')), { useTranslation: function () { return ({ t: jest.fn(function (key) { return key; }) }); } })); });
113
113
  // Mock PageManagement
114
- jest.mock('../../AWING', function () { return ({
114
+ jest.mock('AWING', function () { return ({
115
115
  PageManagement: function (props) {
116
116
  props.onChangeQueryInput({
117
117
  searchString: '',
@@ -92,7 +92,7 @@ jest.mock('../Types', function () { return ({
92
92
  IAuthenticationProfile: {},
93
93
  }); });
94
94
  // mock Router
95
- jest.mock('../../../AWING/Router', function () { return (__assign(__assign({}, jest.requireActual('../../../AWING/Router')), { useParams: jest.fn() })); });
95
+ jest.mock('AWING/Router', function () { return (__assign(__assign({}, jest.requireActual('AWING/Router')), { useParams: jest.fn() })); });
96
96
  // Mock đa ngữ
97
97
  jest.mock('react-i18next', function () { return (__assign(__assign({}, jest.requireActual('react-i18next')), { useTranslation: function () { return ({ t: jest.fn(function (key) { return key; }) }); } })); });
98
98
  // Mock Hooks
@@ -116,7 +116,7 @@ jest.mock('../Hooks', function () { return ({
116
116
  }); },
117
117
  }); });
118
118
  // Mock Drawer
119
- jest.mock('../../../Commons/Components/ClassicDrawer', function () { return function (props) { return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { "data-testid": "title-drawer", children: id ? 'Common.Edit' : 'Common.Create' }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "onSubmit", onClick: props.onSubmit, children: "submit" }), props.children] })); }; });
119
+ jest.mock('Commons/Components/ClassicDrawer', function () { return function (props) { return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { "data-testid": "title-drawer", children: id ? 'Common.Edit' : 'Common.Create' }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "onSubmit", onClick: props.onSubmit, children: "submit" }), props.children] })); }; });
120
120
  // mock BasicDataForm
121
121
  jest.mock('../../../AWING', function () { return ({
122
122
  BasicDataForm: function (props) {
@@ -18,8 +18,8 @@ var react_i18next_1 = require("react-i18next");
18
18
  var Router_1 = require("../../../AWING/Router");
19
19
  var Hooks_1 = __importDefault(require("../Hooks"));
20
20
  var ClassicDrawer_1 = __importDefault(require("../../../Commons/Components/ClassicDrawer"));
21
- var Utils_1 = require("../Utils");
22
21
  var AWING_1 = require("../../../AWING");
22
+ var Utils_1 = require("../Utils");
23
23
  var CreateOrEdit = function () {
24
24
  var id = (0, Router_1.useParams)().id;
25
25
  var t = (0, react_i18next_1.useTranslation)().t;
@@ -0,0 +1,2 @@
1
+ declare const Container: () => import("react/jsx-runtime").JSX.Element;
2
+ export default Container;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var jsx_runtime_1 = require("react/jsx-runtime");
7
+ var react_1 = require("react");
8
+ var react_i18next_1 = require("react-i18next");
9
+ var Visibility_1 = __importDefault(require("@mui/icons-material/Visibility"));
10
+ var Context_1 = require("../../Context");
11
+ var Hooks_1 = __importDefault(require("./Hooks"));
12
+ var Router_1 = require("../../AWING/Router");
13
+ var Constant_1 = require("../Common/Constant");
14
+ var PageManagement_1 = require("../../AWING/PageManagement");
15
+ var Container = function () {
16
+ var t = (0, react_i18next_1.useTranslation)().t;
17
+ var navigate = (0, Router_1.useNavigate)();
18
+ var service = (0, Hooks_1.default)().service;
19
+ var confirm = (0, Context_1.useAwing)().appHelper.confirm;
20
+ var _a = (0, react_1.useState)(false), loading = _a[0], setLoading = _a[1];
21
+ var _b = (0, react_1.useState)(), holidays = _b[0], setHolidays = _b[1];
22
+ var getHolidays = (0, react_1.useCallback)(function (queryParams) {
23
+ setLoading(true);
24
+ service
25
+ .holidaysPaging(queryParams.searchString, queryParams.pageIndex, queryParams.pageSize)
26
+ .then(setHolidays)
27
+ .finally(function () {
28
+ setLoading(false);
29
+ });
30
+ // eslint-disable-next-line react-hooks/exhaustive-deps
31
+ }, []);
32
+ return ((0, jsx_runtime_1.jsx)(PageManagement_1.PageManagement, { onRowClick: function (id) {
33
+ return navigate("".concat(Constant_1.Constants.HOLIDAY_EDIT, "/").concat(id));
34
+ }, title: t('Holiday.Title'), onChangeQueryInput: getHolidays, getRowId: function (obj) { return obj.id; }, columns: [
35
+ {
36
+ field: '#',
37
+ headerName: (0, jsx_runtime_1.jsx)("b", { children: "#" }),
38
+ width: 85,
39
+ valueGetter: function (_, idx, stt) { return stt; },
40
+ },
41
+ {
42
+ field: 'name',
43
+ headerName: (0, jsx_runtime_1.jsx)("b", { children: t('Common.Name') }),
44
+ },
45
+ ], loading: loading, rows: (holidays === null || holidays === void 0 ? void 0 : holidays.items) || [], totalOfRows: holidays === null || holidays === void 0 ? void 0 : holidays.totalItemCount, onCreateButtonClick: function () { return navigate(Constant_1.Constants.HOLIDAY_CREATE); }, onDelete: service.holidaysDelete.bind(service), confirmDelete: confirm, rowActions: [
46
+ {
47
+ icon: (0, jsx_runtime_1.jsx)(Visibility_1.default, {}),
48
+ tooltipTitle: t('Common.Detail'),
49
+ action: function (id) {
50
+ navigate("".concat(Constant_1.Constants.HOLIDAY_DETAIL, "/").concat(id));
51
+ },
52
+ },
53
+ ] }));
54
+ };
55
+ exports.default = Container;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ var jsx_runtime_1 = require("react/jsx-runtime");
54
+ /* eslint-disable testing-library/no-wait-for-side-effects */
55
+ var react_1 = require("@testing-library/react");
56
+ var Router_1 = require("../../AWING/Router");
57
+ var Container_1 = __importDefault(require("./Container"));
58
+ var Constant_1 = require("../Common/Constant");
59
+ var id = '50';
60
+ var items = [
61
+ {
62
+ id: 11,
63
+ name: '1',
64
+ domainId: '100',
65
+ calendarType: 0,
66
+ recurrenceType: 0,
67
+ },
68
+ {
69
+ id: 12,
70
+ name: '2',
71
+ domainId: '100',
72
+ calendarType: 0,
73
+ recurrenceType: 0,
74
+ },
75
+ ];
76
+ var clientMethod = {
77
+ holidaysPaging: function () {
78
+ return Promise.resolve({
79
+ items: items,
80
+ totalItemCount: items.length,
81
+ });
82
+ },
83
+ holidaysDelete: function (_id) { return Promise; },
84
+ };
85
+ // Mock service
86
+ jest.mock('./Hooks', function () { return ({
87
+ __esModule: true,
88
+ default: function () { return ({
89
+ service: {
90
+ holidaysPaging: jest.fn(function (_params) {
91
+ return Promise.resolve(clientMethod.holidaysPaging());
92
+ }),
93
+ holidaysDelete: jest.fn(function (_id) {
94
+ return Promise.resolve(clientMethod.holidaysDelete(_id));
95
+ }),
96
+ },
97
+ }); },
98
+ }); });
99
+ // Mock i18next
100
+ jest.mock('react-i18next', function () { return (__assign(__assign({}, jest.requireActual('react-i18next')), { useTranslation: function () { return ({ t: jest.fn(function (key) { return key; }) }); } })); });
101
+ // Mock PageManagement
102
+ jest.mock('AWING/PageManagement', function () { return ({
103
+ PageManagement: function (props) {
104
+ props.onChangeQueryInput({
105
+ searchString: '',
106
+ pageIndex: 0,
107
+ pageSize: 10,
108
+ });
109
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [props.columns
110
+ .filter(function (item) { return item.valueGetter; })
111
+ .map(function (getter, idx) { return ((0, jsx_runtime_1.jsx)("span", { children: getter.valueGetter(items[0], idx) }, idx)); }), (0, jsx_runtime_1.jsx)("span", { "data-testid": "rowid", children: props.getRowId(items[0]) }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "CreateBtn", onClick: props.onCreateButtonClick, children: "CreateBtn" }), (0, jsx_runtime_1.jsx)("div", { "data-testid": "RowBtn", onClick: function () { return props.onRowClick(items[0].id); }, children: "RowBtn" }), (0, jsx_runtime_1.jsx)("button", { onClick: function () {
112
+ props.onChangeQueryInput({
113
+ pageIndex: 1,
114
+ pageSize: 10,
115
+ });
116
+ }, children: "ChangeInput" }), (0, jsx_runtime_1.jsx)("button", { "data-testid": "onDelete", onClick: function () {
117
+ props.onDelete('onDelete');
118
+ }, children: "Delete Btn" }), (0, jsx_runtime_1.jsx)("div", { children: props.rowActions.map(function (item, idx) { return ((0, jsx_runtime_1.jsx)("button", { "data-testid": item.tooltipTitle, onClick: function () {
119
+ item.action(id);
120
+ }, children: item.icon }, idx)); }) }), (0, jsx_runtime_1.jsx)("p", { children: JSON.stringify(props.rows) }), (0, jsx_runtime_1.jsxs)("span", { children: ["totalItemCount:", props.totalOfRows] })] }));
121
+ },
122
+ }); });
123
+ var renderUI = function () {
124
+ return (0, react_1.render)((0, jsx_runtime_1.jsx)(Router_1.BrowserRouter, { children: (0, jsx_runtime_1.jsx)(Container_1.default, {}) }));
125
+ };
126
+ describe('Holiday Container Component', function () {
127
+ it('renders without crashing', function () {
128
+ renderUI();
129
+ });
130
+ it('render state', function () { return __awaiter(void 0, void 0, void 0, function () {
131
+ return __generator(this, function (_a) {
132
+ switch (_a.label) {
133
+ case 0:
134
+ renderUI();
135
+ expect(react_1.screen.getByTestId('CreateBtn')).toBeInTheDocument();
136
+ return [4 /*yield*/, (0, react_1.waitFor)(function () {
137
+ expect(react_1.screen.getByText(JSON.stringify(items))).toBeInTheDocument();
138
+ })];
139
+ case 1:
140
+ _a.sent();
141
+ return [4 /*yield*/, (0, react_1.waitFor)(function () {
142
+ expect(react_1.screen.getByText("totalItemCount:".concat(items.length))).toBeInTheDocument();
143
+ })];
144
+ case 2:
145
+ _a.sent();
146
+ return [2 /*return*/];
147
+ }
148
+ });
149
+ }); });
150
+ it('get rowid', function () {
151
+ renderUI();
152
+ expect(react_1.screen.getByText(items[0].id)).toBeInTheDocument();
153
+ });
154
+ it('get paging', function () {
155
+ var usersPagingSpy = jest.spyOn(clientMethod, 'holidaysPaging');
156
+ renderUI();
157
+ expect(usersPagingSpy).toBeCalled();
158
+ });
159
+ it('edit holiday', function () { return __awaiter(void 0, void 0, void 0, function () {
160
+ return __generator(this, function (_a) {
161
+ switch (_a.label) {
162
+ case 0:
163
+ renderUI();
164
+ react_1.fireEvent.click(react_1.screen.getByTestId('RowBtn'));
165
+ return [4 /*yield*/, (0, react_1.waitFor)(function () {
166
+ return expect(window.location.href).toContain("localhost/".concat(Constant_1.Constants.HOLIDAY_EDIT, "/").concat(items[0].id));
167
+ })];
168
+ case 1:
169
+ _a.sent();
170
+ return [2 /*return*/];
171
+ }
172
+ });
173
+ }); });
174
+ it('create holiday', function () { return __awaiter(void 0, void 0, void 0, function () {
175
+ return __generator(this, function (_a) {
176
+ switch (_a.label) {
177
+ case 0:
178
+ renderUI();
179
+ react_1.fireEvent.click(react_1.screen.getByTestId('CreateBtn'));
180
+ return [4 /*yield*/, (0, react_1.waitFor)(function () {
181
+ return expect(window.location.href).toContain('localhost/HolidayCreate');
182
+ })];
183
+ case 1:
184
+ _a.sent();
185
+ return [2 /*return*/];
186
+ }
187
+ });
188
+ }); });
189
+ it('Delete holiday', function () { return __awaiter(void 0, void 0, void 0, function () {
190
+ var holidaysDeleteSpy;
191
+ return __generator(this, function (_a) {
192
+ switch (_a.label) {
193
+ case 0:
194
+ holidaysDeleteSpy = jest.spyOn(clientMethod, 'holidaysDelete');
195
+ renderUI();
196
+ react_1.fireEvent.click(react_1.screen.getByTestId('onDelete'));
197
+ return [4 /*yield*/, (0, react_1.waitFor)(function () {
198
+ expect(holidaysDeleteSpy).toBeCalled();
199
+ })];
200
+ case 1:
201
+ _a.sent();
202
+ return [2 /*return*/];
203
+ }
204
+ });
205
+ }); });
206
+ it('change QueryInput', function () {
207
+ var holidaysPagingSpy = jest.spyOn(clientMethod, 'holidaysPaging');
208
+ renderUI();
209
+ react_1.fireEvent.click(react_1.screen.getByText('ChangeInput'));
210
+ expect(holidaysPagingSpy).toBeCalled();
211
+ });
212
+ it('navigate to view detail holidays', function () { return __awaiter(void 0, void 0, void 0, function () {
213
+ return __generator(this, function (_a) {
214
+ switch (_a.label) {
215
+ case 0:
216
+ renderUI();
217
+ return [4 /*yield*/, (0, react_1.waitFor)(function () {
218
+ react_1.fireEvent.click(react_1.screen.getByTestId('Common.Detail'));
219
+ })];
220
+ case 1:
221
+ _a.sent();
222
+ expect(window.location.href).toContain("localhost/HolidayDetail/".concat(id));
223
+ return [2 /*return*/];
224
+ }
225
+ });
226
+ }); });
227
+ });
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { HolidayFeatureProps } from './Types';
3
+ export declare const holidayPropsContext: import("react").Context<HolidayFeatureProps>;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.holidayPropsContext = void 0;
4
+ var react_1 = require("react");
5
+ exports.holidayPropsContext = (0, react_1.createContext)({});
@@ -0,0 +1,2 @@
1
+ declare const CreateOrEdit: () => import("react/jsx-runtime").JSX.Element;
2
+ export default CreateOrEdit;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var jsx_runtime_1 = require("react/jsx-runtime");
7
+ var react_1 = require("react");
8
+ var react_i18next_1 = require("react-i18next");
9
+ var Hooks_1 = __importDefault(require("./Hooks"));
10
+ var FormHoliday_1 = __importDefault(require("./FormHoliday"));
11
+ var AWING_1 = require("../../AWING");
12
+ var Router_1 = require("../../AWING/Router");
13
+ var ClassicDrawer_1 = __importDefault(require("../../Commons/Components/ClassicDrawer"));
14
+ var CreateOrEdit = function () {
15
+ var t = (0, react_i18next_1.useTranslation)().t;
16
+ var id = (0, Router_1.useParams)().id;
17
+ var service = (0, Hooks_1.default)().service;
18
+ var _a = (0, react_1.useState)(), holidays = _a[0], setHolidays = _a[1];
19
+ var _b = (0, react_1.useState)(true), isLoading = _b[0], setLoading = _b[1];
20
+ var _c = (0, react_1.useState)(false), confirmExit = _c[0], setConfirmExit = _c[1];
21
+ var _d = (0, react_1.useState)(false), isLoadingSubmit = _d[0], setLoadingSubmit = _d[1];
22
+ (0, react_1.useEffect)(function () {
23
+ getHolidays();
24
+ }, []);
25
+ var handleUpdate = (0, react_1.useCallback)(function (value) {
26
+ if (!value)
27
+ return;
28
+ setHolidays(value);
29
+ setConfirmExit(true);
30
+ }, []);
31
+ var handleSubmit = (0, react_1.useCallback)(function () {
32
+ setLoadingSubmit(true);
33
+ if (!id) {
34
+ return service.holidaysPost(holidays).then(function () {
35
+ setLoadingSubmit(false);
36
+ });
37
+ }
38
+ return service.holidaysPut(Number(id), holidays).then(function () {
39
+ setLoadingSubmit(false);
40
+ });
41
+ }, [holidays]);
42
+ var getHolidays = function () {
43
+ if (id) {
44
+ service
45
+ .holidaysGet(Number(id))
46
+ .then(setHolidays)
47
+ .finally(function () {
48
+ setLoading(false);
49
+ });
50
+ }
51
+ else {
52
+ setLoading(false);
53
+ }
54
+ };
55
+ var statusBtnSubmit = !holidays
56
+ ? true
57
+ : Object.keys(holidays).length >= 3 && holidays.name
58
+ ? false
59
+ : true;
60
+ return ((0, jsx_runtime_1.jsx)(ClassicDrawer_1.default, { title: !id ? t('Holiday.TitleCreate') : t('Holiday.TitleEdit'), onSubmit: handleSubmit, isLoadingButtonSubmit: isLoadingSubmit, disableButtonSubmit: statusBtnSubmit, confirmExit: confirmExit, childrenWrapperStyle: { padding: 0 }, children: isLoading ? ((0, jsx_runtime_1.jsx)(AWING_1.CircularProgress, {})) : ((0, jsx_runtime_1.jsx)(FormHoliday_1.default, { holidays: holidays, onUpdate: handleUpdate })) }));
61
+ };
62
+ exports.default = CreateOrEdit;
@@ -0,0 +1 @@
1
+ export {};