@muhgholy/next-drive 3.11.0 → 3.13.0
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.
- package/README.md +12 -16
- package/dist/client/context.d.ts +2 -0
- package/dist/client/context.d.ts.map +1 -1
- package/dist/client/file-chooser.d.ts.map +1 -1
- package/dist/client/index.cjs +17 -6
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.css +1 -59
- package/dist/client/index.css.map +1 -1
- package/dist/client/index.js +17 -6
- package/dist/client/index.js.map +1 -1
- package/package.json +8 -2
- package/dist/client/styles.css +0 -81
package/README.md
CHANGED
|
@@ -22,13 +22,12 @@ npm install @muhgholy/next-drive
|
|
|
22
22
|
|
|
23
23
|
### Requirements
|
|
24
24
|
|
|
25
|
-
| Dependency
|
|
26
|
-
|
|
|
27
|
-
| Next.js
|
|
28
|
-
| React
|
|
29
|
-
| Mongoose
|
|
30
|
-
|
|
|
31
|
-
| TypeScript | >= 5 |
|
|
25
|
+
| Dependency | Version |
|
|
26
|
+
| ---------- | ------- |
|
|
27
|
+
| Next.js | >= 14 |
|
|
28
|
+
| React | >= 18 |
|
|
29
|
+
| Mongoose | >= 7 |
|
|
30
|
+
| TypeScript | >= 5 |
|
|
32
31
|
|
|
33
32
|
**TypeScript Configuration:**
|
|
34
33
|
|
|
@@ -82,18 +81,15 @@ sudo apt install ffmpeg
|
|
|
82
81
|
# Download from https://ffmpeg.org and add to PATH
|
|
83
82
|
```
|
|
84
83
|
|
|
85
|
-
###
|
|
84
|
+
### Styles
|
|
86
85
|
|
|
87
|
-
|
|
86
|
+
Styles are **automatically injected** when you import components from `@muhgholy/next-drive/client`. No additional CSS import is required!
|
|
88
87
|
|
|
89
|
-
|
|
90
|
-
// tailwind.config.js
|
|
91
|
-
export default {
|
|
92
|
-
content: ["./app/**/*.{js,ts,jsx,tsx,mdx}", "./pages/**/*.{js,ts,jsx,tsx,mdx}", "./components/**/*.{js,ts,jsx,tsx,mdx}", "./node_modules/@muhgholy/next-drive/dist/**/*.{js,mjs}"],
|
|
93
|
-
};
|
|
94
|
-
```
|
|
88
|
+
If styles are not loading (e.g., with certain bundler configurations), you can manually import:
|
|
95
89
|
|
|
96
|
-
|
|
90
|
+
```tsx
|
|
91
|
+
import "@muhgholy/next-drive/client/styles.css";
|
|
92
|
+
```
|
|
97
93
|
|
|
98
94
|
---
|
|
99
95
|
|
package/dist/client/context.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export type TDriveContext = {
|
|
|
16
16
|
isLoading: boolean;
|
|
17
17
|
error: string | null;
|
|
18
18
|
fetchItems: () => Promise<void>;
|
|
19
|
+
triggerFetch: () => void;
|
|
19
20
|
accounts: {
|
|
20
21
|
id: string;
|
|
21
22
|
name: string;
|
|
@@ -88,6 +89,7 @@ export declare const DriveProvider: (props: Readonly<{
|
|
|
88
89
|
};
|
|
89
90
|
defaultSelectedFileIds?: string[];
|
|
90
91
|
withCredentials?: boolean;
|
|
92
|
+
lazyFetch?: boolean;
|
|
91
93
|
}>) => React.JSX.Element;
|
|
92
94
|
export declare const useDrive: () => TDriveContext;
|
|
93
95
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/client/context.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAoD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChG,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI3G,MAAM,MAAM,aAAa,GAAG;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/client/context.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAoD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChG,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI3G,MAAM,MAAM,aAAa,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IAGzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,gBAAgB,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7E,UAAU,EAAE,MAAM,IAAI,CAAC;IAGvB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACjE,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,YAAY,EAAE,MAAM,IAAI,CAAC;IAGzB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,EAAE,CAAC;IAC5E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,kBAAkB,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAGxC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAGlC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC3C,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC;IACpD,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;IAC/B,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,KAAK,IAAI,CAAC;IACnD,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,SAAS,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAG5D,aAAa,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3E,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAGnE,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAG9B,SAAS,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,aAAa,CAAC;QAAC,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE,KAAK,MAAM,CAAC;IAC3G,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,YAAY,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClG,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAG1H,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C,CAAC;AAKF,eAAO,MAAM,aAAa,GAAI,OAAO,QAAQ,CAAC;IAC1C,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,oBAAoB,CAAC,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnF,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC,sBAiYD,CAAC;AAGF,eAAO,MAAM,QAAQ,QAAO,aAI3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-chooser.d.ts","sourceRoot":"","sources":["../../src/client/file-chooser.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAuWjD,eAAO,MAAM,gBAAgB,GAAI,OAAO,QAAQ,CAAC;IAC7C,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC,
|
|
1
|
+
{"version":3,"file":"file-chooser.d.ts","sourceRoot":"","sources":["../../src/client/file-chooser.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAuWjD,eAAO,MAAM,gBAAgB,GAAI,OAAO,QAAQ,CAAC;IAC7C,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC,sBAgLD,CAAC"}
|
package/dist/client/index.cjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
require('./index.css');
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
var chunkXDAVDVO6_cjs = require('../chunk-XDAVDVO6.cjs');
|
|
@@ -51,8 +52,10 @@ var DriveProvider = (props) => {
|
|
|
51
52
|
initialActiveAccountId = null,
|
|
52
53
|
initialSelectionMode = { type: "SINGLE" },
|
|
53
54
|
defaultSelectedFileIds = [],
|
|
54
|
-
withCredentials = false
|
|
55
|
+
withCredentials = false,
|
|
56
|
+
lazyFetch = false
|
|
55
57
|
} = props;
|
|
58
|
+
const [hasFetched, setHasFetched] = React3__namespace.default.useState(!lazyFetch);
|
|
56
59
|
const [items, setItems] = React3.useState([]);
|
|
57
60
|
const [isLoading, setIsLoading] = React3.useState(false);
|
|
58
61
|
const [error, setError] = React3.useState(null);
|
|
@@ -235,14 +238,20 @@ var DriveProvider = (props) => {
|
|
|
235
238
|
if (stored) setActiveAccountIdState(stored);
|
|
236
239
|
}, []);
|
|
237
240
|
React3__namespace.default.useEffect(() => {
|
|
241
|
+
if (!hasFetched) return;
|
|
238
242
|
fetchItems();
|
|
239
|
-
}, [fetchItems]);
|
|
243
|
+
}, [fetchItems, hasFetched]);
|
|
240
244
|
React3__namespace.default.useEffect(() => {
|
|
245
|
+
if (!hasFetched) return;
|
|
241
246
|
refreshAccounts();
|
|
242
|
-
}, [refreshAccounts]);
|
|
247
|
+
}, [refreshAccounts, hasFetched]);
|
|
243
248
|
React3__namespace.default.useEffect(() => {
|
|
249
|
+
if (!hasFetched) return;
|
|
244
250
|
refreshQuota();
|
|
245
|
-
}, [refreshQuota, activeAccountId]);
|
|
251
|
+
}, [refreshQuota, activeAccountId, hasFetched]);
|
|
252
|
+
const triggerFetch = React3__namespace.default.useCallback(() => {
|
|
253
|
+
if (!hasFetched) setHasFetched(true);
|
|
254
|
+
}, [hasFetched]);
|
|
246
255
|
return /* @__PURE__ */ jsxRuntime.jsx(DriveContext.Provider, { value: {
|
|
247
256
|
apiEndpoint,
|
|
248
257
|
withCredentials,
|
|
@@ -257,6 +266,7 @@ var DriveProvider = (props) => {
|
|
|
257
266
|
isLoading,
|
|
258
267
|
error,
|
|
259
268
|
fetchItems,
|
|
269
|
+
triggerFetch,
|
|
260
270
|
// Accounts
|
|
261
271
|
accounts,
|
|
262
272
|
activeAccountId,
|
|
@@ -3050,15 +3060,16 @@ var DriveFileChooser = (props) => {
|
|
|
3050
3060
|
error,
|
|
3051
3061
|
helperText
|
|
3052
3062
|
} = props;
|
|
3053
|
-
const { items, selectedFileIds, setSelectedFileIds, createUrl } = useDrive();
|
|
3063
|
+
const { items, selectedFileIds, setSelectedFileIds, createUrl, triggerFetch } = useDrive();
|
|
3054
3064
|
const [isOpen, setIsOpen] = React3.useState(false);
|
|
3055
3065
|
React3.useEffect(() => {
|
|
3056
3066
|
if (isOpen) {
|
|
3067
|
+
triggerFetch();
|
|
3057
3068
|
if (!value) setSelectedFileIds([]);
|
|
3058
3069
|
else if (Array.isArray(value)) setSelectedFileIds(value.map((f) => f.id));
|
|
3059
3070
|
else setSelectedFileIds([value.id]);
|
|
3060
3071
|
}
|
|
3061
|
-
}, [isOpen, value, setSelectedFileIds]);
|
|
3072
|
+
}, [isOpen, value, setSelectedFileIds, triggerFetch]);
|
|
3062
3073
|
const handleConfirm = React3.useCallback(() => {
|
|
3063
3074
|
const selectedItems = items.filter((item) => selectedFileIds.includes(item.id));
|
|
3064
3075
|
const files = selectedItems.map((item) => ({
|