@useupup/react 3.3.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/LICENSE +21 -0
- package/README.md +72 -0
- package/dist/AudioUploader-2WITC5YR.js +298 -0
- package/dist/AudioUploader-2WITC5YR.js.map +1 -0
- package/dist/AudioUploader-HWP4U6UJ.cjs +298 -0
- package/dist/AudioUploader-HWP4U6UJ.cjs.map +1 -0
- package/dist/BoxUploader-NEGZOMR4.cjs +172 -0
- package/dist/BoxUploader-NEGZOMR4.cjs.map +1 -0
- package/dist/BoxUploader-VE5LRJ7M.js +172 -0
- package/dist/BoxUploader-VE5LRJ7M.js.map +1 -0
- package/dist/CameraUploader-BJ3AU3VS.cjs +200 -0
- package/dist/CameraUploader-BJ3AU3VS.cjs.map +1 -0
- package/dist/CameraUploader-WF5A6UIS.js +200 -0
- package/dist/CameraUploader-WF5A6UIS.js.map +1 -0
- package/dist/DropboxUploader-INTOYHJP.cjs +174 -0
- package/dist/DropboxUploader-INTOYHJP.cjs.map +1 -0
- package/dist/DropboxUploader-VMUYG3OP.js +174 -0
- package/dist/DropboxUploader-VMUYG3OP.js.map +1 -0
- package/dist/GoogleDriveUploader-CXZUZI6R.cjs +177 -0
- package/dist/GoogleDriveUploader-CXZUZI6R.cjs.map +1 -0
- package/dist/GoogleDriveUploader-YA56X3QR.js +177 -0
- package/dist/GoogleDriveUploader-YA56X3QR.js.map +1 -0
- package/dist/ImageEditorInline-GJ3HCPPZ.cjs +185 -0
- package/dist/ImageEditorInline-GJ3HCPPZ.cjs.map +1 -0
- package/dist/ImageEditorInline-N2NSAODR.js +185 -0
- package/dist/ImageEditorInline-N2NSAODR.js.map +1 -0
- package/dist/ImageEditorModal-CWKMDVPY.js +236 -0
- package/dist/ImageEditorModal-CWKMDVPY.js.map +1 -0
- package/dist/ImageEditorModal-XJKPBTVQ.cjs +236 -0
- package/dist/ImageEditorModal-XJKPBTVQ.cjs.map +1 -0
- package/dist/OneDriveUploader-4RPTY7KT.cjs +175 -0
- package/dist/OneDriveUploader-4RPTY7KT.cjs.map +1 -0
- package/dist/OneDriveUploader-I25Y6AJP.js +175 -0
- package/dist/OneDriveUploader-I25Y6AJP.js.map +1 -0
- package/dist/ScreenCaptureUploader-7K6QPD42.cjs +281 -0
- package/dist/ScreenCaptureUploader-7K6QPD42.cjs.map +1 -0
- package/dist/ScreenCaptureUploader-WKDO4S75.js +281 -0
- package/dist/ScreenCaptureUploader-WKDO4S75.js.map +1 -0
- package/dist/chunk-6TFTTLOD.js +852 -0
- package/dist/chunk-6TFTTLOD.js.map +1 -0
- package/dist/chunk-DZQBTC6T.cjs +39 -0
- package/dist/chunk-DZQBTC6T.cjs.map +1 -0
- package/dist/chunk-GNMEQB32.cjs +195 -0
- package/dist/chunk-GNMEQB32.cjs.map +1 -0
- package/dist/chunk-IG62MHVQ.cjs +276 -0
- package/dist/chunk-IG62MHVQ.cjs.map +1 -0
- package/dist/chunk-L3E5OMY7.cjs +852 -0
- package/dist/chunk-L3E5OMY7.cjs.map +1 -0
- package/dist/chunk-LCMDDPUD.js +276 -0
- package/dist/chunk-LCMDDPUD.js.map +1 -0
- package/dist/chunk-N4XGN66E.cjs +79 -0
- package/dist/chunk-N4XGN66E.cjs.map +1 -0
- package/dist/chunk-N7TWHP5Z.js +195 -0
- package/dist/chunk-N7TWHP5Z.js.map +1 -0
- package/dist/chunk-OXWVO7Z6.cjs +70 -0
- package/dist/chunk-OXWVO7Z6.cjs.map +1 -0
- package/dist/chunk-PLGHK2Y4.js +79 -0
- package/dist/chunk-PLGHK2Y4.js.map +1 -0
- package/dist/chunk-SSLP3MEC.js +39 -0
- package/dist/chunk-SSLP3MEC.js.map +1 -0
- package/dist/chunk-WYMKISZI.js +70 -0
- package/dist/chunk-WYMKISZI.js.map +1 -0
- package/dist/index.cjs +4219 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +240 -0
- package/dist/index.d.ts +240 -0
- package/dist/index.js +4219 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.d.ts +4 -0
- package/dist/tailwind-prefixed.css +2529 -0
- package/package.json +110 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ImageEditorModal.tsx"],"sourcesContent":["import React, {\r\n ComponentType,\r\n memo,\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from 'react'\r\nimport { createPortal } from 'react-dom'\r\nimport { cn } from '@useupup/core/internal'\r\nimport type { UploadFile } from '@useupup/core'\r\nimport {\r\n useUploaderOptions,\r\n useUploaderTheme,\r\n} from '../context/UploaderContext'\r\nimport {\r\n getFilerobotTheme,\r\n getImageEditorCssOverrides,\r\n} from '../lib/imageEditorHelpers'\r\n\r\ntype Props = {\r\n file: UploadFile\r\n onClose: () => void\r\n onSave: (editedImageData: string, mimeType?: string) => void\r\n}\r\n\r\n/**\r\n * Filerobot's onBeforeSave / onSave callback signature.\r\n * We only use the imageData.imageBase64 field.\r\n */\r\ntype FilerobotImageState = {\r\n imageBase64?: string\r\n fullName?: string\r\n mimeType?: string\r\n width?: number\r\n height?: number\r\n}\r\n\r\ntype FilerobotDesignState = Record<string, unknown>\r\n\r\n/**\r\n * The props shape of the default-exported <FilerobotImageEditor> component.\r\n * We only type the subset we use to keep this lightweight.\r\n */\r\ntype FilerobotEditorProps = {\r\n source: string\r\n savingPixelRatio?: number\r\n previewPixelRatio?: number\r\n onSave?: (\r\n imageData: FilerobotImageState,\r\n designState: FilerobotDesignState,\r\n ) => void\r\n onClose?: () => void\r\n onBeforeSave?: (imageData: FilerobotImageState) => boolean | undefined\r\n annotationsCommon?: Record<string, unknown>\r\n Rotate?: Record<string, unknown>\r\n Crop?: Record<string, unknown>\r\n tabsIds?: unknown[]\r\n defaultTabId?: unknown\r\n defaultToolId?: unknown\r\n [key: string]: unknown\r\n}\r\n\r\n/**\r\n * Accessible modal shell for the image editor.\r\n * Lazy-loads `react-filerobot-image-editor` at runtime so the dependency\r\n * is never bundled into the core entry point.\r\n *\r\n * - Focus trap: keeps focus inside the modal while open.\r\n * - ESC closes.\r\n * - Restores focus to the triggering element on close.\r\n * - aria-label / role=\"dialog\".\r\n */\r\nexport default memo(function ImageEditorModal(props: Props) {\r\n const { file, onClose, onSave } = props\r\n const { imageEditor: editorConfig } = useUploaderOptions()\r\n const { isDark: dark } = useUploaderTheme()\r\n\r\n const overlayRef = useRef<HTMLDivElement>(null)\r\n const previousFocusRef = useRef<Element | null>(null)\r\n\r\n // Lazy-loaded editor component + TABS/TOOLS constants\r\n const [EditorComponent, setEditorComponent] =\r\n useState<ComponentType<FilerobotEditorProps> | null>(null)\r\n const [editorConstants, setEditorConstants] = useState<{\r\n TABS: Record<string, unknown>\r\n TOOLS: Record<string, unknown>\r\n } | null>(null)\r\n const [loadError, setLoadError] = useState<string | null>(null)\r\n\r\n // StyleSheetManager from styled-components to filter custom props\r\n // that filerobot passes to DOM elements (fixes React 19 warnings/errors).\r\n const [StyleSheetMgr, setStyleSheetMgr] = useState<ComponentType<{\r\n shouldForwardProp?: (prop: string) => boolean\r\n children: React.ReactNode\r\n }> | null>(null)\r\n\r\n // Dynamically import react-filerobot-image-editor (browser only)\r\n useEffect(() => {\r\n if (typeof window === 'undefined') return\r\n\r\n let cancelled = false\r\n void (async () => {\r\n try {\r\n const [mod, scMod] = await Promise.all([\r\n import('react-filerobot-image-editor'),\r\n import('styled-components').catch(() => null),\r\n ])\r\n if (cancelled) return\r\n setEditorComponent(\r\n () => mod.default as ComponentType<FilerobotEditorProps>,\r\n )\r\n setEditorConstants({\r\n TABS: (mod as Record<string, unknown>).TABS as Record<\r\n string,\r\n unknown\r\n >,\r\n TOOLS: (mod as Record<string, unknown>).TOOLS as Record<\r\n string,\r\n unknown\r\n >,\r\n })\r\n if (scMod?.StyleSheetManager) {\r\n setStyleSheetMgr(\r\n () =>\r\n scMod.StyleSheetManager as ComponentType<{\r\n shouldForwardProp?: (prop: string) => boolean\r\n children: React.ReactNode\r\n }>,\r\n )\r\n }\r\n } catch {\r\n // upup-catch: dynamic import failure (editor dep not installed) is surfaced to the user via setLoadError\r\n if (cancelled) return\r\n setLoadError(\r\n 'Image editor failed to load. Make sure \"react-filerobot-image-editor\" is installed.',\r\n )\r\n }\r\n })()\r\n\r\n return () => {\r\n cancelled = true\r\n }\r\n }, [])\r\n\r\n // Capture the element that had focus before the modal opened\r\n // and restore it when the modal closes.\r\n useEffect(() => {\r\n previousFocusRef.current = document.activeElement\r\n return () => {\r\n if (previousFocusRef.current instanceof HTMLElement) {\r\n previousFocusRef.current.focus()\r\n }\r\n }\r\n }, [])\r\n\r\n // Auto-focus the overlay so keyboard events work immediately.\r\n useEffect(() => {\r\n overlayRef.current?.focus()\r\n }, [])\r\n\r\n // Close on ESC\r\n const handleKeyDown = useCallback(\r\n (e: React.KeyboardEvent) => {\r\n if (e.key === 'Escape') {\r\n e.stopPropagation()\r\n onClose()\r\n }\r\n\r\n // Basic focus trap: Tab cycles within the modal.\r\n if (e.key === 'Tab') {\r\n const focusable =\r\n overlayRef.current?.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\r\n )\r\n if (!focusable || focusable.length === 0) return\r\n const first = focusable[0]\r\n const last = focusable[focusable.length - 1]\r\n if (!first || !last) return\r\n\r\n if (e.shiftKey) {\r\n if (document.activeElement === first) {\r\n e.preventDefault()\r\n last.focus()\r\n }\r\n } else {\r\n if (document.activeElement === last) {\r\n e.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n }\r\n },\r\n [onClose],\r\n )\r\n\r\n // Prevent clicks on the inner content from closing the modal\r\n const handleContentClick = useCallback((e: React.MouseEvent) => {\r\n e.stopPropagation()\r\n }, [])\r\n\r\n // Filerobot onSave handler\r\n const handleEditorSave = useCallback(\r\n (imageData: FilerobotImageState) => {\r\n if (!imageData.imageBase64) return\r\n const dataURL = imageData.imageBase64.startsWith('data:')\r\n ? imageData.imageBase64\r\n : `data:${imageData.mimeType || file.type};base64,${\r\n imageData.imageBase64\r\n }`\r\n onSave(dataURL, imageData.mimeType)\r\n },\r\n [file.type, onSave],\r\n )\r\n\r\n // Props that filerobot-image-editor's styled-components pass to DOM elements.\r\n // Filter them out via StyleSheetManager to avoid React 19 warnings / errors.\r\n const shouldForwardProp = useCallback(\r\n (prop: string) => !FILEROBOT_CUSTOM_PROPS.has(prop),\r\n [],\r\n )\r\n\r\n // Build Filerobot tabs from config\r\n const resolvedTabs = editorConstants?.TABS\r\n ? editorConfig.tabs?.map(\r\n tab => editorConstants.TABS[tab.toUpperCase()] ?? tab,\r\n )\r\n : undefined\r\n\r\n const filerobotTheme = useMemo(() => getFilerobotTheme(dark), [dark])\r\n const editorCssOverrides = useMemo(\r\n () => getImageEditorCssOverrides(dark),\r\n [dark],\r\n )\r\n\r\n return createPortal(\r\n <div className=\"upup-scope\" data-upup-slot=\"image-editor\">\r\n <div\r\n ref={overlayRef}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label={`Edit image: ${file.name}`}\r\n tabIndex={-1}\r\n className=\"upup-fixed upup-inset-0 upup-z-[2147483647] upup-flex upup-items-center upup-justify-center upup-bg-black/60 upup-outline-none\"\r\n onClick={onClose}\r\n onKeyDown={handleKeyDown}\r\n >\r\n <div\r\n className={cn(\r\n 'upup-relative upup-flex upup-h-[90vh] upup-w-[90vw] upup-max-w-5xl upup-flex-col upup-overflow-hidden upup-rounded-xl upup-shadow-2xl upup-ring-1',\r\n dark\r\n ? 'upup-bg-[#232323] upup-ring-white/[0.08]'\r\n : 'upup-bg-white upup-ring-black/10',\r\n )}\r\n data-upup-theme={dark ? 'dark' : 'light'}\r\n onClick={handleContentClick}\r\n >\r\n {editorCssOverrides && (\r\n <style\r\n dangerouslySetInnerHTML={{\r\n __html: editorCssOverrides,\r\n }}\r\n />\r\n )}\r\n\r\n {/* Filerobot provides its own top bar with save / close */}\r\n <div className=\"upup-relative upup-flex-1 upup-overflow-hidden\">\r\n {loadError && (\r\n <div className=\"upup-flex upup-h-full upup-items-center upup-justify-center upup-p-8\">\r\n <p\r\n className={cn(\r\n 'upup-text-center upup-text-sm',\r\n dark\r\n ? 'upup-text-red-400'\r\n : 'upup-text-red-600',\r\n )}\r\n >\r\n {loadError}\r\n </p>\r\n </div>\r\n )}\r\n\r\n {!EditorComponent && !loadError && (\r\n <div className=\"upup-flex upup-h-full upup-items-center upup-justify-center\">\r\n <div\r\n className={cn(\r\n 'upup-h-8 upup-w-8 upup-animate-spin upup-rounded-full upup-border-2 upup-border-t-transparent',\r\n dark\r\n ? 'upup-border-[#38bdf8]'\r\n : 'upup-border-[#0ea5e9]',\r\n )}\r\n />\r\n </div>\r\n )}\r\n\r\n {EditorComponent && !loadError && (\r\n <EditorWrapper\r\n StyleSheetMgr={StyleSheetMgr}\r\n shouldForwardProp={shouldForwardProp}\r\n >\r\n <EditorComponent\r\n source={file.url ?? ''}\r\n onSave={handleEditorSave}\r\n onClose={onClose}\r\n savingPixelRatio={4}\r\n previewPixelRatio={4}\r\n theme={filerobotTheme}\r\n defaultTabId={\r\n editorConstants?.TABS\r\n ? editorConstants.TABS.ADJUST\r\n : undefined\r\n }\r\n {...(resolvedTabs !== undefined\r\n ? { tabsIds: resolvedTabs }\r\n : {})}\r\n onBeforeSave={() => false}\r\n />\r\n </EditorWrapper>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </div>,\r\n document.body,\r\n )\r\n})\r\n\r\n/**\r\n * Custom props that filerobot-image-editor's styled-components leak to the DOM.\r\n * Maintained as a Set so `shouldForwardProp` can block them via StyleSheetManager.\r\n */\r\nconst FILEROBOT_CUSTOM_PROPS = new Set([\r\n 'active',\r\n 'noMargin',\r\n 'showBackButton',\r\n 'isPhoneScreen',\r\n 'showTabsDrawer',\r\n 'hasChildren',\r\n 'isAccordion',\r\n])\r\n\r\n/**\r\n * Wraps children with styled-components' StyleSheetManager (when available)\r\n * to prevent custom props from leaking to the DOM in React 19+.\r\n * Falls back to a plain fragment if styled-components is not loaded.\r\n */\r\nfunction EditorWrapper({\r\n children,\r\n StyleSheetMgr,\r\n shouldForwardProp,\r\n}: {\r\n children: React.ReactNode\r\n StyleSheetMgr: ComponentType<{\r\n shouldForwardProp?: (prop: string) => boolean\r\n children: React.ReactNode\r\n }> | null\r\n shouldForwardProp: (prop: string) => boolean\r\n}) {\r\n if (StyleSheetMgr) {\r\n return (\r\n <StyleSheetMgr shouldForwardProp={shouldForwardProp}>\r\n {children}\r\n </StyleSheetMgr>\r\n )\r\n }\r\n return <>{children}</>\r\n}\r\n"],"mappings":"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","names":["_a"]}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkGNMEQB32cjs = require('./chunk-GNMEQB32.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var _chunkIG62MHVQcjs = require('./chunk-IG62MHVQ.cjs');
|
|
9
|
+
|
|
10
|
+
// src/components/ImageEditorModal.tsx
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
var _react = require('react');
|
|
19
|
+
var _reactdom = require('react-dom');
|
|
20
|
+
var _internal = require('@useupup/core/internal');
|
|
21
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
22
|
+
var ImageEditorModal_default = _react.memo.call(void 0, function ImageEditorModal(props) {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
const { file, onClose, onSave } = props;
|
|
25
|
+
const { imageEditor: editorConfig } = _chunkIG62MHVQcjs.useUploaderOptions.call(void 0, );
|
|
26
|
+
const { isDark: dark } = _chunkIG62MHVQcjs.useUploaderTheme.call(void 0, );
|
|
27
|
+
const overlayRef = _react.useRef.call(void 0, null);
|
|
28
|
+
const previousFocusRef = _react.useRef.call(void 0, null);
|
|
29
|
+
const [EditorComponent, setEditorComponent] = _react.useState.call(void 0, null);
|
|
30
|
+
const [editorConstants, setEditorConstants] = _react.useState.call(void 0, null);
|
|
31
|
+
const [loadError, setLoadError] = _react.useState.call(void 0, null);
|
|
32
|
+
const [StyleSheetMgr, setStyleSheetMgr] = _react.useState.call(void 0, null);
|
|
33
|
+
_react.useEffect.call(void 0, () => {
|
|
34
|
+
if (typeof window === "undefined") return;
|
|
35
|
+
let cancelled = false;
|
|
36
|
+
void (async () => {
|
|
37
|
+
try {
|
|
38
|
+
const [mod, scMod] = await Promise.all([
|
|
39
|
+
Promise.resolve().then(() => _interopRequireWildcard(require("react-filerobot-image-editor"))),
|
|
40
|
+
Promise.resolve().then(() => _interopRequireWildcard(require("styled-components"))).catch(() => null)
|
|
41
|
+
]);
|
|
42
|
+
if (cancelled) return;
|
|
43
|
+
setEditorComponent(
|
|
44
|
+
() => mod.default
|
|
45
|
+
);
|
|
46
|
+
setEditorConstants({
|
|
47
|
+
TABS: mod.TABS,
|
|
48
|
+
TOOLS: mod.TOOLS
|
|
49
|
+
});
|
|
50
|
+
if (scMod == null ? void 0 : scMod.StyleSheetManager) {
|
|
51
|
+
setStyleSheetMgr(
|
|
52
|
+
() => scMod.StyleSheetManager
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
} catch (e2) {
|
|
56
|
+
if (cancelled) return;
|
|
57
|
+
setLoadError(
|
|
58
|
+
'Image editor failed to load. Make sure "react-filerobot-image-editor" is installed.'
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
})();
|
|
62
|
+
return () => {
|
|
63
|
+
cancelled = true;
|
|
64
|
+
};
|
|
65
|
+
}, []);
|
|
66
|
+
_react.useEffect.call(void 0, () => {
|
|
67
|
+
previousFocusRef.current = document.activeElement;
|
|
68
|
+
return () => {
|
|
69
|
+
if (previousFocusRef.current instanceof HTMLElement) {
|
|
70
|
+
previousFocusRef.current.focus();
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}, []);
|
|
74
|
+
_react.useEffect.call(void 0, () => {
|
|
75
|
+
var _a2;
|
|
76
|
+
(_a2 = overlayRef.current) == null ? void 0 : _a2.focus();
|
|
77
|
+
}, []);
|
|
78
|
+
const handleKeyDown = _react.useCallback.call(void 0,
|
|
79
|
+
(e) => {
|
|
80
|
+
var _a2;
|
|
81
|
+
if (e.key === "Escape") {
|
|
82
|
+
e.stopPropagation();
|
|
83
|
+
onClose();
|
|
84
|
+
}
|
|
85
|
+
if (e.key === "Tab") {
|
|
86
|
+
const focusable = (_a2 = overlayRef.current) == null ? void 0 : _a2.querySelectorAll(
|
|
87
|
+
'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
|
|
88
|
+
);
|
|
89
|
+
if (!focusable || focusable.length === 0) return;
|
|
90
|
+
const first = focusable[0];
|
|
91
|
+
const last = focusable[focusable.length - 1];
|
|
92
|
+
if (!first || !last) return;
|
|
93
|
+
if (e.shiftKey) {
|
|
94
|
+
if (document.activeElement === first) {
|
|
95
|
+
e.preventDefault();
|
|
96
|
+
last.focus();
|
|
97
|
+
}
|
|
98
|
+
} else {
|
|
99
|
+
if (document.activeElement === last) {
|
|
100
|
+
e.preventDefault();
|
|
101
|
+
first.focus();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
[onClose]
|
|
107
|
+
);
|
|
108
|
+
const handleContentClick = _react.useCallback.call(void 0, (e) => {
|
|
109
|
+
e.stopPropagation();
|
|
110
|
+
}, []);
|
|
111
|
+
const handleEditorSave = _react.useCallback.call(void 0,
|
|
112
|
+
(imageData) => {
|
|
113
|
+
if (!imageData.imageBase64) return;
|
|
114
|
+
const dataURL = imageData.imageBase64.startsWith("data:") ? imageData.imageBase64 : `data:${imageData.mimeType || file.type};base64,${imageData.imageBase64}`;
|
|
115
|
+
onSave(dataURL, imageData.mimeType);
|
|
116
|
+
},
|
|
117
|
+
[file.type, onSave]
|
|
118
|
+
);
|
|
119
|
+
const shouldForwardProp = _react.useCallback.call(void 0,
|
|
120
|
+
(prop) => !FILEROBOT_CUSTOM_PROPS.has(prop),
|
|
121
|
+
[]
|
|
122
|
+
);
|
|
123
|
+
const resolvedTabs = (editorConstants == null ? void 0 : editorConstants.TABS) ? (_a = editorConfig.tabs) == null ? void 0 : _a.map(
|
|
124
|
+
(tab) => {
|
|
125
|
+
var _a2;
|
|
126
|
+
return (_a2 = editorConstants.TABS[tab.toUpperCase()]) != null ? _a2 : tab;
|
|
127
|
+
}
|
|
128
|
+
) : void 0;
|
|
129
|
+
const filerobotTheme = _react.useMemo.call(void 0, () => _chunkGNMEQB32cjs.getFilerobotTheme.call(void 0, dark), [dark]);
|
|
130
|
+
const editorCssOverrides = _react.useMemo.call(void 0,
|
|
131
|
+
() => _chunkGNMEQB32cjs.getImageEditorCssOverrides.call(void 0, dark),
|
|
132
|
+
[dark]
|
|
133
|
+
);
|
|
134
|
+
return _reactdom.createPortal.call(void 0,
|
|
135
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "upup-scope", "data-upup-slot": "image-editor", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
136
|
+
"div",
|
|
137
|
+
{
|
|
138
|
+
ref: overlayRef,
|
|
139
|
+
role: "dialog",
|
|
140
|
+
"aria-modal": "true",
|
|
141
|
+
"aria-label": `Edit image: ${file.name}`,
|
|
142
|
+
tabIndex: -1,
|
|
143
|
+
className: "upup-fixed upup-inset-0 upup-z-[2147483647] upup-flex upup-items-center upup-justify-center upup-bg-black/60 upup-outline-none",
|
|
144
|
+
onClick: onClose,
|
|
145
|
+
onKeyDown: handleKeyDown,
|
|
146
|
+
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
147
|
+
"div",
|
|
148
|
+
{
|
|
149
|
+
className: _internal.cn.call(void 0,
|
|
150
|
+
"upup-relative upup-flex upup-h-[90vh] upup-w-[90vw] upup-max-w-5xl upup-flex-col upup-overflow-hidden upup-rounded-xl upup-shadow-2xl upup-ring-1",
|
|
151
|
+
dark ? "upup-bg-[#232323] upup-ring-white/[0.08]" : "upup-bg-white upup-ring-black/10"
|
|
152
|
+
),
|
|
153
|
+
"data-upup-theme": dark ? "dark" : "light",
|
|
154
|
+
onClick: handleContentClick,
|
|
155
|
+
children: [
|
|
156
|
+
editorCssOverrides && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
157
|
+
"style",
|
|
158
|
+
{
|
|
159
|
+
dangerouslySetInnerHTML: {
|
|
160
|
+
__html: editorCssOverrides
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
),
|
|
164
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "upup-relative upup-flex-1 upup-overflow-hidden", children: [
|
|
165
|
+
loadError && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "upup-flex upup-h-full upup-items-center upup-justify-center upup-p-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
166
|
+
"p",
|
|
167
|
+
{
|
|
168
|
+
className: _internal.cn.call(void 0,
|
|
169
|
+
"upup-text-center upup-text-sm",
|
|
170
|
+
dark ? "upup-text-red-400" : "upup-text-red-600"
|
|
171
|
+
),
|
|
172
|
+
children: loadError
|
|
173
|
+
}
|
|
174
|
+
) }),
|
|
175
|
+
!EditorComponent && !loadError && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "upup-flex upup-h-full upup-items-center upup-justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
176
|
+
"div",
|
|
177
|
+
{
|
|
178
|
+
className: _internal.cn.call(void 0,
|
|
179
|
+
"upup-h-8 upup-w-8 upup-animate-spin upup-rounded-full upup-border-2 upup-border-t-transparent",
|
|
180
|
+
dark ? "upup-border-[#38bdf8]" : "upup-border-[#0ea5e9]"
|
|
181
|
+
)
|
|
182
|
+
}
|
|
183
|
+
) }),
|
|
184
|
+
EditorComponent && !loadError && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
185
|
+
EditorWrapper,
|
|
186
|
+
{
|
|
187
|
+
StyleSheetMgr,
|
|
188
|
+
shouldForwardProp,
|
|
189
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
190
|
+
EditorComponent,
|
|
191
|
+
{
|
|
192
|
+
source: (_b = file.url) != null ? _b : "",
|
|
193
|
+
onSave: handleEditorSave,
|
|
194
|
+
onClose,
|
|
195
|
+
savingPixelRatio: 4,
|
|
196
|
+
previewPixelRatio: 4,
|
|
197
|
+
theme: filerobotTheme,
|
|
198
|
+
defaultTabId: (editorConstants == null ? void 0 : editorConstants.TABS) ? editorConstants.TABS.ADJUST : void 0,
|
|
199
|
+
...resolvedTabs !== void 0 ? { tabsIds: resolvedTabs } : {},
|
|
200
|
+
onBeforeSave: () => false
|
|
201
|
+
}
|
|
202
|
+
)
|
|
203
|
+
}
|
|
204
|
+
)
|
|
205
|
+
] })
|
|
206
|
+
]
|
|
207
|
+
}
|
|
208
|
+
)
|
|
209
|
+
}
|
|
210
|
+
) }),
|
|
211
|
+
document.body
|
|
212
|
+
);
|
|
213
|
+
});
|
|
214
|
+
var FILEROBOT_CUSTOM_PROPS = /* @__PURE__ */ new Set([
|
|
215
|
+
"active",
|
|
216
|
+
"noMargin",
|
|
217
|
+
"showBackButton",
|
|
218
|
+
"isPhoneScreen",
|
|
219
|
+
"showTabsDrawer",
|
|
220
|
+
"hasChildren",
|
|
221
|
+
"isAccordion"
|
|
222
|
+
]);
|
|
223
|
+
function EditorWrapper({
|
|
224
|
+
children,
|
|
225
|
+
StyleSheetMgr,
|
|
226
|
+
shouldForwardProp
|
|
227
|
+
}) {
|
|
228
|
+
if (StyleSheetMgr) {
|
|
229
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StyleSheetMgr, { shouldForwardProp, children });
|
|
230
|
+
}
|
|
231
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children });
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
exports.default = ImageEditorModal_default;
|
|
236
|
+
//# sourceMappingURL=ImageEditorModal-XJKPBTVQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["c:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\react\\dist\\ImageEditorModal-XJKPBTVQ.cjs"],"names":[],"mappings":"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CAAC,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,oBAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,cAAA;AACA,gBAAA;AACA,gBAAA;AACA,kBAAA;AACA,oBAAA;AACA,kBAAA;AACA,gBAAA;AACA,cAAA;AACA,8BAAA;AACA,gBAAA;AACA,kBAAA;AACA,kBAAA;AACA,oBAAA;AACA,sBAAA;AACA,sBAAA;AACA,oBAAA;AACA,oBAAA;AACA,kBAAA;AACA,gBAAA;AACA,gBAAA;AACA,kBAAA;AACA,kBAAA;AACA,oBAAA;AACA,sBAAA;AACA,sBAAA;AACA,oBAAA;AACA,kBAAA;AACA,gBAAA;AACA,gBAAA;AACA,kBAAA;AACA,kBAAA;AACA,oBAAA;AACA,oBAAA;AACA,oBAAA;AACA,sBAAA;AACA,sBAAA;AACA,wBAAA;AACA,wBAAA;AACA,wBAAA;AACA,wBAAA;AACA,wBAAA;AACA,wBAAA;AACA,wBAAA;AACA,wBAAA;AACA,wBAAA;AACA,sBAAA;AACA,oBAAA;AACA,kBAAA;AACA,gBAAA;AACA,cAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA","file":"C:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\react\\dist\\ImageEditorModal-XJKPBTVQ.cjs","sourcesContent":[null]}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkL3E5OMY7cjs = require('./chunk-L3E5OMY7.cjs');
|
|
6
|
+
require('./chunk-N4XGN66E.cjs');
|
|
7
|
+
require('./chunk-DZQBTC6T.cjs');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _chunkIG62MHVQcjs = require('./chunk-IG62MHVQ.cjs');
|
|
13
|
+
|
|
14
|
+
// src/hooks/useOneDrive.ts
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
var _react = require('react');
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
var _core = require('@useupup/core');
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
var _internal = require('@useupup/core/internal');
|
|
27
|
+
var SERVER_SNAPSHOT = {
|
|
28
|
+
user: void 0,
|
|
29
|
+
folder: void 0,
|
|
30
|
+
path: [],
|
|
31
|
+
selectedFiles: [],
|
|
32
|
+
isClickLoading: false,
|
|
33
|
+
showLoader: false,
|
|
34
|
+
isAuthReady: false,
|
|
35
|
+
isAuthenticated: false,
|
|
36
|
+
isLoading: true,
|
|
37
|
+
authCancelled: false,
|
|
38
|
+
token: void 0,
|
|
39
|
+
error: void 0,
|
|
40
|
+
hasMore: false,
|
|
41
|
+
isLoadingMore: false
|
|
42
|
+
};
|
|
43
|
+
function useOneDrive() {
|
|
44
|
+
var _a, _b;
|
|
45
|
+
const { core } = _chunkIG62MHVQcjs.useUploaderRuntime.call(void 0, );
|
|
46
|
+
const { setActiveSource } = _chunkIG62MHVQcjs.useUploaderSource.call(void 0, );
|
|
47
|
+
const { setFiles } = _chunkIG62MHVQcjs.useUploaderFiles.call(void 0, );
|
|
48
|
+
const controllerRef = _react.useRef.call(void 0, null);
|
|
49
|
+
if (!controllerRef.current && core) {
|
|
50
|
+
controllerRef.current = new (0, _internal.DriveBrowserController)(
|
|
51
|
+
core,
|
|
52
|
+
_core.ONE_DRIVE_DESCRIPTOR,
|
|
53
|
+
{
|
|
54
|
+
onFilesSelected: (files) => {
|
|
55
|
+
setFiles(files);
|
|
56
|
+
},
|
|
57
|
+
onClose: () => {
|
|
58
|
+
setActiveSource(void 0);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
const controller = controllerRef.current;
|
|
64
|
+
_react.useEffect.call(void 0, () => {
|
|
65
|
+
controller == null ? void 0 : controller.init();
|
|
66
|
+
return () => controller == null ? void 0 : controller.destroy();
|
|
67
|
+
}, [controller]);
|
|
68
|
+
const state = _react.useSyncExternalStore.call(void 0,
|
|
69
|
+
(_a = controller == null ? void 0 : controller.subscribe) != null ? _a : (() => () => {
|
|
70
|
+
}),
|
|
71
|
+
(_b = controller == null ? void 0 : controller.getSnapshot) != null ? _b : (() => SERVER_SNAPSHOT),
|
|
72
|
+
() => SERVER_SNAPSHOT
|
|
73
|
+
);
|
|
74
|
+
const setPath = _react.useCallback.call(void 0,
|
|
75
|
+
(value) => controller == null ? void 0 : controller.setPath(
|
|
76
|
+
typeof value === "function" ? value(controller.getSnapshot().path) : value
|
|
77
|
+
),
|
|
78
|
+
[controller]
|
|
79
|
+
);
|
|
80
|
+
return {
|
|
81
|
+
user: state.user,
|
|
82
|
+
oneDriveFiles: state.folder,
|
|
83
|
+
signOut: () => controller == null ? void 0 : controller.signOut(),
|
|
84
|
+
signIn: () => controller == null ? void 0 : controller.signIn(),
|
|
85
|
+
authenticate: () => controller == null ? void 0 : controller.signIn(),
|
|
86
|
+
// 'active' is a presence sentinel the component checks via `!token`; the real
|
|
87
|
+
// GIS token lives in state.token and is intentionally not surfaced here.
|
|
88
|
+
token: state.isAuthenticated ? "active" : void 0,
|
|
89
|
+
isAuthenticated: state.isAuthenticated,
|
|
90
|
+
isLoading: state.isLoading,
|
|
91
|
+
path: state.path,
|
|
92
|
+
setPath,
|
|
93
|
+
isClickLoading: state.isClickLoading,
|
|
94
|
+
handleClick: (file) => controller == null ? void 0 : controller.handleClick(file),
|
|
95
|
+
selectedFiles: state.selectedFiles,
|
|
96
|
+
showLoader: state.showLoader,
|
|
97
|
+
handleSubmit: () => {
|
|
98
|
+
var _a2;
|
|
99
|
+
return (_a2 = controller == null ? void 0 : controller.handleSubmit()) != null ? _a2 : Promise.resolve();
|
|
100
|
+
},
|
|
101
|
+
handleCancelDownload: () => {
|
|
102
|
+
controller == null ? void 0 : controller.handleCancelDownload();
|
|
103
|
+
},
|
|
104
|
+
onSelectCurrentFolder: () => {
|
|
105
|
+
var _a2;
|
|
106
|
+
return (_a2 = controller == null ? void 0 : controller.onSelectCurrentFolder()) != null ? _a2 : Promise.resolve();
|
|
107
|
+
},
|
|
108
|
+
error: state.error,
|
|
109
|
+
hasMore: state.hasMore,
|
|
110
|
+
isLoadingMore: state.isLoadingMore,
|
|
111
|
+
loadMore: () => {
|
|
112
|
+
var _a2;
|
|
113
|
+
return (_a2 = controller == null ? void 0 : controller.loadMore()) != null ? _a2 : Promise.resolve();
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// src/components/OneDriveUploader.tsx
|
|
119
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
120
|
+
function OneDriveUploader() {
|
|
121
|
+
const { mode } = _chunkIG62MHVQcjs.useUploaderRuntime.call(void 0, );
|
|
122
|
+
const { setActiveSource } = _chunkIG62MHVQcjs.useUploaderSource.call(void 0, );
|
|
123
|
+
if (mode === "server") {
|
|
124
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
125
|
+
_chunkL3E5OMY7cjs.ServerModeDriveUploader,
|
|
126
|
+
{
|
|
127
|
+
provider: "one-drive",
|
|
128
|
+
onBack: () => {
|
|
129
|
+
setActiveSource(void 0);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ClientOneDriveUploader, {});
|
|
135
|
+
}
|
|
136
|
+
function ClientOneDriveUploader() {
|
|
137
|
+
const {
|
|
138
|
+
user,
|
|
139
|
+
oneDriveFiles: driveFiles,
|
|
140
|
+
signOut,
|
|
141
|
+
token,
|
|
142
|
+
isAuthenticated,
|
|
143
|
+
authenticate,
|
|
144
|
+
isLoading,
|
|
145
|
+
...uploaderProps
|
|
146
|
+
} = useOneDrive();
|
|
147
|
+
const handleSignOut = async () => {
|
|
148
|
+
signOut();
|
|
149
|
+
return Promise.resolve();
|
|
150
|
+
};
|
|
151
|
+
if (!isAuthenticated && !token && !isLoading) {
|
|
152
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
153
|
+
_chunkL3E5OMY7cjs.DriveAuthFallback,
|
|
154
|
+
{
|
|
155
|
+
providerName: "OneDrive",
|
|
156
|
+
onRetry: authenticate,
|
|
157
|
+
"data-upup-slot": "one-drive-uploader"
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
162
|
+
_chunkL3E5OMY7cjs.DriveBrowser,
|
|
163
|
+
{
|
|
164
|
+
driveFiles,
|
|
165
|
+
user,
|
|
166
|
+
handleSignOut,
|
|
167
|
+
"data-upup-slot": "one-drive-uploader",
|
|
168
|
+
...uploaderProps
|
|
169
|
+
}
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
exports.default = OneDriveUploader;
|
|
175
|
+
//# sourceMappingURL=OneDriveUploader-4RPTY7KT.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["c:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\react\\dist\\OneDriveUploader-4RPTY7KT.cjs"],"names":[],"mappings":"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","file":"C:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\react\\dist\\OneDriveUploader-4RPTY7KT.cjs","sourcesContent":[null]}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DriveAuthFallback,
|
|
3
|
+
DriveBrowser,
|
|
4
|
+
ServerModeDriveUploader
|
|
5
|
+
} from "./chunk-6TFTTLOD.js";
|
|
6
|
+
import "./chunk-PLGHK2Y4.js";
|
|
7
|
+
import "./chunk-SSLP3MEC.js";
|
|
8
|
+
import {
|
|
9
|
+
useUploaderFiles,
|
|
10
|
+
useUploaderRuntime,
|
|
11
|
+
useUploaderSource
|
|
12
|
+
} from "./chunk-LCMDDPUD.js";
|
|
13
|
+
|
|
14
|
+
// src/hooks/useOneDrive.ts
|
|
15
|
+
import {
|
|
16
|
+
useCallback,
|
|
17
|
+
useEffect,
|
|
18
|
+
useRef,
|
|
19
|
+
useSyncExternalStore
|
|
20
|
+
} from "react";
|
|
21
|
+
import {
|
|
22
|
+
ONE_DRIVE_DESCRIPTOR
|
|
23
|
+
} from "@useupup/core";
|
|
24
|
+
import {
|
|
25
|
+
DriveBrowserController
|
|
26
|
+
} from "@useupup/core/internal";
|
|
27
|
+
var SERVER_SNAPSHOT = {
|
|
28
|
+
user: void 0,
|
|
29
|
+
folder: void 0,
|
|
30
|
+
path: [],
|
|
31
|
+
selectedFiles: [],
|
|
32
|
+
isClickLoading: false,
|
|
33
|
+
showLoader: false,
|
|
34
|
+
isAuthReady: false,
|
|
35
|
+
isAuthenticated: false,
|
|
36
|
+
isLoading: true,
|
|
37
|
+
authCancelled: false,
|
|
38
|
+
token: void 0,
|
|
39
|
+
error: void 0,
|
|
40
|
+
hasMore: false,
|
|
41
|
+
isLoadingMore: false
|
|
42
|
+
};
|
|
43
|
+
function useOneDrive() {
|
|
44
|
+
var _a, _b;
|
|
45
|
+
const { core } = useUploaderRuntime();
|
|
46
|
+
const { setActiveSource } = useUploaderSource();
|
|
47
|
+
const { setFiles } = useUploaderFiles();
|
|
48
|
+
const controllerRef = useRef(null);
|
|
49
|
+
if (!controllerRef.current && core) {
|
|
50
|
+
controllerRef.current = new DriveBrowserController(
|
|
51
|
+
core,
|
|
52
|
+
ONE_DRIVE_DESCRIPTOR,
|
|
53
|
+
{
|
|
54
|
+
onFilesSelected: (files) => {
|
|
55
|
+
setFiles(files);
|
|
56
|
+
},
|
|
57
|
+
onClose: () => {
|
|
58
|
+
setActiveSource(void 0);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
const controller = controllerRef.current;
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
controller == null ? void 0 : controller.init();
|
|
66
|
+
return () => controller == null ? void 0 : controller.destroy();
|
|
67
|
+
}, [controller]);
|
|
68
|
+
const state = useSyncExternalStore(
|
|
69
|
+
(_a = controller == null ? void 0 : controller.subscribe) != null ? _a : (() => () => {
|
|
70
|
+
}),
|
|
71
|
+
(_b = controller == null ? void 0 : controller.getSnapshot) != null ? _b : (() => SERVER_SNAPSHOT),
|
|
72
|
+
() => SERVER_SNAPSHOT
|
|
73
|
+
);
|
|
74
|
+
const setPath = useCallback(
|
|
75
|
+
(value) => controller == null ? void 0 : controller.setPath(
|
|
76
|
+
typeof value === "function" ? value(controller.getSnapshot().path) : value
|
|
77
|
+
),
|
|
78
|
+
[controller]
|
|
79
|
+
);
|
|
80
|
+
return {
|
|
81
|
+
user: state.user,
|
|
82
|
+
oneDriveFiles: state.folder,
|
|
83
|
+
signOut: () => controller == null ? void 0 : controller.signOut(),
|
|
84
|
+
signIn: () => controller == null ? void 0 : controller.signIn(),
|
|
85
|
+
authenticate: () => controller == null ? void 0 : controller.signIn(),
|
|
86
|
+
// 'active' is a presence sentinel the component checks via `!token`; the real
|
|
87
|
+
// GIS token lives in state.token and is intentionally not surfaced here.
|
|
88
|
+
token: state.isAuthenticated ? "active" : void 0,
|
|
89
|
+
isAuthenticated: state.isAuthenticated,
|
|
90
|
+
isLoading: state.isLoading,
|
|
91
|
+
path: state.path,
|
|
92
|
+
setPath,
|
|
93
|
+
isClickLoading: state.isClickLoading,
|
|
94
|
+
handleClick: (file) => controller == null ? void 0 : controller.handleClick(file),
|
|
95
|
+
selectedFiles: state.selectedFiles,
|
|
96
|
+
showLoader: state.showLoader,
|
|
97
|
+
handleSubmit: () => {
|
|
98
|
+
var _a2;
|
|
99
|
+
return (_a2 = controller == null ? void 0 : controller.handleSubmit()) != null ? _a2 : Promise.resolve();
|
|
100
|
+
},
|
|
101
|
+
handleCancelDownload: () => {
|
|
102
|
+
controller == null ? void 0 : controller.handleCancelDownload();
|
|
103
|
+
},
|
|
104
|
+
onSelectCurrentFolder: () => {
|
|
105
|
+
var _a2;
|
|
106
|
+
return (_a2 = controller == null ? void 0 : controller.onSelectCurrentFolder()) != null ? _a2 : Promise.resolve();
|
|
107
|
+
},
|
|
108
|
+
error: state.error,
|
|
109
|
+
hasMore: state.hasMore,
|
|
110
|
+
isLoadingMore: state.isLoadingMore,
|
|
111
|
+
loadMore: () => {
|
|
112
|
+
var _a2;
|
|
113
|
+
return (_a2 = controller == null ? void 0 : controller.loadMore()) != null ? _a2 : Promise.resolve();
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// src/components/OneDriveUploader.tsx
|
|
119
|
+
import { jsx } from "react/jsx-runtime";
|
|
120
|
+
function OneDriveUploader() {
|
|
121
|
+
const { mode } = useUploaderRuntime();
|
|
122
|
+
const { setActiveSource } = useUploaderSource();
|
|
123
|
+
if (mode === "server") {
|
|
124
|
+
return /* @__PURE__ */ jsx(
|
|
125
|
+
ServerModeDriveUploader,
|
|
126
|
+
{
|
|
127
|
+
provider: "one-drive",
|
|
128
|
+
onBack: () => {
|
|
129
|
+
setActiveSource(void 0);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
return /* @__PURE__ */ jsx(ClientOneDriveUploader, {});
|
|
135
|
+
}
|
|
136
|
+
function ClientOneDriveUploader() {
|
|
137
|
+
const {
|
|
138
|
+
user,
|
|
139
|
+
oneDriveFiles: driveFiles,
|
|
140
|
+
signOut,
|
|
141
|
+
token,
|
|
142
|
+
isAuthenticated,
|
|
143
|
+
authenticate,
|
|
144
|
+
isLoading,
|
|
145
|
+
...uploaderProps
|
|
146
|
+
} = useOneDrive();
|
|
147
|
+
const handleSignOut = async () => {
|
|
148
|
+
signOut();
|
|
149
|
+
return Promise.resolve();
|
|
150
|
+
};
|
|
151
|
+
if (!isAuthenticated && !token && !isLoading) {
|
|
152
|
+
return /* @__PURE__ */ jsx(
|
|
153
|
+
DriveAuthFallback,
|
|
154
|
+
{
|
|
155
|
+
providerName: "OneDrive",
|
|
156
|
+
onRetry: authenticate,
|
|
157
|
+
"data-upup-slot": "one-drive-uploader"
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
return /* @__PURE__ */ jsx(
|
|
162
|
+
DriveBrowser,
|
|
163
|
+
{
|
|
164
|
+
driveFiles,
|
|
165
|
+
user,
|
|
166
|
+
handleSignOut,
|
|
167
|
+
"data-upup-slot": "one-drive-uploader",
|
|
168
|
+
...uploaderProps
|
|
169
|
+
}
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
export {
|
|
173
|
+
OneDriveUploader as default
|
|
174
|
+
};
|
|
175
|
+
//# sourceMappingURL=OneDriveUploader-I25Y6AJP.js.map
|