@bindu-dashing/dam-solution-v2 5.8.61 → 5.8.64

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.
@@ -1,3 +1,5 @@
1
1
  import React from "react";
2
- declare const AddDrive: React.FC;
2
+ declare const AddDrive: React.FC<{
3
+ parentFolderId?: string;
4
+ }>;
3
5
  export default AddDrive;
@@ -39,11 +39,13 @@ const BsUploadIcon = BsUpload;
39
39
  const PiFolderPlusLightIcon = PiFolderPlusLight;
40
40
  const GoPlusIcon = GoPlus;
41
41
  const MdKeyboardArrowDownIconIcon = MdKeyboardArrowDown;
42
- const AddDrive = () => {
42
+ const AddDrive = ({ parentFolderId }) => {
43
43
  const damConfig = useDamConfig();
44
44
  const { brand, rootFolderId } = damConfig;
45
45
  const brandId = get(brand, "_id");
46
46
  const { folderId } = useAppParams();
47
+ // Use parentFolderId (current folder from selection) > folderId (from URL) > rootFolderId
48
+ const currentFolderId = parentFolderId || folderId || rootFolderId;
47
49
  const fileInputRef = useRef(null);
48
50
  const api = useMemo(() => createApiClient(damConfig), [damConfig]);
49
51
  const [state, setState] = useState({
@@ -102,7 +104,7 @@ const AddDrive = () => {
102
104
  try {
103
105
  const response = yield api.post(FILE_UPLOAD_URL, {
104
106
  brandId,
105
- folderId: folderId || rootFolderId,
107
+ folderId: currentFolderId,
106
108
  files: map(files, (file) => ({
107
109
  name: get(file, "name"),
108
110
  size: get(file, "size"),
@@ -165,6 +167,6 @@ const AddDrive = () => {
165
167
  },
166
168
  ];
167
169
  const toggleGenerateThumbnails = () => setState((prevState) => (Object.assign(Object.assign({}, prevState), { showGenerateThumbnails: !prevState.showGenerateThumbnails })));
168
- return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "md-lib-flex md-lib-gap-3", children: [_jsx(CustomButton, { label: "Generate Thumbnails", icon: _jsx(RiGalleryLineIcon, {}), size: "large", onClick: toggleGenerateThumbnails }), _jsx(Dropdown, { menu: { items }, trigger: ["click"], placement: "bottomRight", children: _jsxs(Button, { icon: _jsx(GoPlusIcon, { size: 16 }), type: "primary", size: "large", children: ["Add ", _jsx(MdKeyboardArrowDownIconIcon, {})] }) })] }), _jsx("input", { ref: fileInputRef, type: "file", style: { display: 'none' }, onChange: handleNativeFileUpload }), openFolderModal && (_jsx(AddFolder, { open: openFolderModal, handleCancel: toggleFolderModal })), openMapFile && (_jsx(MapFile, { open: openMapFile, handleCancel: toggleOpenMapFile, filesList: filesList, fromUpload: true })), showUploadStatus && (_jsx(UploadStatusModal, { open: showUploadStatus, statusList: uploadStatusList, onClose: () => setState((prevState) => (Object.assign(Object.assign({}, prevState), { showUploadStatus: false }))) })), openBlukUploadModal && (_jsx(BulkUploadModal, { toggleUpload: toggleFolderBulkModal, folderId: folderId !== null && folderId !== void 0 ? folderId : rootFolderId })), showGenerateThumbnails && (_jsx(BulkUploadModal, { toggleUpload: toggleGenerateThumbnails, thumbnailsOnly: true, folderId: folderId !== null && folderId !== void 0 ? folderId : rootFolderId }))] }));
170
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "md-lib-flex md-lib-gap-3", children: [_jsx(CustomButton, { label: "Generate Thumbnails", icon: _jsx(RiGalleryLineIcon, {}), size: "large", onClick: toggleGenerateThumbnails }), _jsx(Dropdown, { menu: { items }, trigger: ["click"], placement: "bottomRight", children: _jsxs(Button, { icon: _jsx(GoPlusIcon, { size: 16 }), type: "primary", size: "large", children: ["Add ", _jsx(MdKeyboardArrowDownIconIcon, {})] }) })] }), _jsx("input", { ref: fileInputRef, type: "file", style: { display: 'none' }, onChange: handleNativeFileUpload }), openFolderModal && (_jsx(AddFolder, { open: openFolderModal, handleCancel: toggleFolderModal, parentFolderId: currentFolderId })), openMapFile && (_jsx(MapFile, { open: openMapFile, handleCancel: toggleOpenMapFile, filesList: filesList, fromUpload: true, parentFolderId: currentFolderId })), showUploadStatus && (_jsx(UploadStatusModal, { open: showUploadStatus, statusList: uploadStatusList, onClose: () => setState((prevState) => (Object.assign(Object.assign({}, prevState), { showUploadStatus: false }))) })), openBlukUploadModal && (_jsx(BulkUploadModal, { toggleUpload: toggleFolderBulkModal, folderId: currentFolderId })), showGenerateThumbnails && (_jsx(BulkUploadModal, { toggleUpload: toggleGenerateThumbnails, thumbnailsOnly: true, folderId: currentFolderId }))] }));
169
171
  };
