@bindu-dashing/dam-solution 1.0.0

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 (48) hide show
  1. package/README.md +1 -0
  2. package/dist/AssetType/assetTypeContainer.js +40 -0
  3. package/dist/AssetType/assetTypeTable.js +359 -0
  4. package/dist/AssetType/createAssetType.js +832 -0
  5. package/dist/AssetType/index.js +26 -0
  6. package/dist/AssetType/style.css +110 -0
  7. package/dist/Components/ImagePickerFiltersTest.js +121 -0
  8. package/dist/Components/ImagePickerTest.js +120 -0
  9. package/dist/CreateClient/createClient.js +34 -0
  10. package/dist/CreateClient/createClientForm.js +269 -0
  11. package/dist/CreateClient/index.js +26 -0
  12. package/dist/Folder/ImagePickerFolder.js +47 -0
  13. package/dist/Folder/index.js +26 -0
  14. package/dist/Folder/style.css +0 -0
  15. package/dist/Folders/bulkDownload.js +102 -0
  16. package/dist/Folders/bulkUpdate.js +186 -0
  17. package/dist/Folders/bulkUploadFiles.js +162 -0
  18. package/dist/Folders/bulkUploadUsingQueue.js +404 -0
  19. package/dist/Folders/createOrUpdateFolder.js +264 -0
  20. package/dist/Folders/exportFolder.js +109 -0
  21. package/dist/Folders/file.js +194 -0
  22. package/dist/Folders/fileManagementContainer.js +345 -0
  23. package/dist/Folders/files.js +315 -0
  24. package/dist/Folders/filesContainer.js +650 -0
  25. package/dist/Folders/filesListView.js +439 -0
  26. package/dist/Folders/foldersContainer.js +408 -0
  27. package/dist/Folders/foldersTree.js +136 -0
  28. package/dist/Folders/index.js +26 -0
  29. package/dist/Folders/style.css +400 -0
  30. package/dist/Folders/uploadFile.js +507 -0
  31. package/dist/ImagePicker/imagePicker.js +141 -0
  32. package/dist/ImagePicker/imagePickerFiles.js +42 -0
  33. package/dist/ImagePicker/index.js +26 -0
  34. package/dist/ImagePicker/style.css +128 -0
  35. package/dist/ImagePickerFilters/imagePickerFilters.js +382 -0
  36. package/dist/ImagePickerFilters/index.js +26 -0
  37. package/dist/ImagePickerFilters/style.css +15 -0
  38. package/dist/RefreshKey/index.js +26 -0
  39. package/dist/RefreshKey/refreshKey.js +86 -0
  40. package/dist/assets/images/default-img.svg +9 -0
  41. package/dist/constants/actionTypes.js +74 -0
  42. package/dist/constants/apiEndpoints.js +88 -0
  43. package/dist/constants/appConstants.js +55 -0
  44. package/dist/hocs/folderHelpers.js +76 -0
  45. package/dist/hocs/helpers.js +52 -0
  46. package/dist/hocs/useFetch.js +97 -0
  47. package/dist/index.js +55 -0
  48. package/package.json +61 -0
