awing-library 2.1.222-dev → 2.1.224-dev

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 (24) hide show
  1. package/lib/ACM-AXN/Campaign/Container.js +48 -48
  2. package/lib/ACM-AXN/Campaign/Container.test.js +1 -3
  3. package/lib/ACM-AXN/Campaign/CreateOrEdit/Recoils.js +1 -2
  4. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.d.ts +16 -7
  5. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.js +71 -51
  6. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.d.ts +0 -1
  7. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/RowTable.test.js +73 -95
  8. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.d.ts +17 -4
  9. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.js +140 -82
  10. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabApprove/index.test.js +2 -4
  11. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/EditAds.js +5 -5
  12. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.js +30 -33
  13. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignDetail.test.js +3 -13
  14. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/SubCampaignList.js +43 -19
  15. package/lib/ACM-AXN/Campaign/CreateOrEdit/TabSubCampaign/index.js +1 -2
  16. package/lib/ACM-AXN/Campaign/CreateOrEdit/index.js +3 -3
  17. package/lib/ACM-AXN/Campaign/Enum.d.ts +15 -4
  18. package/lib/ACM-AXN/Campaign/Enum.js +18 -7
  19. package/lib/ACM-AXN/Campaign/Types.d.ts +6 -8
  20. package/lib/ACM-AXN/Campaign/Utils.js +1 -1
  21. package/lib/translate/en/translation.json +8 -2
  22. package/lib/translate/id/translation.json +8 -2
  23. package/lib/translate/vi/translation.json +9 -3
  24. package/package.json +1 -1
@@ -26,18 +26,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  var jsx_runtime_1 = require("react/jsx-runtime");
27
27
  var icons_material_1 = require("@mui/icons-material");
28
28
  var material_1 = require("@mui/material");
29
- var AWING_1 = require("../../AWING");
29
+ var Constant_1 = require("../../ACM-AXN/Common/Constant");
30
30
  var lodash_1 = require("lodash");
31
31
  var react_1 = require("react");
32
32
  var react_i18next_1 = require("react-i18next");
33
+ var AWING_1 = require("../../AWING");
33
34
  var Router_1 = require("../../AWING/Router");
34
- var Utils_1 = require("./Utils");
35
- var Hooks_1 = __importDefault(require("./Hooks"));
36
- var Enum_1 = require("./Enum");
37
35
  var CopyButton_1 = __importDefault(require("../../Commons/Components/CopyButton"));
38
- var Helpers_1 = require("../../Utils/Helpers");
39
- var Constant_1 = require("../../ACM-AXN/Common/Constant");
40
36
  var Context_1 = require("../../Context");
