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

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.
@@ -7,23 +7,29 @@ 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
22
+ else if (params === null || params === void 0 ? void 0 : params.id) {
23
+ setSelectedKeys(params.id);
24
+ }
25
+ else if (params === null || params === void 0 ? void 0 : params.parentId) {
26
+ setSelectedKeys(params.parentId);
27
+ }
28
+ else if (rootFolderId) {
29
+ // Fallback to rootFolderId from config
24
30
  setSelectedKeys(rootFolderId);
25
31
  }
26
- }, [params === null || params === void 0 ? void 0 : params.folderId, rootFolderId]);
32
+ }, [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
33
  const currentRootId = isArray(selectedKeys)
28
34
  ? selectedKeys.length
29
35
  ? 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.14",
4
4
  "dependencies": {
5
5
  "@ant-design/icons": "^5.0.1",
6
6
  "@emoji-mart/data": "^1.2.1",