170
172
  export default AddDrive;
@@ -1,10 +1,11 @@
1
1
  import { FileEntity, FolderEntity } from "../utilities/constants/interface";
2
- declare function AddFolder({ open, handleCancel, folder, file, onCloseSelection, fileModal, }: {
2
+ declare function AddFolder({ open, handleCancel, folder, file, onCloseSelection, fileModal, parentFolderId, }: {
3
3
  open: boolean;
4
4
  handleCancel: () => void;
5
5
  folder?: FolderEntity;
6
6
  file?: FileEntity;
7
7
  onCloseSelection?: () => void;
8
8
  fileModal?: boolean;
9
+ parentFolderId?: string;
9
10
  }): JSX.Element;
10
11
  export default AddFolder;
@@ -24,11 +24,13 @@ import { createApiClient } from "../hocs/configureAxios";
24
24
  import useAppParams from "../utilities/useAppParams";
25
25
  import { RenderModalTitle } from "../common/CustomElements";
26
26
  import { useFoldersContext } from "../utilities/FoldersContext";
27
- function AddFolder({ open, handleCancel, folder, file, onCloseSelection, fileModal, }) {
27
+ function AddFolder({ open, handleCancel, folder, file, onCloseSelection, fileModal, parentFolderId, }) {
28
28
  const { setFolders, globalSearch } = useFoldersContext();
29
29
  const { folderId, type } = useAppParams();
30
30
  const damConfig = useDamConfig();
31
31
  const { rootFolderId } = damConfig;
32
+ // Use parentFolderId (current folder from selection) > folderId (from URL) > rootFolderId
33
+ const currentFolderId = parentFolderId || folderId || rootFolderId;
32
34
  const api = useMemo(() => createApiClient(damConfig), [damConfig]);
33
35
  const [state, setState] = useState({ loading: false });
34
36
  const { loading } = state;
@@ -42,7 +44,7 @@ function AddFolder({ open, handleCancel, folder, file, onCloseSelection, fileMod
42
44
  ? yield api.put(FETCH_FOLDER_URL.replace(":folderId", get(folder, "_id")), values)
43
45
  : get(file, "_id")
44
46
  ? yield api.put(FETCH_FILE_URL.replace(":fileId", get(file, "_id")), values)
45
- : yield api.post(FETCH_FOLDERS_URL, Object.assign(Object.assign({}, values), { teamIds: [], parentId: folderId ? folderId : rootFolderId }));
47
+ : yield api.post(FETCH_FOLDERS_URL, Object.assign(Object.assign({}, values), { teamIds: [], parentId: currentFolderId }));
46
48
  if (folder || file) {
47
49
  // ✅ update case
48
50
  const updatedFolder = folder
@@ -235,7 +235,7 @@ function DriveContainer({ parentFolderId, setSelectedFile, setParentFolderId, pi
235
235
  setState((prevState) => (Object.assign(Object.assign({}, prevState), filters)));
236
236
  };
237
237
  // console.log("search", searchKey, searchValue, metadataKey, metadataValue);
238
- return (_jsxs("div", { className: "md-lib-h-[inherit]", children: [type !== DriveModes.FILE && (_jsx(_Fragment, { children: _jsxs("div", { className: "md-lib-flex md-lib-items-center md-lib-px-4 md-lib-h-20 md-lib-justify-between md-lib-border-b md-lib-border-borderColor dark:md-lib-border-darkBorderColor md-lib-mb-4", children: [imagePicker ? (_jsx(ImagePickerBreadCrumbList, { folder: parentFolder, parentFolderId: parentFolderId, setParentFolderId: setParentFolderId, pickerFolderId: pickerFolderId })) : (_jsx(_Fragment, { children: _jsx(BreadCrumbList, { folder: parentFolder, parentFolderId: parentFolderId, setParentFolderId: setParentFolderId, pickerFolderId: pickerFolderId, globalSearch: globalSearch, setSelectedKeys: setSelectedKeys }) })), isAdmin && _jsx(AddDrive, {}), get(imagePicker, "allowNewFiles") && (_jsx(Upload, { beforeUpload: (file) => {
238
+ return (_jsxs("div", { className: "md-lib-h-[inherit]", children: [type !== DriveModes.FILE && (_jsx(_Fragment, { children: _jsxs("div", { className: "md-lib-flex md-lib-items-center md-lib-px-4 md-lib-h-20 md-lib-justify-between md-lib-border-b md-lib-border-borderColor dark:md-lib-border-darkBorderColor md-lib-mb-4", children: [imagePicker ? (_jsx(ImagePickerBreadCrumbList, { folder: parentFolder, parentFolderId: parentFolderId, setParentFolderId: setParentFolderId, pickerFolderId: pickerFolderId })) : (_jsx(_Fragment, { children: _jsx(BreadCrumbList, { folder: parentFolder, parentFolderId: parentFolderId, setParentFolderId: setParentFolderId, pickerFolderId: pickerFolderId, globalSearch: globalSearch, setSelectedKeys: setSelectedKeys }) })), isAdmin && _jsx(AddDrive, { parentFolderId: parentFolderId }), get(imagePicker, "allowNewFiles") && (_jsx(Upload, { beforeUpload: (file) => {
239
239
  onSelectNewFile(file);
240
240
  }, showUploadList: false, accept: "image/*", children: _jsx(CustomButton, { loading: loadingType === "NEW_FILE_UPLOAD", label: "Select File", icon: _jsx(BsUploadIcon, {}) }) }))] }) })), _jsxs("div", { className: `md-lib-px-4 md-lib-border-borderColor dark:md-lib-border-darkBorderColor md-lib-flex ${!includes([DriveModes.FOLDERS, DriveModes.FILE], type)
241
241
  ? "md-lib-justify-between"
@@ -1,8 +1,9 @@
1
1
  import { FileEntity, ResponseFile } from "../../utilities/constants/interface";
2
- declare function MapFile({ open, handleCancel, filesList, fromUpload, }: {
2
+ declare function MapFile({ open, handleCancel, filesList, fromUpload, parentFolderId, }: {
3
3
  open?: boolean;
4
4
  handleCancel?: () => void;
5
5
  filesList: ResponseFile[] | FileEntity[];
6
6
  fromUpload?: boolean;
7
+ parentFolderId?: string;
7
8
  }): JSX.Element;
8
9
  export default MapFile;
@@ -27,12 +27,14 @@ import { DATE_FORMAT, DATE_WITH_TIME_FORMAT } from "../../hocs/appConstants";
27
27
  import dayjs from "dayjs";
28
28
  import useAppNavigate from "../../utilities/useAppNavigate";
29
29
  import { addQueryParams } from "../../hocs/helpers";
30
- function MapFile({ open, handleCancel, filesList, fromUpload, }) {
30
+ function MapFile({ open, handleCancel, filesList, fromUpload, parentFolderId, }) {
31
31
  const { folderId, type } = useAppParams();
32
32
  const damConfig = useDamConfig();
33
33
  const externalTeams = (damConfig === null || damConfig === void 0 ? void 0 : damConfig.teams) || [];
34
34
  const { rootFolderId, brand } = damConfig;
35
35
  const brandId = get(brand, "_id");
36
+ // Use parentFolderId (current folder from selection) > folderId (from URL) > rootFolderId
37
+ const currentFolderId = parentFolderId || folderId || rootFolderId;
36
38
  const queryClient = useQueryClient();
37
39
  const [form] = Form.useForm();
38
40
  const api = useMemo(() => createApiClient(damConfig), [damConfig]);
@@ -92,7 +94,7 @@ function MapFile({ open, handleCancel, filesList, fromUpload, }) {
92
94
  mutationFn: updateFile,
93
95
  onSuccess: (response) => {
94
96
  invalidateData(queryClient, QueryKeys.FILE, get(file, "_id"));
95
- invalidateData(queryClient, generateFoldersQueryKey(type), folderId ? folderId : rootFolderId);
97
+ invalidateData(queryClient, generateFoldersQueryKey(type), currentFolderId);
96
98
  setState((prevState) => (Object.assign(Object.assign({}, prevState), { editTemplate: false, editForm: false })));
97
99
  showNotification(get(response, "data.message", UPDATE_SUCCESS), NotificationStatus.SUCCESS);
98
100
  },
@@ -115,7 +117,7 @@ function MapFile({ open, handleCancel, filesList, fromUpload, }) {
115
117
  const formattedValues = getFormattedMetadata(values);
116
118
  const expiryDate = values.expiryDate || null;
117
119
  delete values.expiryDate;
118
- const response = yield api.post(CREATE_FILE_URL, Object.assign(Object.assign({}, values), { folderId: folderId || rootFolderId, files: map(filesList, (file) => {
120
+ const response = yield api.post(CREATE_FILE_URL, Object.assign(Object.assign({}, values), { folderId: currentFolderId, files: map(filesList, (file) => {
119
121
  const fileData = {
120
122
  name: get(file, "name"),
121
123
  path: get(file, "filePath"),
@@ -136,8 +138,8 @@ function MapFile({ open, handleCancel, filesList, fromUpload, }) {
136
138
  showNotification(get(error, "message", SOMETHING_WENT_WRONG), NotificationStatus.ERROR);
137
139
  }
138
140
  finally {
139
- invalidateData(queryClient, QueryKeys.FILE, folderId || rootFolderId);
140
- invalidateData(queryClient, QueryKeys.FOLDERS, folderId || rootFolderId);
141
+ invalidateData(queryClient, QueryKeys.FILE, currentFolderId);
142
+ invalidateData(queryClient, QueryKeys.FOLDERS, currentFolderId);
141
143
  setState((prevState) => (Object.assign(Object.assign({}, prevState), { loading: false })));
142
144
  }
143
145
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bindu-dashing/dam-solution-v2",
3
- "version": "5.8.61",
3
+ "version": "5.8.64",
4
4
  "dependencies": {
5
5
  "@ant-design/icons": "^5.0.1",
6
6
  "@emoji-mart/data": "^1.2.1",