37
+ var Helpers_1 = require("../../Utils/Helpers");
38
+ var Enum_1 = require("./Enum");
39
+ var Hooks_1 = __importDefault(require("./Hooks"));
40
+ var Utils_1 = require("./Utils");
41
41
  var CampaignContainer = function () {
42
42
  var _a;
43
43
  var t = (0, react_i18next_1.useTranslation)().t;
@@ -63,7 +63,7 @@ var CampaignContainer = function () {
63
63
  var getCampaign = (0, react_1.useCallback)(function (params) {
64
64
  var advancedObject = params.advancedObject, id = params.id, searchString = params.searchString, pageIndex = params.pageIndex, pageSize = params.pageSize;
65
65
  setCollapseId([]);
66
- var _a = advancedObject || {}, directoryId = _a.directoryId, isReserved = _a.isReserved, priority = _a.priority, status = _a.status, type = _a.type;
66
+ var _a = advancedObject || {}, directoryId = _a.directoryId, priority = _a.priority, status = _a.status, type = _a.type;
67
67
  var startDate = '';
68
68
  var endDate = '';
69
69
  if (advancedObject === null || advancedObject === void 0 ? void 0 : advancedObject.date) {
@@ -80,10 +80,9 @@ var CampaignContainer = function () {
80
80
  endDate: endDate,
81
81
  pageIndex: pageIndex,
82
82
  pageSize: pageSize,
83
- isReserved: isReserved,
84
83
  // placeIds: ,
85
84
  priorities: priority && [priority],
86
- status: status && [status],
85
+ status: status !== undefined ? [status] : undefined,
87
86
  types: type && [type],
88
87
  })
89
88
  .then(setListCampaign)
@@ -118,6 +117,42 @@ var CampaignContainer = function () {
118
117
  var handleDelete = function (id) {
119
118
  return service.campaignsDelete(id);
120
119
  };
120
+ var renderStatus = function (row) {
121
+ var _a;
122
+ var statusConfig = (_a = {},
123
+ _a[Enum_1.CampaignStatus.Draft] = {
124
+ label: 'Campaign.Status.Draft',
125
+ color: Enum_1.ColorCampaignStatus.Draft
126
+ },
127
+ _a[Enum_1.CampaignStatus.Reserved] = {
128
+ label: 'Campaign.Status.Reserved',
129
+ color: Enum_1.ColorCampaignStatus.Reserved
130
+ },
131
+ _a[Enum_1.CampaignStatus.Pending] = {
132
+ label: 'Campaign.Status.Pending',
133
+ color: Enum_1.ColorCampaignStatus.UnderApproval
134
+ },
135
+ _a[Enum_1.CampaignStatus.Active] = {
136
+ label: 'Campaign.Status.Active',
137
+ color: function (row) { return (0, Utils_1.checkCampaignIsRunning)(row) ? Enum_1.ColorCampaignStatus.Active : Enum_1.ColorCampaignStatus.UnActive; }
138
+ },
139
+ _a[Enum_1.CampaignStatus.Done] = {
140
+ label: 'Campaign.Status.Done',
141
+ color: Enum_1.ColorCampaignStatus.Done
142
+ },
143
+ _a);
144
+ var status = row === null || row === void 0 ? void 0 : row.campaignGroup.status;
145
+ var config = statusConfig[status];
146
+ if (!config)
147
+ return null;
148
+ return ((0, jsx_runtime_1.jsx)(material_1.Chip, { label: t(config.label), style: {
149
+ height: 18,
150
+ backgroundColor: typeof config.color === 'function' ? config.color(row) : config.color,
151
+ color: 'white',
152
+ marginBottom: '4px',
153
+ marginLeft: '4px'
154
+ } }));
155
+ };
121
156
  return ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
122
157
  '& tr[data-row="sub-row"]': {
123
158
  cursor: 'default!important',
@@ -135,11 +170,11 @@ var CampaignContainer = function () {
135
170
  label: t('Campaign.AdvanceSearchStatus'),
136
171
  type: 'autocomplete',
137
172
  icon: (0, jsx_runtime_1.jsx)(icons_material_1.Place, { fontSize: "small" }),
138
- options: Object.entries(Enum_1.CAMPAIGN_STATUS).map(function (_a) {
173
+ options: Object.entries(Enum_1.CampaignStatus).filter(function (item) { return !isNaN(Number(item[1])); }).map(function (_a) {
139
174
  var key = _a[0], value = _a[1];
140
175
  return ({
141
176
  value: value,
142
- text: t(['Campaign', key].join('.')),
177
+ text: t(['Campaign.Status', key].join('.')),
143
178
  });
144
179
  }),
145
180
  },
@@ -169,22 +204,6 @@ var CampaignContainer = function () {
169
204
  });
170
205
  }),
171
206
  },
172
- {
173
- fieldName: 'isReserved',
174
- label: t('Campaign.AdvanceSearchType'),
175
- type: 'autocomplete',
176
- icon: (0, jsx_runtime_1.jsx)(icons_material_1.BookmarkBorder, { fontSize: "small" }),
177
- options: [
178
- {
179
- value: true,
180
- text: t('Campaign.Reserved'),
181
- },
182
- {
183
- value: false,
184
- text: t('Campaign.NoneReserved'),
185
- },
186
- ],
187
- },
188
207
  {
189
208
  fieldName: 'directoryId',
190
209
  label: t('Common.Directory'),
@@ -225,31 +244,12 @@ var CampaignContainer = function () {
225
244
  : icons_material_1.KeyboardArrowDown }) })] }));
226
245
  }
