@bindu-dashing/dam-solution-v2 5.8.13 → 5.8.15

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.
@@ -105,6 +105,7 @@ function FolderTree({ currentRootId, expandedKeys, selectedKeys, handleExpand, s
105
105
  });
106
106
  const response = yield api.get(`${FETCH_FOLDER_URL.replace(":folderId", fid)}?isPagination=false&includeFiles=false&includeSubFoldersCount=true&fetchMainFolders=true&globalSearch=${fid == rootFolderId ? globalSearch : ""}`);
107
107
  const newFolders = get(response, "data.folders", []);
108
+ console.log('## newFolders', newFolders);
108
109
  if (fid === rootFolderId) {
109
110
  setFolders(sortFoldersRecursively(newFolders, "name", sortOrder));
110
111
  }
@@ -159,6 +160,7 @@ function FolderTree({ currentRootId, expandedKeys, selectedKeys, handleExpand, s
159
160
  const toggleEditModal = (folder = {}) => setState((prev) => (Object.assign(Object.assign({}, prev), { selectedFolder: folder, showEditModal: !prev.showEditModal })));
160
161
  const toggleDeleteModal = (folder = {}) => setState((prev) => (Object.assign(Object.assign({}, prev), { selectedFolder: folder, showConfirmationModal: !prev.showConfirmationModal })));
161
162
  const getFoldersTree = (folders = []) => {
163
+ console.log('## folders', folders);
162
164
  const transform = (tree = []) => map(tree, (folder) => {
163
165
  const key = get(folder, "_id", "");
164
166
  const name = get(folder, "name", "");
@@ -319,6 +321,7 @@ function FolderTree({ currentRootId, expandedKeys, selectedKeys, handleExpand, s
319
321
  return Object.assign(Object.assign({}, prevState), { tempFolders: cloneDeep(customSorted), sortMode: "custom", enableDrag: false });
320
322
  });
321
323
  };
324
+ console.log('## folders in FolderTree', tempFolders, folders);
322
325
  return (_jsxs(_Fragment, { children: [!screens.md && collapse && (_jsxs("div", { className: `md-lib-bg-textColorActive dark:md-lib-bg-darkSecondaryColor md-lib-p-1 md-lib-rounded md-lib-absolute md-lib-top-16 md-lib-left-1`, children: [" ", _jsx(FaAngleRightbtn, { size: 24, className: "md-lib-text-textColor dark:md-lib-text-darkTextColor", onClick: toggleMenu })] })), _jsxs("div", { className: `md-lib-border-r md-lib-inline-table md-lib-border-borderColor dark:md-lib-border-darkBorderColor md-lib-bg-white dark:md-lib-bg-darkPrimaryHoverColor md-lib-px-2 md-lib-pt-1 md-lib-max-h-[calc(100%-76px)] md-lib-overflow-x-auto ${!screens.md &&
323
326
  "md-lib-absolute md-lib-left-0 md-lib-z-30 md-lib-h-full"} ${!screens.md && collapse && "!-md-lib-left-full"}`, children: [!screens.md && !collapse && (_jsxs("div", { className: `md-lib-bg-textColorActive dark:md-lib-bg-darkSecondaryColor md-lib-p-1 md-lib-rounded md-lib-absolute md-lib-top-1 md-lib-right-1 md-lib-z-50`, children: [" ", _jsx(FaAngleLeftbtn, { size: 24, className: "md-lib-text-textColor dark:md-lib-text-darkTextColor", onClick: toggleMenu })] })), _jsx("div", { className: "md-lib-mb-2", children: _jsx(Input, { placeholder: "Search files (min. 2 characters required)", onChange: (e) => setState((prevState) => {
324
327
  return Object.assign(Object.assign({}, prevState), { globalSearchValue: e.target.value });
@@ -7,23 +7,19 @@ import DriveContainer from "./DriveContainer";
7
7
  import useAppParams from "../utilities/useAppParams";
8
8
  import { FoldersProvider } from "../utilities/FoldersContext";
9
9
  export default function MyDriveMainContainer({ folders, setFolders }) {
10
- console.log('## MyDriveMainContainer props', folders, setFolders);
11
10
  const damConfig = useDamConfig();
12
11
  const { rootFolderId, brand, isAdmin } = damConfig;
13
12
  const params = useAppParams();
14
- console.log('## all props', params, rootFolderId);
13
+ console.log('## all params from useAppParams', params);
15
14
  const [selectedKeys, setSelectedKeys] = useState([]);
16
15
  const [expandedKeys, setExpandedKeys] = useState([]);
17
16
  const [globalSearch, setGlobalSearch] = useState("");
18
17
  useEffect(() => {
18
+ // Priority: URL params > Props from ParamsProvider > rootFolderId from config
19
19
  if (params === null || params === void 0 ? void 0 : params.folderId) {
20
20
  setSelectedKeys(params.folderId);
21
21
  }
22
- else if (rootFolderId && !(params === null || params === void 0 ? void 0 : params.folderId)) {
23
- // If no URL param but rootFolderId is set (from props), use it
24
- setSelectedKeys(rootFolderId);
25
- }
26
- }, [params === null || params === void 0 ? void 0 : params.folderId, rootFolderId]);
22
+ }, [params === null || params === void 0 ? void 0 : params.folderId, params === null || params === void 0 ? void 0 : params.id, params === null || params === void 0 ? void 0 : params.parentId, rootFolderId]);
27
23
  const currentRootId = isArray(selectedKeys)
28
24
  ? selectedKeys.length
29
25
  ? selectedKeys[selectedKeys.length - 1]
@@ -9,6 +9,7 @@ import { useMemo, useState } from "react";
9
9
  import process from "process";
10
10
  import { ParamsProvider } from "../utilities/useAppParams";
11
11
  function App(props) {
12
+ var _a;
12
13
  console.log('## receiver props', props);
13
14
  const config = useMemo(() => ({
14
15
  damAccessKey: props === null || props === void 0 ? void 0 : props.accessKey,
@@ -17,7 +18,11 @@ function App(props) {
17
18
  teamIds: props === null || props === void 0 ? void 0 : props.teamIds,
18
19
  styles: props === null || props === void 0 ? void 0 : props.styles,
19
20
  appType: props === null || props === void 0 ? void 0 : props.appType,
20
- initialRootFolderId: (props === null || props === void 0 ? void 0 : props.folderId) || (props === null || props === void 0 ? void 0 : props.id) || (props === null || props === void 0 ? void 0 : props.parentId),
21
+ folderId: props === null || props === void 0 ? void 0 : props.folderId,
22
+ id: props === null || props === void 0 ? void 0 : props.id,
23
+ parentId: props === null || props === void 0 ? void 0 : props.parentId,
24
+ showSubfolders: props === null || props === void 0 ? void 0 : props.showSubfolders,
25
+ routerVersion: props === null || props === void 0 ? void 0 : props.routerVersion,
21
26
  }), [
22
27
  props === null || props === void 0 ? void 0 : props.accessKey,
23
28
  props === null || props === void 0 ? void 0 : props.secretKey,
@@ -29,11 +34,18 @@ function App(props) {
29
34
  props === null || props === void 0 ? void 0 : props.folderId,
30
35
  props === null || props === void 0 ? void 0 : props.id,
31
36
  props === null || props === void 0 ? void 0 : props.parentId,
37
+ props === null || props === void 0 ? void 0 : props.showSubfolders,
38
+ props === null || props === void 0 ? void 0 : props.routerVersion,
32
39
  ]);
33
40
  const [folders, setFolders] = useState([]);
34
41
  if (typeof window !== "undefined" && !window.process) {
35
42
  window.process = process;
36
43
  }
37
- return (_jsx(AppProvider, { children: _jsx(DamConfigProvider, { config: config, children: _jsxs(ThemeProvider, { styles: props === null || props === void 0 ? void 0 : props.styles, sessionTheme: ThemeModes.LIGHT, children: [_jsxs("div", { className: "md-lib-grid md:md-lib-grid-cols-[auto,1fr] md-lib-h-[inherit]", children: [" ", _jsx(ParamsProvider, { children: _jsx(AppRoutes, { setFolders: setFolders, folders: folders, routerVersion: (props === null || props === void 0 ? void 0 : props.routerVersion) || 6 }) })] }), _jsx(ToastProvider, {})] }) }) }));
44
+ return (_jsx(AppProvider, { children: _jsx(DamConfigProvider, { config: config, children: _jsxs(ThemeProvider, { styles: props === null || props === void 0 ? void 0 : props.styles, sessionTheme: ThemeModes.LIGHT, children: [_jsxs("div", { className: "md-lib-grid md:md-lib-grid-cols-[auto,1fr] md-lib-h-[inherit]", children: [" ", _jsx(ParamsProvider, { initialParams: {
45
+ folderId: props === null || props === void 0 ? void 0 : props.folderId,
46
+ id: props === null || props === void 0 ? void 0 : props.id,
47
+ parentId: props === null || props === void 0 ? void 0 : props.parentId,
48
+ showSubfolders: (_a = props === null || props === void 0 ? void 0 : props.showSubfolders) === null || _a === void 0 ? void 0 : _a.toString(),
49
+ }, children: _jsx(AppRoutes, { setFolders: setFolders, folders: folders, routerVersion: (props === null || props === void 0 ? void 0 : props.routerVersion) || 6 }) })] }), _jsx(ToastProvider, {})] }) }) }));
38
50
  }
39
51
  export default App;
@@ -19,7 +19,7 @@ import { SUBSCRIPTION_EXPIRED_ERROR_MESSAGE } from "./appConstants";
19
19
  const DamConfigContext = createContext(null);
20
20
  export const DamConfigProvider = ({ children, config }) => {
21
21
  // console.log(config);
22
- const { damAccessKey, secretKey, subdomain, teamIds, appType, initialRootFolderId } = config;
22
+ const { damAccessKey, secretKey, subdomain, teamIds, appType, initialRootFolderId, folderId, id, parentId, showSubfolders, routerVersion } = config;
23
23
  const [accessToken, setAccessToken] = useState(null);
24
24
  const [user, setDamUser] = useState(null);
25
25
  const [brand, setBrand] = useState(null);
@@ -1,6 +1,8 @@
1
1
  import * as React from "react";
2
- export declare let ParamsProvider: React.FC<{
2
+ type ParamsProviderProps = {
3
3
  children: React.ReactNode;
4
- }>;
4
+ initialParams?: Record<string, string | undefined>;
5
+ };
6
+ export declare let ParamsProvider: React.FC<ParamsProviderProps>;
5
7
  declare let useAppParams: () => Record<string, string>;
6
8
  export default useAppParams;
@@ -1,22 +1,67 @@
1
- import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  // src/utils/useAppParams.tsx
3
3
  import * as React from "react";
4
- // Declare this always so TS doesnt complain
4
+ // Declare this always so TS doesn't complain
5
5
  const ParamsContext = React.createContext({});
6
- export let ParamsProvider = ({ children, }) => _jsx(_Fragment, { children: children });
6
+ // Helper to filter out undefined values
7
+ const filterUndefined = (params) => {
8
+ const filtered = {};
9
+ Object.keys(params).forEach((key) => {
10
+ if (params[key] !== undefined) {
11
+ filtered[key] = params[key];
12
+ }
13
+ });
14
+ return filtered;
15
+ };
16
+ // Wrapper component for v6/v5.1+ that merges URL params with initial params
17
+ const ParamsMerger = ({ children, initialParams }) => {
18
+ try {
19
+ const rrd = require("react-router-dom");
20
+ if (rrd.useParams) {
21
+ const urlParams = rrd.useParams();
22
+ const mergedParams = React.useMemo(() => (Object.assign(Object.assign({}, filterUndefined(initialParams)), urlParams)), [urlParams, initialParams]);
23
+ return (_jsx(ParamsContext.Provider, { value: mergedParams, children: children }));
24
+ }
25
+ }
26
+ catch (_a) {
27
+ // Fallback if useParams not available
28
+ }
29
+ // Fallback: just use initial params (filtered)
30
+ return (_jsx(ParamsContext.Provider, { value: filterUndefined(initialParams), children: children }));
31
+ };
32
+ export let ParamsProvider = ({ children, initialParams = {}, }) => {
33
+ // For v6/v5.1+, use the merger component
34
+ try {
35
+ const rrd = require("react-router-dom");
36
+ if (rrd.useParams) {
37
+ // ✅ v6 or v5.1+ - Use merger component
38
+ return _jsx(ParamsMerger, { initialParams: initialParams, children: children });
39
+ }
40
+ else {
41
+ // ✅ v4 fallback
42
+ const { Route } = rrd;
43
+ return (_jsx(Route, { path: "*", render: ({ match }) => {
44
+ const urlParams = match ? match.params : {};
45
+ const mergedParams = Object.assign(Object.assign({}, filterUndefined(initialParams)), urlParams);
46
+ return (_jsx(ParamsContext.Provider, { value: mergedParams, children: children }));
47
+ } }));
48
+ }
49
+ }
50
+ catch (_a) {
51
+ // if require fails for some reason, just use initial params (filtered)
52
+ return (_jsx(ParamsContext.Provider, { value: filterUndefined(initialParams), children: children }));
53
+ }
54
+ };
7
55
  let useAppParams;
8
56
  // Dynamically detect router version
9
57
  try {
10
58
  const rrd = require("react-router-dom");
11
59
  if (rrd.useParams) {
12
- // ✅ v6 or v5.1+
13
- const { useParams } = rrd;
14
- useAppParams = () => useParams();
60
+ // ✅ v6 or v5.1+ - Use context which now has merged params
61
+ useAppParams = () => React.useContext(ParamsContext);
15
62
  }
16
63
  else {
17
- // ✅ v4 fallback
18
- const { Route } = rrd;
19
- ParamsProvider = ({ children }) => (_jsx(Route, { path: "*", render: ({ match }) => (_jsx(ParamsContext.Provider, { value: match ? match.params : {}, children: children })) }));
64
+ // ✅ v4 fallback - Use context
20
65
  useAppParams = () => React.useContext(ParamsContext);
21
66
  }
22
67
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bindu-dashing/dam-solution-v2",
3
- "version": "5.8.13",
3
+ "version": "5.8.15",
4
4
  "dependencies": {
5
5
  "@ant-design/icons": "^5.0.1",
6
6
  "@emoji-mart/data": "^1.2.1",