@@ -0,0 +1,404 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _antd = require("antd");
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _icons = require("@ant-design/icons");
12
+ var _useFetch = _interopRequireDefault(require("../hocs/useFetch"));
13
+ var APIS = _interopRequireWildcard(require("../constants/apiEndpoints"));
14
+ var _dayjs = _interopRequireDefault(require("dayjs"));
15
+ var _helpers = require("../hocs/helpers");
16
+ const BulkUploadFilesUsingQueue = _ref => {
17
+ let {
18
+ setShowBulkUploadUsingQueue,
19
+ folder,
20
+ setLoadingFiles,
21
+ fetchFiles,
22
+ damAccessKey,
23
+ secretKey,
24
+ subdomain,
25
+ styles,
26
+ accessToken,
27
+ currentUser,
28
+ userEmail
29
+ } = _ref;
30
+ const userId = currentUser === null || currentUser === void 0 ? void 0 : currentUser.id;
31
+ const [metaFile, setMetaFile] = (0, _react.useState)(null);
32
+ const [assetTypeId, setAssetTypeId] = (0, _react.useState)(null);
33
+ const [downloadSampleFileError, setDownloadSampleFileError] = (0, _react.useState)(null);
34
+ const [sampleFileLoading, setSampleFileLoading] = (0, _react.useState)(false);
35
+ const [assetTypes, setAssetTypes] = (0, _react.useState)([]);
36
+ const [fileError, setFileError] = (0, _react.useState)("");
37
+ const [assetsSourceType, setAssetsSourceType] = (0, _react.useState)("zip");
38
+ const [assetFileError, setAssetFileError] = (0, _react.useState)("");
39
+ const [assetFile, setAssetFile] = (0, _react.useState)(null);
40
+ const assetTypeOptions = assetTypes === null || assetTypes === void 0 ? void 0 : assetTypes.map(type => {
41
+ return {
42
+ label: type === null || type === void 0 ? void 0 : type.name,
43
+ value: type === null || type === void 0 ? void 0 : type.id
44
+ };
45
+ });
46
+ const [loading, setLoading] = (0, _react.useState)(false);
47
+ const {
48
+ fetchApi
49
+ } = (0, _useFetch.default)();
50
+ (0, _react.useEffect)(() => {
51
+ fetchApi({
52
+ httpMethod: "get",
53
+ route: APIS.FETCH_ASSET_TYPES,
54
+ params: {
55
+ fetchAll: true
56
+ },
57
+ onSuccess: response => {
58
+ const data = response === null || response === void 0 ? void 0 : response.data;
59
+ setAssetTypes(data === null || data === void 0 ? void 0 : data.items);
60
+ },
61
+ damAccessKey,
62
+ secretKey,
63
+ subdomain,
64
+ accessToken
65
+ });
66
+ }, []);
67
+ const onFinish = values => {
68
+ if (!fileError && !assetFileError) {
69
+ if (assetsSourceType == "zip") {
70
+ getBulkUploadFilePresignedUrl(values);
71
+ } else {
72
+ bulkUpload(values);
73
+ }
74
+ }
75
+ };
76
+ function uploadFileToPresignedUrl(url, file, values, key) {
77
+ setLoading(true);
78
+ try {
79
+ fetch(url, {
80
+ method: "put",
81
+ headers: {
82
+ "Content-Type": file.type,
83
+ "Access-Control-Allow-Origin": "*"
84
+ },
85
+ body: file
86
+ }).then(response => {
87
+ // console.log(response);
88
+ setLoading(false);
89
+ bulkUpload(values, key);
90
+ }).catch(() => {
91
+ setLoading(false);
92
+ console.error("Error uploading the file:");
93
+ _antd.notification.error({
94
+ message: "Error while uploading"
95
+ });
96
+ });
97
+ // console.log("File uploaded successfully");
98
+ } catch (error) {
99
+ setLoading(false);
100
+ // console.error("Error uploading the file:");
101
+ _antd.notification.error({
102
+ message: "Error while uploading"
103
+ });
104
+ }
105
+ }
106
+ const getBulkUploadFilePresignedUrl = values => {
107
+ const t = (0, _dayjs.default)().unix();
108
+ setLoading(true);
109
+ fetchApi({
110
+ httpMethod: "get",
111
+ route: `${APIS.GET_BULK_UPLOAD_FILE_PRESIGNED_URL}?t=${t}`,
112
+ onSuccess: response => {
113
+ var _response$data, _response$data2;
114
+ setLoading(false);
115
+ // console.log(response);
116
+ const url = response === null || response === void 0 ? void 0 : (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.url;
117
+ const zipFileKey = response === null || response === void 0 ? void 0 : (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.key;
118
+ uploadFileToPresignedUrl(url, assetFile, values, zipFileKey);
119
+ },
120
+ onFailure: () => {
121
+ setLoading(false);
122
+ _antd.notification.error({
123
+ message: "Error while uploading"
124
+ });
125
+ },
126
+ accessToken,
127
+ damAccessKey,
128
+ secretKey,
129
+ subdomain
130
+ });
131
+ };
132
+ const bulkUpload = function (values) {
133
+ let key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
134
+ setLoading(true);
135
+ const assetType = assetTypes === null || assetTypes === void 0 ? void 0 : assetTypes.find(type => (type === null || type === void 0 ? void 0 : type.id) === (values === null || values === void 0 ? void 0 : values.asset_type_id));
136
+ const formData = new FormData();
137
+ formData.append("asset_type_id", values === null || values === void 0 ? void 0 : values.asset_type_id);
138
+ formData.append("assets_public_path", values === null || values === void 0 ? void 0 : values.assets_public_path);
139
+ formData.append("reject_invalid_meta_file", true);
140
+ formData.append("zip_file_url", values === null || values === void 0 ? void 0 : values.zip_file_url);
141
+ formData.append("meta_file", metaFile);
142
+ formData.append("created_by", userId);
143
+ formData.append("folder_id", folder === null || folder === void 0 ? void 0 : folder.id);
144
+ formData.append("folder_name", folder === null || folder === void 0 ? void 0 : folder.name);
145
+ formData.append("asset_type", assetType === null || assetType === void 0 ? void 0 : assetType.name);
146
+ formData.append("prefix", folder === null || folder === void 0 ? void 0 : folder.path);
147
+ formData.append("email", values === null || values === void 0 ? void 0 : values.email);
148
+ formData.append("source_type", assetsSourceType);
149
+ if (key) {
150
+ formData.append("zip_file_key", key);
151
+ }
152
+ fetchApi({
153
+ httpMethod: "post",
154
+ route: APIS.BULK_UPLOAD_USING_QUEUE,
155
+ body: formData,
156
+ isFormData: true,
157
+ onSuccess: response => {
158
+ var _response$data$messag, _response$data3;
159
+ setLoading(false);
160
+ setShowBulkUploadUsingQueue(false);
161
+ _antd.notification.success({
162
+ message: (_response$data$messag = response === null || response === void 0 ? void 0 : (_response$data3 = response.data) === null || _response$data3 === void 0 ? void 0 : _response$data3.message) !== null && _response$data$messag !== void 0 ? _response$data$messag : "Successfully uploaded files"
163
+ });
164
+ setLoadingFiles(true);
165
+ fetchFiles(null, folder === null || folder === void 0 ? void 0 : folder.id);
166
+ },
167
+ onFailure: () => {
168
+ setLoading(false);
169
+ },
170
+ accessToken,
171
+ damAccessKey,
172
+ secretKey,
173
+ subdomain
174
+ });
175
+ };
176
+ const onDownloadSampleFile = () => {
177
+ if (!assetTypeId) {
178
+ setDownloadSampleFileError("select asset type");
179
+ } else {
180
+ setSampleFileLoading(true);
181
+ fetchApi({
182
+ httpMethod: "post",
183
+ route: APIS.DOWNLOAD_BULK_UPLOAD_SAMPLE_FILE.replace(":id", assetTypeId),
184
+ body: {
185
+ t: (0, _dayjs.default)().unix()
186
+ },
187
+ accessToken,
188
+ damAccessKey,
189
+ secretKey,
190
+ subdomain,
191
+ onSuccess: response => {
192
+ var _response$data4;
193
+ setSampleFileLoading(false);
194
+ const link = document.createElement("a");
195
+ link.href = response === null || response === void 0 ? void 0 : (_response$data4 = response.data) === null || _response$data4 === void 0 ? void 0 : _response$data4.url;
196
+ link.target = "_blank";
197
+ document.body.appendChild(link);
198
+ link.click();
199
+ },
200
+ onFailure: () => {
201
+ setSampleFileLoading(false);
202
+ }
203
+ });
204
+ }
205
+ };
206
+ return /*#__PURE__*/_react.default.createElement(_antd.Modal, {
207
+ open: true,
208
+ onCancel: () => setShowBulkUploadUsingQueue(false),
209
+ title: "Bulk Upload",
210
+ footer: null,
211
+ maskClosable: false
212
+ }, /*#__PURE__*/_react.default.createElement(_antd.Form, {
213
+ layout: "vertical",
214
+ onFinish: onFinish,
215
+ initialValues: {
216
+ assets_source_type: assetsSourceType,
217
+ email: userEmail
218
+ }
219
+ }, /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
220
+ label: /*#__PURE__*/_react.default.createElement("div", {
221
+ className: "bulk-upload-info"
222
+ }, /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, null, "Asset Type"), " ", /*#__PURE__*/_react.default.createElement(_antd.Tooltip, {
223
+ title: "Select from dropdown below, or refer to the DAM Folder header to see what asset types currently exist."
224
+ }, /*#__PURE__*/_react.default.createElement(_icons.InfoCircleOutlined, null))),
225
+ name: "asset_type_id",
226
+ rules: [{
227
+ required: true,
228
+ message: "Asset type is required"
229
+ }]
230
+ }, /*#__PURE__*/_react.default.createElement(_antd.Select, {
231
+ options: assetTypeOptions,
232
+ placeholder: "Select Asset Type",
233
+ onChange: e => {
234
+ setAssetTypeId(e);
235
+ setDownloadSampleFileError(null);
236
+ },
237
+ optionFilterProp: "label",
238
+ showSearch: true
239
+ })), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, null, /*#__PURE__*/_react.default.createElement("div", {
240
+ style: {
241
+ display: "flex",
242
+ flexDirection: "column"
243
+ }
244
+ }, /*#__PURE__*/_react.default.createElement(_antd.Tooltip, {
245
+ title: "Select Asset Type first (above)"
246
+ }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
247
+ icon: /*#__PURE__*/_react.default.createElement(_icons.DownloadOutlined, null),
248
+ onClick: () => onDownloadSampleFile(),
249
+ loading: sampleFileLoading,
250
+ disabled: !assetTypeId,
251
+ block: true
252
+ }, "Download Sample File")), downloadSampleFileError && /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
253
+ style: {
254
+ color: "red"
255
+ }
256
+ }, downloadSampleFileError))), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
257
+ label: "Meta File (use Download Sample File)",
258
+ name: "meta_file",
259
+ rules: [{
260
+ required: true,
261
+ message: "Meta File is required"
262
+ }],
263
+ extra: "Maximum allowed file size is 5MB"
264
+ }, /*#__PURE__*/_react.default.createElement(_antd.Upload, {
265
+ listType: "card",
266
+ beforeUpload: file => {
267
+ var _file$name;
268
+ const [name, extension] = (_file$name = file.name) === null || _file$name === void 0 ? void 0 : _file$name.split(".");
269
+ if (extension !== "csv" && extension !== "xlsx" && extension !== "xls") {
270
+ setFileError("Invalid file format");
271
+ } else {
272
+ const fileSize = (0, _helpers.humanFileSize)(file === null || file === void 0 ? void 0 : file.size);
273
+ if ((fileSize === null || fileSize === void 0 ? void 0 : fileSize.sizeType) !== "GB" && (fileSize === null || fileSize === void 0 ? void 0 : fileSize.sizeType) !== "TB") {
274
+ if ((fileSize === null || fileSize === void 0 ? void 0 : fileSize.sizeType) == "MB") {
275
+ if ((fileSize === null || fileSize === void 0 ? void 0 : fileSize.size) < 5) {
276
+ setMetaFile(file);
277
+ setFileError("");
278
+ return false;
279
+ } else {
280
+ setFileError("File size should be less than 5MB");
281
+ }
282
+ } else {
283
+ setMetaFile(file);
284
+ setFileError("");
285
+ return false;
286
+ }
287
+ } else {
288
+ setFileError("File size should be less than 5MB");
289
+ }
290
+ }
291
+ return false;
292
+ },
293
+ disabled: !assetTypeId,
294
+ onRemove: () => {
295
+ setMetaFile(null);
296
+ setFileError("Meta File is required");
297
+ },
298
+ accept: ".csv,.xlsx,.xls",
299
+ maxCount: 1
300
+ }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
301
+ icon: /*#__PURE__*/_react.default.createElement(_icons.UploadOutlined, null),
302
+ disabled: !assetTypeId
303
+ }, "Upload"))), fileError && /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
304
+ style: {
305
+ color: "red"
306
+ }
307
+ }, fileError), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
308
+ label: "Upload your DAM Files (must be zipped)",
309
+ name: "assets_source_type"
310
+ }, /*#__PURE__*/_react.default.createElement(_antd.Radio.Group, {
311
+ onChange: e => setAssetsSourceType(e.target.value),
312
+ value: assetsSourceType,
313
+ disabled: !assetTypeId
314
+ }, /*#__PURE__*/_react.default.createElement(_antd.Radio, {
315
+ value: "zip"
316
+ }, "Zip file"), /*#__PURE__*/_react.default.createElement(_antd.Radio, {
317
+ value: "zip_url"
318
+ }, "Zip file url"))), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, assetsSourceType == "zip" ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
319
+ label: "Assets zip file",
320
+ name: "assets_zip_file",
321
+ rules: [{
322
+ required: true,
323
+ message: "Asset zip file is required"
324
+ }],
325
+ extra: "Maximum allowed file size is 5GB"
326
+ }, /*#__PURE__*/_react.default.createElement(_antd.Upload, {
327
+ listType: "card",
328
+ beforeUpload: file => {
329
+ var _file$name2;
330
+ const [name, extension] = (_file$name2 = file.name) === null || _file$name2 === void 0 ? void 0 : _file$name2.split(".");
331
+ if (extension !== "zip") {
332
+ setAssetFileError("Invalid file format");
333
+ } else {
334
+ const fileSize = (0, _helpers.humanFileSize)(file === null || file === void 0 ? void 0 : file.size);
335
+ if ((fileSize === null || fileSize === void 0 ? void 0 : fileSize.sizeType) !== "TB") {
336
+ if ((fileSize === null || fileSize === void 0 ? void 0 : fileSize.sizeType) == "GB") {
337
+ if ((fileSize === null || fileSize === void 0 ? void 0 : fileSize.size) < 5) {
338
+ setAssetFile(file);
339
+ setAssetFileError("");
340
+ return false;
341
+ } else {
342
+ setAssetFileError("File size should be less than 5GB");
343
+ }
344
+ } else {
345
+ setAssetFile(file);
346
+ setAssetFileError("");
347
+ return false;
348
+ }
349
+ } else {
350
+ setAssetFileError("File size should be less than 5GB");
351
+ }
352
+ }
353
+ return false;
354
+ },
355
+ disabled: !assetTypeId,
356
+ onRemove: () => {
357
+ setAssetFile(null);
358
+ setAssetFileError("Zip File is required");
359
+ },
360
+ accept: ".zip",
361
+ maxCount: 1
362
+ }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
363
+ icon: /*#__PURE__*/_react.default.createElement(_icons.UploadOutlined, null),
364
+ style: {
365
+ width: "100%"
366
+ }
367
+ }, "Upload"))), assetFileError && /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
368
+ style: {
369
+ color: "red"
370
+ }
371
+ }, assetFileError)) : /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
372
+ label: "Assets zip file url",
373
+ name: "zip_file_url",
374
+ rules: [{
375
+ required: true,
376
+ message: "Zip file url is required"
377
+ }]
378
+ }, /*#__PURE__*/_react.default.createElement(_antd.Input, {
379
+ placeholder: "Zip file url",
380
+ disabled: !assetTypeId
381
+ }))), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
382
+ label: "Email (you will receive an upload confirmation receipt)",
383
+ name: "email",
384
+ rules: [{
385
+ required: true,
386
+ message: "Email is required"
387
+ }]
388
+ }, /*#__PURE__*/_react.default.createElement(_antd.Input, {
389
+ placeholder: "Email",
390
+ disabled: !assetTypeId
391
+ })), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, null, /*#__PURE__*/_react.default.createElement(_antd.Button, {
392
+ block: true,
393
+ type: "primary",
394
+ htmlType: "submit",
395
+ style: {
396
+ marginBottom: "10px",
397
+ backgroundColor: styles === null || styles === void 0 ? void 0 : styles.primaryColor
398
+ },
399
+ loading: loading,
400
+ disabled: !assetTypeId
401
+ }, "Submit"))));
402
+ };
403
+ var _default = BulkUploadFilesUsingQueue;
404
+ exports.default = _default;
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _antd = require("antd");
10
+ require("./style.css");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var APIS = _interopRequireWildcard(require("../constants/apiEndpoints"));
13
+ var _useFetch = _interopRequireDefault(require("../hocs/useFetch"));
14
+ var _folderHelpers = require("../hocs/folderHelpers");
15
+ const CreateOrUpdateFolder = _ref => {
16
+ var _currentUser$id;
17
+ let {
18
+ setShowCreateFolder,
19
+ setCurrentUpdatingFolderId,
20
+ parentId,
21
+ folderId,
22
+ folders = [],
23
+ setFolders,
24
+ expandedKeys = [],
25
+ setTreeData,
26
+ setFolder,
27
+ disableIsParent = false,
28
+ damAccessKey,
29
+ secretKey,
30
+ subdomain,
31
+ styles,
32
+ teamIds,
33
+ fetchFolders,
34
+ teams,
35
+ accessToken,
36
+ currentUser
37
+ } = _ref;
38
+ const [loading, setLoading] = (0, _react.useState)(false);
39
+ const userId = (_currentUser$id = currentUser === null || currentUser === void 0 ? void 0 : currentUser.id) !== null && _currentUser$id !== void 0 ? _currentUser$id : null;
40
+ const [data, setData] = (0, _react.useState)({});
41
+ const [isParent, setIsParent] = (0, _react.useState)(parentId !== "root" ? false : true);
42
+ const [form] = _antd.Form.useForm();
43
+ const [fetchRecordLoading, setFetchRecordLoading] = (0, _react.useState)(false);
44
+ const {
45
+ fetchApi
46
+ } = (0, _useFetch.default)();
47
+ const getFolder = function () {
48
+ let folders = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
49
+ let folderId = arguments.length > 1 ? arguments[1] : undefined;
50
+ const flattenFolders = folderList => {
51
+ let result = [];
52
+ folderList === null || folderList === void 0 ? void 0 : folderList.forEach(folder => {
53
+ var _folder$children;
54
+ result.push(folder);
55
+ if (folder !== null && folder !== void 0 && folder.children && (folder === null || folder === void 0 ? void 0 : (_folder$children = folder.children) === null || _folder$children === void 0 ? void 0 : _folder$children.length) > 0) {
56
+ result = [...result, ...flattenFolders(folder.children)];
57
+ }
58
+ });
59
+ return result;
60
+ };
61
+ const allFolders = flattenFolders(folders);
62
+ return allFolders === null || allFolders === void 0 ? void 0 : allFolders.find(folder => {
63
+ return (folder === null || folder === void 0 ? void 0 : folder.id) === folderId;
64
+ });
65
+ };
66
+ const parentFolder = (0, _react.useMemo)(() => getFolder(folders, parentId), [folders, parentId]);
67
+ (0, _react.useEffect)(() => {
68
+ if (folderId) {
69
+ setFetchRecordLoading(true);
70
+ fetchApi({
71
+ route: APIS.FETCH_FOLDER.replace(":id", folderId),
72
+ httpMethod: "get",
73
+ onSuccess: response => {
74
+ const result = response === null || response === void 0 ? void 0 : response.data;
75
+ setData(result);
76
+ form.setFieldsValue({
77
+ ...result,
78
+ prefix: result === null || result === void 0 ? void 0 : result.path
79
+ });
80
+ setFetchRecordLoading(false);
81
+ },
82
+ onFailure: () => {
83
+ setFetchRecordLoading(false);
84
+ },
85
+ accessToken,
86
+ damAccessKey,
87
+ secretKey,
88
+ subdomain
89
+ });
90
+ } else {
91
+ const prefixValue = parentId !== "root" && parentFolder !== null && parentFolder !== void 0 && parentFolder.path ? parentFolder.path : "/";
92
+ form.setFieldsValue({
93
+ prefix: prefixValue
94
+ });
95
+ }
96
+ }, [folderId, parentId, parentFolder]);
97
+ const onFinish = values => {
98
+ var _values$team_ids, _values$team_ids2, _values$team_ids3;
99
+ const finalData = {
100
+ ...data,
101
+ ...values,
102
+ created_by: userId,
103
+ subdomain: window.location.hostname,
104
+ parent_id: isParent ? "root" : parentId,
105
+ prefix: isParent ? values === null || values === void 0 ? void 0 : values.prefix : parentFolder === null || parentFolder === void 0 ? void 0 : parentFolder.path,
106
+ team_ids: typeof (values === null || values === void 0 ? void 0 : values.team_ids) === "string" ? (_values$team_ids = values === null || values === void 0 ? void 0 : values.team_ids) !== null && _values$team_ids !== void 0 ? _values$team_ids : "" : (values === null || values === void 0 ? void 0 : (_values$team_ids2 = values.team_ids) === null || _values$team_ids2 === void 0 ? void 0 : _values$team_ids2.length) > 0 ? values === null || values === void 0 ? void 0 : (_values$team_ids3 = values.team_ids) === null || _values$team_ids3 === void 0 ? void 0 : _values$team_ids3.join(",") : ""
107
+ };
108
+ if (folderId) {
109
+ onUpdateFolder(isParent ? "root" : parentId, finalData, folderId);
110
+ } else {
111
+ finalData["prev_folder_id_path"] = isParent ? null : parentFolder === null || parentFolder === void 0 ? void 0 : parentFolder.folder_id_path;
112
+ onCreateFolder(isParent ? "root" : parentId, finalData);
113
+ }
114
+ };
115
+ const onUpdateFolder = (parentId, finalData, folderId) => {
116
+ setLoading(true);
117
+ fetchApi({
118
+ httpMethod: "put",
119
+ route: APIS.UPDATE_FOLDER.replace(":id", folderId),
120
+ body: finalData,
121
+ onSuccess: response => {
122
+ const data = response === null || response === void 0 ? void 0 : response.data;
123
+ setLoading(false);
124
+ setShowCreateFolder(false);
125
+ _antd.notification.success({
126
+ message: "Folder updated successfully"
127
+ });
128
+ const updatedFolders = (0, _folderHelpers.updateFolder)(folders, folderId, parentId, data);
129
+ setFolders(updatedFolders);
130
+ setFolder(data);
131
+ setTreeData((0, _folderHelpers.modifyFolderNameToTitle)(updatedFolders, expandedKeys));
132
+ },
133
+ onFailure: () => {
134
+ setLoading(false);
135
+ _antd.notification.error({
136
+ message: "Error while creating folder"
137
+ });
138
+ },
139
+ accessToken,
140
+ damAccessKey,
141
+ secretKey,
142
+ subdomain
143
+ });
144
+ };
145
+ function hasCommonElement() {
146
+ let array1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
147
+ let array2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
148
+ return array1.some(item => array2.includes(item === null || item === void 0 ? void 0 : item.toString()));
149
+ }
150
+ const onCreateFolder = (folderParentId, finalData) => {
151
+ setLoading(true);
152
+ fetchApi({
153
+ httpMethod: "post",
154
+ route: APIS.CREATE_FOLDER,
155
+ body: finalData,
156
+ onSuccess: response => {
157
+ const data = response === null || response === void 0 ? void 0 : response.data;
158
+ setLoading(false);
159
+ setShowCreateFolder(false);
160
+ _antd.notification.success({
161
+ message: "Folder created successfully"
162
+ });
163
+ // console.log(folderParentId);
164
+ if (folderParentId === "root" && !setTreeData) {
165
+ fetchFolders();
166
+ } else {
167
+ const foldersWithNewFolder = folderParentId !== "root" ? (0, _folderHelpers.addNewFolder)(folders, folderParentId, data) : [...folders, data];
168
+ setFolders(foldersWithNewFolder);
169
+ setTreeData((0, _folderHelpers.modifyFolderNameToTitle)(foldersWithNewFolder, expandedKeys));
170
+ }
171
+ },
172
+ onFailure: () => {
173
+ setLoading(false);
174
+ _antd.notification.error({
175
+ message: "Error while creating folder"
176
+ });
177
+ },
178
+ accessToken,
179
+ damAccessKey,
180
+ secretKey,
181
+ subdomain
182
+ });
183
+ };
184
+ return /*#__PURE__*/_react.default.createElement(_antd.Drawer, {
185
+ title: folderId ? "Update Folder" : /*#__PURE__*/_react.default.createElement("div", {
186
+ className: "dam-upload-file-title"
187
+ }, /*#__PURE__*/_react.default.createElement("p", null, "Create Folder"), /*#__PURE__*/_react.default.createElement(_antd.Typography.Text, {
188
+ ellipsis: {
189
+ tooltip: true
190
+ },
191
+ className: "description"
192
+ }, parentFolder ? parentFolder.name : "")),
193
+ onClose: () => {
194
+ setShowCreateFolder(false);
195
+ if (folderId) {
196
+ setCurrentUpdatingFolderId(null);
197
+ }
198
+ },
199
+ className: "create-update-dam-folder",
200
+ open: true,
201
+ width: 500,
202
+ maskClosable: false
203
+ }, fetchRecordLoading ? /*#__PURE__*/_react.default.createElement("div", {
204
+ className: "dam-loading"
205
+ }, /*#__PURE__*/_react.default.createElement(_antd.Spin, null)) : /*#__PURE__*/_react.default.createElement(_antd.Form, {
206
+ layout: "vertical",
207
+ onFinish: onFinish,
208
+ form: form
209
+ }, /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
210
+ label: "Folder Name",
211
+ name: "name",
212
+ rules: [{
213
+ required: true,
214
+ message: "Name is required"
215
+ }]
216
+ }, /*#__PURE__*/_react.default.createElement(_antd.Input, {
217
+ placeholder: "Name"
218
+ })), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
219
+ label: "Path",
220
+ name: "prefix",
221
+ rules: [{
222
+ required: true,
223
+ message: "Path is required"
224
+ }]
225
+ }, /*#__PURE__*/_react.default.createElement(_antd.Input, {
226
+ disabled: true
227
+ })), !folderId && /*#__PURE__*/_react.default.createElement(_antd.Checkbox, {
228
+ checked: isParent,
229
+ style: {
230
+ marginBottom: "15px"
231
+ },
232
+ onChange: e => setIsParent(e.target.checked),
233
+ disabled: disableIsParent
234
+ }, "Is Parent"), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
235
+ label: "Team Ids",
236
+ name: "team_ids",
237
+ getValueFromEvent: e => {
238
+ return e ? e === null || e === void 0 ? void 0 : e.join(",") : "";
239
+ },
240
+ getValueProps: i => {
241
+ var _i$split;
242
+ return {
243
+ value: i && i !== "" ? typeof i === "string" ? (_i$split = i.split(",")) === null || _i$split === void 0 ? void 0 : _i$split.map(val => Number(val)) : i === null || i === void 0 ? void 0 : i.map(val => Number(val)) : []
244
+ };
245
+ }
246
+ }, /*#__PURE__*/_react.default.createElement(_antd.Select
247
+ // showSearch
248
+ , {
249
+ placeholder: "Team Ids",
250
+ mode: "multiple",
251
+ optionFilterProp: "key",
252
+ options: teams
253
+ })), /*#__PURE__*/_react.default.createElement(_antd.Form.Item, null, /*#__PURE__*/_react.default.createElement(_antd.Button, {
254
+ block: true,
255
+ type: "primary",
256
+ htmlType: "submit",
257
+ loading: loading,
258
+ style: {
259
+ backgroundColor: styles === null || styles === void 0 ? void 0 : styles.primaryColor
260
+ }
261
+ }, "Submit"))));
262
+ };
263
+ var _default = CreateOrUpdateFolder;
264
+ exports.default = _default;