@bindu-dashing/dam-solution-v2 5.8.180 → 5.8.182
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.
|
@@ -72,33 +72,33 @@ function DriveContainer({ parentFolderId, setSelectedFile, setParentFolderId, pi
|
|
|
72
72
|
}
|
|
73
73
|
return params;
|
|
74
74
|
};
|
|
75
|
-
|
|
75
|
+
const effectiveFolderId = parentFolderId || folderId || id || rootFolderId || '';
|
|
76
|
+
const prevEffectiveFolderIdRef = useRef(null);
|
|
77
|
+
const folderIdChanged = prevEffectiveFolderIdRef.current !== null &&
|
|
78
|
+
prevEffectiveFolderIdRef.current !== effectiveFolderId;
|
|
79
|
+
prevEffectiveFolderIdRef.current = effectiveFolderId;
|
|
76
80
|
const folderParams = merge({}, Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ page: DEFAULT_PAGE }, (type ? { category: type } : {})), (!!imagePicker
|
|
77
81
|
? {
|
|
78
82
|
includeSubFolders: get(imagePicker, "includeSubFolders", true),
|
|
79
83
|
teamVisibility: get(imagePicker, "teamVisibility", true),
|
|
80
84
|
}
|
|
81
|
-
: {})), (!!searchKey && !!searchValue ? getSearchParams() : {})), (!!metadataKey && !!metadataValue
|
|
85
|
+
: {})), (!folderIdChanged && !!searchKey && !!searchValue ? getSearchParams() : {})), (!folderIdChanged && !!metadataKey && !!metadataValue
|
|
82
86
|
? { metadataKey: metadataKey, metadataValue: metadataValue }
|
|
83
|
-
: {})), (!!folderSearch ? { name: folderSearch } : {})), (!!globalSearch && ((parentFolderId || folderId || id) === rootFolderId || !(parentFolderId || folderId || id))
|
|
87
|
+
: {})), (!folderIdChanged && !!folderSearch ? { name: folderSearch } : {})), (!folderIdChanged && !!globalSearch && ((parentFolderId || folderId || id) === rootFolderId || !(parentFolderId || folderId || id))
|
|
84
88
|
? { globalSearch }
|
|
85
|
-
: {})), { sortBy: sortBy, sortOrder: sortOrder }), Object.assign(Object.assign({}, (selectedDateKey === "custom" && customDateRange && customDateRange[0] && customDateRange[1]
|
|
89
|
+
: {})), { sortBy: sortBy, sortOrder: sortOrder }), Object.assign(Object.assign({}, (!folderIdChanged && selectedDateKey === "custom" && customDateRange && customDateRange[0] && customDateRange[1]
|
|
86
90
|
? {
|
|
87
91
|
startDate: dayjs(customDateRange[0]).format(DATE_FORMAT),
|
|
88
92
|
endDate: dayjs(customDateRange[1]).format(DATE_FORMAT),
|
|
89
93
|
}
|
|
90
|
-
: getDateRangeFromKey(selectedDateKey))), (!!selectedType ? { type: selectedType } : {})));
|
|
91
|
-
const effectiveFolderId = parentFolderId || folderId || id || rootFolderId || '';
|
|
92
|
-
const prevEffectiveFolderIdRef = useRef(null);
|
|
94
|
+
: folderIdChanged ? {} : getDateRangeFromKey(selectedDateKey))), (!folderIdChanged && !!selectedType ? { type: selectedType } : {})));
|
|
93
95
|
useEffect(() => {
|
|
94
|
-
|
|
95
|
-
prevEffectiveFolderIdRef.current = effectiveFolderId;
|
|
96
|
-
if (prev != null && prev !== effectiveFolderId) {
|
|
96
|
+
if (folderIdChanged) {
|
|
97
97
|
setState((prevState) => (Object.assign(Object.assign({}, prevState), { selectedType: "", selectedDateKey: "", customDateRange: null, searchKey: "", searchValue: "", metadataKey: "", metadataValue: "", folderSearch: "" })));
|
|
98
98
|
if (setGlobalSearch)
|
|
99
99
|
setGlobalSearch("");
|
|
100
100
|
}
|
|
101
|
-
}, [effectiveFolderId, setGlobalSearch]);
|
|
101
|
+
}, [effectiveFolderId, folderIdChanged, setGlobalSearch]);
|
|
102
102
|
const { data: foldersPaginatedData, isLoading, hasNextPage, fetchNextPage, refetch, isFetching, error, } = useFolders(api, generateFoldersQueryKey(type), folderParams, effectiveFolderId);
|
|
103
103
|
useEffect(() => {
|
|
104
104
|
if (typeof window !== "undefined") {
|
|
@@ -31,6 +31,7 @@ const FileDetails = ({ open, handleClose, file, files, fileIds, onCloseSelection
|
|
|
31
31
|
console.log("## FileDetails - files:", files, "file:", file, "initialFile:", initialFile, "fileIds:", fileIds, "initialFileId:", initialFileId);
|
|
32
32
|
const { id } = useAppParams();
|
|
33
33
|
const damConfig = useDamConfig();
|
|
34
|
+
const headerHeight = get(damConfig, "headerHeight", 0) || 0;
|
|
34
35
|
const api = useMemo(() => createApiClient(damConfig), [damConfig]);
|
|
35
36
|
const [state, setState] = useState({
|
|
36
37
|
visible: false,
|
|
@@ -108,18 +109,34 @@ const FileDetails = ({ open, handleClose, file, files, fileIds, onCloseSelection
|
|
|
108
109
|
setState((prevState) => (Object.assign(Object.assign({}, prevState), { visible: false })));
|
|
109
110
|
}
|
|
110
111
|
}, [open]);
|
|
112
|
+
// Lock body scroll when preview modal is open so drive page files don't scroll behind it
|
|
113
|
+
useEffect(() => {
|
|
114
|
+
if (open && visible) {
|
|
115
|
+
const prevBodyOverflow = document.body.style.overflow;
|
|
116
|
+
const prevHtmlOverflow = document.documentElement.style.overflow;
|
|
117
|
+
document.body.style.overflow = "hidden";
|
|
118
|
+
document.documentElement.style.overflow = "hidden";
|
|
119
|
+
return () => {
|
|
120
|
+
document.body.style.overflow = prevBodyOverflow;
|
|
121
|
+
document.documentElement.style.overflow = prevHtmlOverflow;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
}, [open, visible]);
|
|
111
125
|
if (!open && !visible)
|
|
112
126
|
return null;
|
|
113
|
-
const
|
|
127
|
+
const modalStyle = headerHeight > 0
|
|
128
|
+
? { top: headerHeight, left: 0, right: 0, bottom: 0, height: `calc(100vh - ${headerHeight}px)` }
|
|
129
|
+
: undefined;
|
|
130
|
+
const modalContent = (_jsxs("div", { className: `md-lib-fixed md-lib-z-[1000] md-lib-w-screen md-lib-bg-white dark:md-lib-bg-darkPrimary md-lib-text-black dark:md-lib-text-white md-lib-flex md-lib-flex-col md-lib-transform md-lib-transition-all md-lib-duration-300 md-lib-ease-in-out ${headerHeight === 0 ? "md-lib-inset-0 md-lib-h-screen" : ""} ${open && visible
|
|
114
131
|
? "md-lib-opacity-100 md-lib-translate-y-0"
|
|
115
|
-
: "md-lib-opacity-0 md-lib-translate-y-4"}`, onTransitionEnd: () => {
|
|
132
|
+
: "md-lib-opacity-0 md-lib-translate-y-4"}`, style: modalStyle, onTransitionEnd: () => {
|
|
116
133
|
if (!open)
|
|
117
134
|
setState((prevState) => (Object.assign(Object.assign({}, prevState), { visible: false })));
|
|
118
|
-
}, children: [_jsx(FileDetailsHeader, { handleClose: handleClose, file: currentFile, onCloseSelection: onCloseSelection }), isFetching ? (_jsx(Loader, {})) : (_jsx(FileViewer, { file: currentFile, hasPrev: (!!files && currentIndex > 0) ||
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
135
|
+
}, children: [_jsx("div", { className: "md-lib-shrink-0", children: _jsx(FileDetailsHeader, { handleClose: handleClose, file: currentFile, onCloseSelection: onCloseSelection }) }), _jsx("div", { className: "md-lib-flex-1 md-lib-min-h-0 md-lib-overflow-auto", children: isFetching ? (_jsx(Loader, {})) : (_jsx(FileViewer, { file: currentFile, hasPrev: (!!files && currentIndex > 0) ||
|
|
136
|
+
(!!fileIds && fileIds.length > 1 && currentIndex > 0) ||
|
|
137
|
+
!!get(currentFile, "prevFileId"), hasNext: (!!files && currentIndex < get(files, "length", 0) - 1) ||
|
|
138
|
+
(!!fileIds && fileIds.length > 1 && currentIndex < fileIds.length - 1) ||
|
|
139
|
+
!!get(currentFile, "nextFileId"), onPrev: handlePrevious, onNext: handleNext, handleClose: handleClose })) })] }));
|
|
123
140
|
return ReactDOM.createPortal(modalContent, document.body);
|
|
124
141
|
};
|
|
125
142
|
export default FileDetails;
|
package/build/MyDrive/index.d.ts
CHANGED
|
@@ -12,5 +12,7 @@ declare function App(props: {
|
|
|
12
12
|
showSubfolders?: boolean;
|
|
13
13
|
userEmail?: string;
|
|
14
14
|
onFolderChange?: (folderId: string) => void;
|
|
15
|
+
/** Height of host app header (e.g. navbar) in px. When set, preview modal positions below it instead of covering. */
|
|
16
|
+
headerHeight?: number;
|
|
15
17
|
}): JSX.Element;
|
|
16
18
|
export default App;
|
package/build/MyDrive/index.js
CHANGED
|
@@ -23,6 +23,7 @@ function App(props) {
|
|
|
23
23
|
parentId: props === null || props === void 0 ? void 0 : props.parentId,
|
|
24
24
|
showSubfolders: props === null || props === void 0 ? void 0 : props.showSubfolders,
|
|
25
25
|
routerVersion: props === null || props === void 0 ? void 0 : props.routerVersion,
|
|
26
|
+
headerHeight: props === null || props === void 0 ? void 0 : props.headerHeight,
|
|
26
27
|
}), [
|
|
27
28
|
props === null || props === void 0 ? void 0 : props.accessKey,
|
|
28
29
|
props === null || props === void 0 ? void 0 : props.secretKey,
|
|
@@ -35,6 +36,7 @@ function App(props) {
|
|
|
35
36
|
props === null || props === void 0 ? void 0 : props.id,
|
|
36
37
|
props === null || props === void 0 ? void 0 : props.parentId,
|
|
37
38
|
props === null || props === void 0 ? void 0 : props.showSubfolders,
|
|
39
|
+
props === null || props === void 0 ? void 0 : props.headerHeight,
|
|
38
40
|
]);
|
|
39
41
|
const [folders, setFolders] = useState([]);
|
|
40
42
|
if (typeof window !== "undefined" && !window.process) {
|
|
@@ -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, headerHeight } = config;
|
|
23
23
|
const [accessToken, setAccessToken] = useState(null);
|
|
24
24
|
const [user, setDamUser] = useState(null);
|
|
25
25
|
const [brand, setBrand] = useState(null);
|
|
@@ -148,6 +148,7 @@ export const DamConfigProvider = ({ children, config }) => {
|
|
|
148
148
|
rootFolderId,
|
|
149
149
|
teams,
|
|
150
150
|
isAdmin,
|
|
151
|
+
headerHeight: headerHeight !== null && headerHeight !== void 0 ? headerHeight : 0,
|
|
151
152
|
}, children: loading ? (_jsx(Loader, {})) : (_jsx(_Fragment, { children: showPaymentErr ? (_jsx("div", { className: "flex items-center justify-center h-[calc(100vh-200px)]", children: _jsx("p", { className: "text-sm font-medium text-textColor dark:text-darkTextColor", children: SUBSCRIPTION_EXPIRED_ERROR_MESSAGE }) })) : (children) })) }));
|
|
152
153
|
};
|
|
153
154
|
export const useDamConfig = () => useContext(DamConfigContext);
|