227
246
  else {
228
- return ((0, jsx_runtime_1.jsxs)(material_1.Box, { style: { paddingLeft: '32px' }, children: [(0, jsx_runtime_1.jsx)("span", { children: row === null || row === void 0 ? void 0 : row.campaignGroup.name }), (row === null || row === void 0 ? void 0 : row.campaignGroup.ticket) ===
229
- Enum_1.ACTIVE_CAMPAIGN_TICKET ? ((0, jsx_runtime_1.jsx)(icons_material_1.CheckCircle, { fontSize: 'small', sx: {
230
- paddingLeft: '4px',
231
- marginBottom: '-4px',
232
- }, style: {
233
- color: (0, Utils_1.checkCampaignIsRunning)(row)
234
- ? '#008000'
235
- : '#8D8D8D',
236
- } })) : ((0, jsx_runtime_1.jsx)(icons_material_1.RemoveCircle, { fontSize: 'small', sx: {
237
- paddingLeft: '4px',
238
- marginBottom: '-4px',
239
- }, color: "primary" })), (0, jsx_runtime_1.jsx)(material_1.Typography, { component: 'span', sx: {
247
+ return ((0, jsx_runtime_1.jsxs)(material_1.Box, { style: { paddingLeft: '32px' }, children: [(0, jsx_runtime_1.jsx)("span", { children: row === null || row === void 0 ? void 0 : row.campaignGroup.name }), (0, jsx_runtime_1.jsx)(material_1.Typography, { component: 'span', sx: {
240
248
  color: '#000',
241
249
  fontSize: '1.1rem',
242
250
  marginLeft: '8px',
243
251
  fontFamily: '"Segoe UI Symbol", "Apple Symbols", "Noto Sans Symbols 2" !important',
244
- }, children: (0, Utils_1.getCampaignPriority)(row === null || row === void 0 ? void 0 : row.campaignGroup.priority) }),
245
- //Check trong ads có bất kỳ ad nào isReverved
246
- (row === null || row === void 0 ? void 0 : row.campaignGroup.isReserved) && ((0, jsx_runtime_1.jsx)(material_1.Chip, { sx: {
247
- backgroundColor: '#c49f47',
248
- color: '#fff',
249
- height: '18px',
250
- marginBottom: '.1rem',
251
- marginLeft: '4px',
252
- }, size: "small", label: t('Campaign.Reserved') }))] }));
252
+ }, children: (0, Utils_1.getCampaignPriority)(row === null || row === void 0 ? void 0 : row.campaignGroup.priority) }), renderStatus(row)] }));
253
253
  }
254
254
  },
255
255
  },
@@ -85,11 +85,10 @@ var resData = {
85
85
  id: 1,
86
86
  campaignId: '5111120384159200990',
87
87
  name: 'Lotusa',
88
- ticket: 1,
88
+ status: 1,
89
89
  priority: 0,
90
90
  bookingAmount: 0,
91
91
  bonusAmount: 0,
92
- isReserved: false,
93
92
  },
