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

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.
@@ -271,7 +271,7 @@ function DriveContainer({ parentFolderId, setSelectedFile, setParentFolderId, pi
271
271
  }, children: "Clear Filters" }))] })) : (_jsx("div", { className: "md-lib-p-4 md-lib-max-h-[calc(100%-161px)] md-lib-overflow-x-auto", children: state.showGrid ? (_jsx(FolderGridView, { folders: filter(folders, (item) => get(item, "type") !== EntityType.FILE), files: _.filter(folders, (item) => get(item, "type") === EntityType.FILE), foldersFetching: isFetching, hasNextPage: !!hasNextPage, fetchNextPage: fetchNextPage, selectedFolderIds: get(selectedItems, "folderIds", []), selectedFileIds: get(selectedItems, "fileIds", []), setSelectedItems: (updateFnOrValue = {}) => setState((prevState) => {
272
272
  const prevSelected = prevState.selectedItems;
273
273
  return Object.assign(Object.assign({}, prevState), { selectedItems: Object.assign(Object.assign({}, prevSelected), updateFnOrValue) });
274
- }), isImagePicker: !!pickerFolderId, setSelectedFile: setSelectedFile, setParentFolderId: setParentFolderId, selectedPickerFile: selectedPickerFile, sortBy: sortBy, sortOrder: sortOrder, setSortOrders: (newSortBy, newSortOrder) => setState((prev) => (Object.assign(Object.assign({}, prev), { sortBy: newSortBy, sortOrder: newSortOrder }))) })) : (_jsx(FolderListView, { folders: folders, foldersFetching: isFetching, hasNextPage: !!hasNextPage, fetchNextPage: fetchNextPage, selectedFolderIds: get(selectedItems, "folderIds", []), selectedFileIds: get(selectedItems, "fileIds", []), setSelectedItems: (updateFnOrValue = {}) => setState((prevState) => {
274
+ }), isImagePicker: !!pickerFolderId, setSelectedFile: setSelectedFile, setParentFolderId: setParentFolderId, selectedPickerFile: selectedPickerFile, sortBy: sortBy, sortOrder: sortOrder, setSortOrders: (newSortBy, newSortOrder) => setState((prev) => (Object.assign(Object.assign({}, prev), { sortBy: newSortBy, sortOrder: newSortOrder }))), setSelectedKeys: setSelectedKeys })) : (_jsx(FolderListView, { folders: folders, foldersFetching: isFetching, hasNextPage: !!hasNextPage, fetchNextPage: fetchNextPage, selectedFolderIds: get(selectedItems, "folderIds", []), selectedFileIds: get(selectedItems, "fileIds", []), setSelectedItems: (updateFnOrValue = {}) => setState((prevState) => {
275
275
  const prevSelected = prevState.selectedItems;
276
276
  return Object.assign(Object.assign({}, prevState), { selectedItems: Object.assign(Object.assign({}, prevSelected), updateFnOrValue) });
277
277
  }), isImagePicker: !!pickerFolderId, setSelectedFile: setSelectedFile, setParentFolderId: setParentFolderId, selectedPickerFile: selectedPickerFile, location: get(parentFolder, "name"), assets: assets, sortByKey: sortBy, sortOrder: sortOrder, setSortOrders: (newSortBy, newSortOrder) => setState((prev) => (Object.assign(Object.assign({}, prev), { sortBy: newSortBy, sortOrder: newSortOrder }))), onSearch: onSearch, searchKey: searchKey, searchValue: searchValue, metadataKey: metadataKey, metadataValue: metadataValue, setSelectedKeys: setSelectedKeys })) }))] }));
@@ -1,5 +1,5 @@
1
1
  import { FileEntity, FolderEntity, SortByKeys, SortOrders } from "../utilities/constants/interface";