94
93
  ads: [
95
94
  {
@@ -250,7 +249,6 @@ jest.mock('AWING/PageManagement', function () { return ({
250
249
  props.onChangeQueryInput({
251
250
  advancedObject: {
252
251
  status: '0',
253
- isReserved: true,
254
252
  priority: '0',
255
253
  type: '1',
256
254
  directoryId: '4684432198852342857',
@@ -52,10 +52,9 @@ exports.campaignModelState = (0, recoil_1.atom)({
52
52
  id: 1,
53
53
  name: 'Sub-Campaign 1',
54
54
  priority: (0, Utils_1.getIndexPriority)(Enum_1.CampaignPriority.ClassB),
55
- ticket: Enum_1.CampaignTicket.INACTIVE,
55
+ status: Enum_1.CampaignStatus.Draft,
56
56
  bookingAmount: 10,
57
57
  bonusAmount: 0,
58
- isReserved: false,
59
58
  billingUnit: 1,
60
59
  },
61
60
  ads: [],
@@ -1,8 +1,17 @@
1
- import { IDetail } from '.';
2
- interface RowTableProps {
3
- row: IDetail;
4
- updateRow: (updatedRow: IDetail, id: number) => void;
5
- id: number;
1
+ import React from 'react';
2
+ import { ICammpaignItem, IDataTable, IDetail } from '.';
3
+ interface TableRowProps {
4
+ row: IDataTable;
5
+ link: IDetail;
6
+ sub: ICammpaignItem;
7
+ linkIndex: number;
8
+ subIndex: number;
9
+ rowSelected: number[];
10
+ handleRowSelect: (id: number) => void;
11
+ updateRow: (row: {
12
+ status: number;
13
+ description: string;
14
+ }, id: number) => void;
6
15
  }
7
- export declare function RowTable(props: RowTableProps): import("react/jsx-runtime").JSX.Element;
8
- export {};
16
+ declare const TableRowMemo: React.FC<TableRowProps>;
17
+ export default TableRowMemo;
@@ -1,73 +1,93 @@
1
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);
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
12
24
  };
13
25
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.RowTable = void 0;
15
26
  var jsx_runtime_1 = require("react/jsx-runtime");
27
+ var react_1 = __importStar(require("react"));
16
28
  var material_1 = require("@mui/material");
17
- var react_1 = require("react");
18
29
  var Enum_1 = require("../../../../ACM-AXN/Campaign/Enum");
19
30
  var react_i18next_1 = require("react-i18next");
20
- var ITEM_HEIGHT = 48;
21
- var ITEM_PADDING_TOP = 8;
22
- var MenuProps = {
23
- PaperProps: {
24
- style: {
25
- maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,
26
- width: 250,
27
- },
28
- },
29
- };
30
- function RowTable(props) {
31
- var _a, _b;
32
- var row = props.row, updateRow = props.updateRow, id = props.id;
31
+ var TableRowMemo = react_1.default.memo(function (_a) {
32
+ var _b, _c;
33
+ var row = _a.row, link = _a.link, sub = _a.sub, linkIndex = _a.linkIndex, subIndex = _a.subIndex, rowSelected = _a.rowSelected, handleRowSelect = _a.handleRowSelect, updateRow = _a.updateRow;
34
+ var _d = (0, react_1.useState)((_b = link.status) !== null && _b !== void 0 ? _b : Enum_1.CampaignApprovalStatus.PendingApproval), selectStatus = _d[0], setSelectStatus = _d[1];
35
+ var _e = (0, react_1.useState)((_c = link.description) !== null && _c !== void 0 ? _c : ''), valueInput = _e[0], setValueInput = _e[1];
33
36
  var t = (0, react_i18next_1.useTranslation)().t;
34
- var _c = (0, react_1.useState)((_a = row === null || row === void 0 ? void 0 : row.status) !== null && _a !== void 0 ? _a : Enum_1.CampaignApprovalStatus.PendingApproval), selectStatus = _c[0], setSelectStatus = _c[1];
35
- var _d = (0, react_1.useState)((_b = row === null || row === void 0 ? void 0 : row.description) !== null && _b !== void 0 ? _b : ''), valueInput = _d[0], setValueInput = _d[1];
36
37
  var optionsStatus = (0, react_1.useMemo)(function () {
37
38
  return [
38
- { value: Enum_1.CampaignApprovalStatus.PendingApproval, label: t('Campaign.Approval.PendingApproval') },
39
- { value: Enum_1.CampaignApprovalStatus.Approval, label: t('Campaign.Approval.Approval') },
40
- { value: Enum_1.CampaignApprovalStatus.Rejected, label: t('Campaign.Approval.Rejected') },
39
+ {
40
+ value: Enum_1.CampaignApprovalStatus.PendingApproval,
41
+ label: t('Campaign.Approval.PendingApproval'),
42
+ },
43
+ {
44
+ value: Enum_1.CampaignApprovalStatus.Approval,
45
+ label: t('Campaign.Approval.Approval'),
46
+ },
47
+ {
48
+ value: Enum_1.CampaignApprovalStatus.Rejected,
49
+ label: t('Campaign.Approval.Rejected'),
50
+ },
41
51
  ];
42
52
  }, []);
43
53
  var handleStatusChange = (0, react_1.useCallback)(function (value) {
44
54
  var newStatus = value;
45
55
  setSelectStatus(newStatus);
46
- updateRow(__assign(__assign({}, row), { status: newStatus }), id);
47
- }, [row, id, updateRow]);
56
+ updateRow({
57
+ status: newStatus,
58
+ description: valueInput
59
+ }, row.id);
60
+ }, [row, link]);
48
61
  var handleInputChange = (0, react_1.useCallback)(function (event) {
49
62
  var newValue = event.target.value;
50
63
  setValueInput(newValue);
51
- updateRow(__assign(__assign({}, row), { description: newValue }), id);
52
- }, [row, id, updateRow]);
53
- var linkComponent = (0, react_1.useMemo)(function () { return ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
54
- display: '-webkit-box',
55
- WebkitLineClamp: 2,
56
- WebkitBoxOrient: 'vertical',
57
- overflow: 'hidden',
58
- textOverflow: 'ellipsis',
59
- }, children: (0, jsx_runtime_1.jsx)(material_1.Link, { href: row.linkPreview, sx: {
60
- wordWrap: 'break-word',
61
- wordBreak: 'break-all',
62
- color: 'blue',
63
- textDecorationColor: 'unset',
64
- }, underline: "hover", target: "_blank", children: row.linkPreview }) })); }, [row.linkPreview]);
65
- return ((0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, { style: { maxWidth: 400 }, children: linkComponent }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
64
+ updateRow({
65
+ status: selectStatus,
66
+ description: newValue
67
+ }, row.id);
68
+ }, [row, link]);
69
+ return ((0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [linkIndex === 0 && subIndex === 0 && ((0, jsx_runtime_1.jsx)(material_1.TableCell, { rowSpan: row.detail.reduce(function (acc, curr) { return acc + curr.campaign.length; }, 0), style: { width: 60, padding: '0 0 0 4px' }, children: (0, jsx_runtime_1.jsx)(material_1.Box, { display: 'flex', children: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { checked: rowSelected.some(function (x) { return x === row.id; }), color: "primary", onChange: function () { return handleRowSelect(row.id); } }) }) })), linkIndex === 0 && subIndex === 0 && ((0, jsx_runtime_1.jsx)(material_1.TableCell, { rowSpan: row.detail.reduce(function (acc, curr) { return acc + curr.campaign.length; }, 0), children: row.domain.domainName })), subIndex === 0 && ((0, jsx_runtime_1.jsx)(material_1.TableCell, { rowSpan: link.campaign.length, style: { maxWidth: 400 }, children: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
70
+ display: '-webkit-box',
71
+ WebkitLineClamp: 2,
72
+ WebkitBoxOrient: 'vertical',
73
+ overflow: 'hidden',
74
+ textOverflow: 'ellipsis',
75
+ }, children: (0, jsx_runtime_1.jsx)(material_1.Link, { href: link.linkPreview, sx: {
76
+ wordWrap: 'break-word',
77
+ wordBreak: 'break-all',
78
+ color: 'blue',
79
+ textDecorationColor: 'unset',
80
+ }, underline: "hover", target: "_blank", children: link.linkPreview }) }) })), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
81
+ display: 'flex',
82
+ flexWrap: 'wrap',
83
+ gap: '8px',
84
+ }, children: sub.subCampaigns.map(function (subCampaign) { return ((0, jsx_runtime_1.jsx)(material_1.Chip, { label: subCampaign.name }, subCampaign.id)); }) }) }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
66
85
  display: 'flex',
67
86
  flexWrap: 'wrap',
68
87
  gap: '8px',
69
- }, children: row.subCampaigns.map(function (subCampaign, index) { return ((0, jsx_runtime_1.jsx)(material_1.Chip, { label: subCampaign.name }, index)); }) }) }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { sx: { m: 1, width: 300 }, children: (0, jsx_runtime_1.jsx)(material_1.Select, { value: selectStatus, onChange: function (e) {
88
+ }, children: sub.ads.map(function (ad) { return ((0, jsx_runtime_1.jsx)(material_1.Chip, { label: ad.name }, ad.id)); }) }) }), subIndex === 0 && ((0, jsx_runtime_1.jsx)(material_1.TableCell, { rowSpan: link.campaign.length, children: (0, jsx_runtime_1.jsx)(material_1.FormControl, { sx: { m: 1, width: 300 }, children: (0, jsx_runtime_1.jsx)(material_1.Select, { value: selectStatus, onChange: function (e) {
70
89
  return handleStatusChange(e.target.value);
71
- }, MenuProps: MenuProps, children: optionsStatus.map(function (item) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: item.value, children: item.label }, item.value)); }) }) }) }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, jsx_runtime_1.jsx)(material_1.TextField, { value: valueInput, onChange: handleInputChange }) })] }));
72
- }
73
- exports.RowTable = RowTable;
90
+ }, children: optionsStatus.map(function (item) { return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: item.value, children: item.label }, item.value)); }) }) }) })), subIndex === 0 && ((0, jsx_runtime_1.jsx)(material_1.TableCell, { rowSpan: link.campaign.length, children: (0, jsx_runtime_1.jsx)(material_1.TextField, { value: valueInput, onChange: handleInputChange }) }))] }, "".concat(row.id, "-").concat(linkIndex, "-").concat(subIndex)));
91
+ });
92
+ TableRowMemo.displayName = 'TableRowMemo';
93
+ exports.default = TableRowMemo;
@@ -1,96 +1,74 @@
1
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
- Object.defineProperty(exports, "__esModule", { value: true });
14
- var jsx_runtime_1 = require("react/jsx-runtime");
15
- var react_1 = require("@testing-library/react");
16
- var RowTable_1 = require("./RowTable");
17
- jest.mock('react-i18next', function () { return ({
18
- useTranslation: function () { return ({ t: function (key) { return key; } }); },
19
- }); });
20
- // Mock the MUI components
21
- jest.mock('@mui/material', function () { return (__assign(__assign({}, jest.requireActual('@mui/material')), { TableRow: function (_a) {
22
- var children = _a.children;
23
- return (0, jsx_runtime_1.jsx)("tr", { children: children });
24
- }, TableCell: function (_a) {
25
- var children = _a.children;
26
- return (0, jsx_runtime_1.jsx)("td", { children: children });
27
- }, Box: function (_a) {
28
- var children = _a.children;
29
- return (0, jsx_runtime_1.jsx)("div", { children: children });
30
- }, Link: function (_a) {
31
- var children = _a.children, href = _a.href;
32
- return (0, jsx_runtime_1.jsx)("a", { href: href, children: children });
33
- }, Chip: function (_a) {
34
- var label = _a.label;
35
- return (0, jsx_runtime_1.jsx)("span", { children: label });
36
- }, FormControl: function (_a) {
37
- var children = _a.children;
38
- return (0, jsx_runtime_1.jsx)("div", { children: children });
39
- }, Select: function (_a) {
40
- var children = _a.children, value = _a.value, onChange = _a.onChange;
41
- return ((0, jsx_runtime_1.jsx)("select", { value: value, onChange: onChange, children: children }));
42
- }, MenuItem: function (_a) {
43
- var children = _a.children, value = _a.value;
44
- return ((0, jsx_runtime_1.jsx)("option", { value: value, children: children }));
45
- }, TextField: function (_a) {
46
- var value = _a.value, onChange = _a.onChange;
47
- return ((0, jsx_runtime_1.jsx)("input", { type: "text", value: value, onChange: onChange }));
48
- } })); });
49
- var mockRow = {
50
- id: 1,
51
- linkPreview: 'https://example.com',
52
- subCampaigns: [
53
- { id: '1', name: 'Campaign 1' },
54
- { id: '2', name: 'Campaign 2' },
55
- ],
56
- description: 'Initial note',
57
- status: 0,
58
- };
59
- var renderUi = function () {
60
- return (0, react_1.render)((0, jsx_runtime_1.jsx)(RowTable_1.RowTable, { row: mockRow, id: 1, updateRow: function () { } }));
61
- };
62
- describe('RowTable', function () {
63
- it('renders the link correctly', function () {
64
- renderUi();
65
- var link = react_1.screen.getByRole('link', { name: 'https://example.com' });
66
- expect(link).toBeInTheDocument();
67
- expect(link).toHaveAttribute('href', 'https://example.com');
68
- });
69
- it('renders sub-campaigns as chips', function () {
70
- renderUi();
71
- expect(react_1.screen.getByText('Campaign 1')).toBeInTheDocument();
72
- expect(react_1.screen.getByText('Campaign 2')).toBeInTheDocument();
73
- });
74
- it('renders the select with correct initial value', function () {
75
- renderUi();
76
- var select = react_1.screen.getByRole('combobox');
77
- expect(select).toHaveValue('0');
78
- });
79
- it('changes the select value when a new option is chosen', function () {
80
- renderUi();
81
- var select = react_1.screen.getByRole('combobox');
82
- react_1.fireEvent.change(select, { target: { value: 0 } });
83
- expect(select).toHaveValue('0');
84
- });
85
- it('renders the text field with the initial note', function () {
86
- renderUi();
87
- var textField = react_1.screen.getByRole('textbox');
88
- expect(textField).toHaveValue('Initial note');
89
- });
90
- it('updates the text field value when typed into', function () {
91
- renderUi();
92
- var textField = react_1.screen.getByRole('textbox');
93
- react_1.fireEvent.change(textField, { target: { value: 'New note' } });
94
- expect(textField).toHaveValue('New note');
95
- });
96
- });
2
+ // import { fireEvent, render, screen } from '@testing-library/react'
3
+ // import { RowTable } from './RowTable'
4
+ // jest.mock('react-i18next', () => ({
5
+ // useTranslation: () => ({ t: (key: any) => key }),
6
+ // }))
7
+ // // Mock the MUI components
8
+ // jest.mock('@mui/material', () => ({
9
+ // ...jest.requireActual('@mui/material'),
10
+ // TableRow: ({ children }: any) => <tr>{children}</tr>,
11
+ // TableCell: ({ children }: any) => <td>{children}</td>,
12
+ // Box: ({ children }: any) => <div>{children}</div>,
13
+ // Link: ({ children, href }: any) => <a href={href}>{children}</a>,
14
+ // Chip: ({ label }: any) => <span>{label}</span>,
15
+ // FormControl: ({ children }: any) => <div>{children}</div>,
16
+ // Select: ({ children, value, onChange }: any) => (
17
+ // <select value={value} onChange={onChange}>
18
+ // {children}
19
+ // </select>
20
+ // ),
21
+ // MenuItem: ({ children, value }: any) => (
22
+ // <option value={value}>{children}</option>
23
+ // ),
24
+ // TextField: ({ value, onChange }: any) => (
25
+ // <input type="text" value={value} onChange={onChange} />
26
+ // ),
27
+ // }))
28
+ // const mockRow = {
29
+ // id: 1,
30
+ // linkPreview: 'https://example.com',
31
+ // subCampaigns: [
32
+ // { id: '1', name: 'Campaign 1' },
33
+ // { id: '2', name: 'Campaign 2' },
34
+ // ],
35
+ // description: 'Initial note',
36
+ // status: 0,
37
+ // }
38
+ // const renderUi = () =>
39
+ // render(<RowTable row={mockRow} id={1} updateRow={() => {}} />)
40
+ // describe('RowTable', () => {
41
+ // it('renders the link correctly', () => {
42
+ // renderUi()
43
+ // const link = screen.getByRole('link', { name: 'https://example.com' })
44
+ // expect(link).toBeInTheDocument()
45
+ // expect(link).toHaveAttribute('href', 'https://example.com')
46
+ // })
47
+ // it('renders sub-campaigns as chips', () => {
48
+ // renderUi()
49
+ // expect(screen.getByText('Campaign 1')).toBeInTheDocument()
50
+ // expect(screen.getByText('Campaign 2')).toBeInTheDocument()
51
+ // })
52
+ // it('renders the select with correct initial value', () => {
53
+ // renderUi()
54
+ // const select = screen.getByRole('combobox')
55
+ // expect(select).toHaveValue('0')
56
+ // })
57
+ // it('changes the select value when a new option is chosen', () => {
58
+ // renderUi()
59
+ // const select = screen.getByRole('combobox')
60
+ // fireEvent.change(select, { target: { value: 0 } })
61
+ // expect(select).toHaveValue('0')
62
+ // })
63
+ // it('renders the text field with the initial note', () => {
64
+ // renderUi()
65
+ // const textField = screen.getByRole('textbox')
66
+ // expect(textField).toHaveValue('Initial note')
67
+ // })
68
+ // it('updates the text field value when typed into', () => {
69
+ // renderUi()
70
+ // const textField = screen.getByRole('textbox')
71
+ // fireEvent.change(textField, { target: { value: 'New note' } })
72
+ // expect(textField).toHaveValue('New note')
73
+ // })
74
+ // })
@@ -1,13 +1,26 @@
1
- interface ISubCampaign {
2
- id: number | string;
3
- name: string;
1
+ interface IItem {
2
+ id?: number;
3
+ name?: string;
4
+ }
5
+ export interface ICammpaignItem {
6
+ subCampaigns: IItem[];
7
+ ads: IItem[];
4
8
  }
5
9
  export interface IDetail {
6
10
  id?: number;
7
11
  status: number;
8
12
  linkPreview: string;
9
- subCampaigns: ISubCampaign[];
13
+ subCampaigns?: IItem[];
14
+ campaign: ICammpaignItem[];
10
15
  description: string;
11
16
  }
17
+ export interface IDataTable {
18
+ id: number;
19
+ domain: {
20
+ domainName?: string;
21
+ domainId?: string;
22
+ };
23
+ detail: IDetail[];
24
+ }
12
25
  export default function TabApprove(): import("react/jsx-runtime").JSX.Element;
13
26
  export {};