2
- declare const FolderGridView: ({ folders, foldersFetching, hasNextPage, fetchNextPage, files, selectedFileIds, selectedFolderIds, setSelectedItems, isImagePicker, setSelectedFile, setParentFolderId, selectedPickerFile, sortBy, sortOrder, setSortOrders, }: {
2
+ declare const FolderGridView: ({ folders, foldersFetching, hasNextPage, fetchNextPage, files, selectedFileIds, selectedFolderIds, setSelectedItems, isImagePicker, setSelectedFile, setParentFolderId, selectedPickerFile, sortBy, sortOrder, setSortOrders, setSelectedKeys, }: {
3
3
  folders: FolderEntity[];
4
4
  foldersFetching: boolean;
5
5
  hasNextPage: boolean;
@@ -15,5 +15,6 @@ declare const FolderGridView: ({ folders, foldersFetching, hasNextPage, fetchNex
15
15
  sortBy: SortByKeys;
16
16
  sortOrder: SortOrders;
17
17
  setSortOrders: (newSortBy: SortByKeys, newSortOrder: SortOrders) => void;
18
+ setSelectedKeys?: (keys: string | string[]) => void;
18
19
  }) => JSX.Element;
19
20
  export default FolderGridView;
@@ -4,7 +4,7 @@ import _, { filter, get, includes } from "lodash";
4
4
  import { FaFolder, FaSort } from "react-icons/fa";
5
5
  import LoadMoreItems from "../common/LoadMoreItems";
6
6
  import FolderMenuOptions from "./FolderMenuOptions";
7
- import { FETCH_ENTITY_SCREEN, SUBFOLDERS_SCREEN, } from "../utilities/constants/routes";
7
+ import { FETCH_ENTITY_SCREEN, } from "../utilities/constants/routes";
8
8
  import FilesGridView from "./FilesGridView";
9
9
  import { useRef, useState } from "react";
10
10
  import ActionsBar from "./ActionBar";
@@ -14,7 +14,7 @@ import useAppParams from "../utilities/useAppParams";
14
14
  import { ArrowDownOutlined, ArrowUpOutlined } from "@ant-design/icons";
15
15
  const FaFolderIcon = FaFolder;
16
16
  const FaSortIcon = FaSort;
17
- const FolderGridView = ({ folders, foldersFetching, hasNextPage, fetchNextPage, files, selectedFileIds, selectedFolderIds, setSelectedItems, isImagePicker, setSelectedFile, setParentFolderId, selectedPickerFile, sortBy, sortOrder, setSortOrders, }) => {
17
+ const FolderGridView = ({ folders, foldersFetching, hasNextPage, fetchNextPage, files, selectedFileIds, selectedFolderIds, setSelectedItems, isImagePicker, setSelectedFile, setParentFolderId, selectedPickerFile, sortBy, sortOrder, setSortOrders, setSelectedKeys, }) => {
18
18
  const navigate = useAppNavigate();
19
19
  const [state, setState] = useState({
20
20
  selectedFile: {},
@@ -23,6 +23,7 @@ const FolderGridView = ({ folders, foldersFetching, hasNextPage, fetchNextPage,
23
23
  const { showPreviewModal, selectedFile } = state;
24
24
  const { type } = useAppParams();
25
25
  const clickTimer = useRef(null);
26
+ const lastClickedId = useRef(null);
26
27
  const handleClick = (folder) => {
27
28
  const id = get(folder, "_id");
28
29
  const fileType = get(folder, "type", EntityType.FOLDER);
@@ -40,18 +41,36 @@ const FolderGridView = ({ folders, foldersFetching, hasNextPage, fetchNextPage,
40
41
  }
41
42
  }
42
43
  else {
43
- if (clickTimer.current) {
44
- clearTimeout(clickTimer.current);
44
+ // Check if this is a double click (same item clicked within timer window)
45
+ const isDoubleClick = clickTimer.current !== null && lastClickedId.current === id;
46
+ if (isDoubleClick) {
47
+ // Double click detected - clear timer and handle double click action
48
+ if (clickTimer.current) {
49
+ clearTimeout(clickTimer.current);
50
+ }
45
51
  clickTimer.current = null;
46
- if (fileType === EntityType.FOLDER && navigate) {
47
- navigate(SUBFOLDERS_SCREEN.replace(":folderId", id));
52
+ lastClickedId.current = null;
53
+ if (fileType === EntityType.FOLDER) {
54
+ // Double click on folder: update tree selection (similar to FolderTree's handleSelect)
55
+ // This will automatically update the DriveContainer to show the folder's contents
56
+ if (setSelectedKeys) {
57
+ setSelectedKeys(id);
58
+ }
48
59
  }
49
- if (fileType === EntityType.FILE && type !== DriveModes.TRASH) {
60
+ else if (fileType === EntityType.FILE && type !== DriveModes.TRASH) {
61
+ // Double click on file: show preview
50
62
  setState((prevState) => (Object.assign(Object.assign({}, prevState), { selectedFile: folder, showPreviewModal: true })));
51
63
  }
52
64
  return;
53
65
  }
66
+ // Single click - set timer for selection
67
+ if (clickTimer.current) {
68
+ // Different item clicked, clear previous timer
69
+ clearTimeout(clickTimer.current);
70
+ }
71
+ lastClickedId.current = id;
54
72
  clickTimer.current = setTimeout(() => {
73
+ // Single click action: toggle selection
55
74
  if (fileType === EntityType.FILE) {
56
75
  const alreadySelected = includes(selectedFileIds, id);
57
76
  setSelectedItems({
@@ -69,6 +88,7 @@ const FolderGridView = ({ folders, foldersFetching, hasNextPage, fetchNextPage,
69
88
  });
70
89
  }
71
90
  clickTimer.current = null;
91
+ lastClickedId.current = null;
72
92
  }, 250);
73
93
  }
74
94
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bindu-dashing/dam-solution-v2",
3
- "version": "5.8.59",
3
+ "version": "5.8.61",
4
4
  "dependencies": {
5
5
  "@ant-design/icons": "^5.0.1",
6
6
  "@emoji-mart/data": "^1.2.1",