@plutonhq/core-frontend 0.1.20 → 0.1.21
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/dist-lib/components/Storage/StorageItem/StorageItem.d.ts.map +1 -1
- package/dist-lib/components/Storage/StorageItem/StorageItem.js +1 -1
- package/dist-lib/components/Storage/StorageItem/StorageItem.js.map +1 -1
- package/dist-lib/components/common/form/StoragePicker/StoragePicker.d.ts +1 -0
- package/dist-lib/components/common/form/StoragePicker/StoragePicker.d.ts.map +1 -1
- package/dist-lib/components/common/form/StoragePicker/StoragePicker.js +57 -51
- package/dist-lib/components/common/form/StoragePicker/StoragePicker.js.map +1 -1
- package/dist-lib/components/common/form/StoragePicker/StoragePicker.module.scss.js +8 -4
- package/dist-lib/components/common/form/StoragePicker/StoragePicker.module.scss.js.map +1 -1
- package/dist-lib/styles/core-frontend.css +1 -1
- package/package.json +1 -1
- package/src/components/Storage/StorageItem/StorageItem.tsx +0 -1
- package/src/components/common/form/StoragePicker/StoragePicker.module.scss +27 -0
- package/src/components/common/form/StoragePicker/StoragePicker.tsx +19 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageItem.d.ts","sourceRoot":"","sources":["../../../../src/components/Storage/StorageItem/StorageItem.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAOnD,UAAU,gBAAgB;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,QAAA,MAAM,WAAW,GAAI,qBAAqB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"StorageItem.d.ts","sourceRoot":"","sources":["../../../../src/components/Storage/StorageItem/StorageItem.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAOnD,UAAU,gBAAgB;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,QAAA,MAAM,WAAW,GAAI,qBAAqB,gBAAgB,4CA0IzD,CAAC;AACF,eAAe,WAAW,CAAC"}
|
|
@@ -16,7 +16,7 @@ const K = ({ storage: n, layout: C }) => {
|
|
|
16
16
|
console.log("error :", r == null ? void 0 : r.message), z.error(r.message || "Error Removing Storage!");
|
|
17
17
|
},
|
|
18
18
|
onSuccess: (r) => {
|
|
19
|
-
console.log("Success :", r), z.success("Removed Storage Successfully!", { autoClose: 5e3 })
|
|
19
|
+
console.log("Success :", r), z.success("Removed Storage Successfully!", { autoClose: 5e3 });
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageItem.js","sources":["../../../../src/components/Storage/StorageItem/StorageItem.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport Icon from '../../common/Icon/Icon';\r\nimport classes from './StorageItem.module.scss';\r\nimport { Storage } from '../../../@types/storages';\r\nimport { formatBytes } from '../../../utils/helpers';\r\nimport EditStorage from '../EditStorage/EditStorage';\r\nimport Modal from '../../common/Modal/Modal';\r\nimport { useDeleteStorage, useVerifyStorage } from '../../../services/storage';\r\nimport ActionModal from '../../common/ActionModal/ActionModal';\r\n\r\ninterface StorageItemProps {\r\n storage: Storage;\r\n layout: 'list' | 'grid';\r\n}\r\n\r\nconst StorageItem = ({ storage, layout }: StorageItemProps) => {\r\n const [showSettings, setShowSettings] = useState(false);\r\n const [showEditModal, setShowEditModal] = useState(false);\r\n const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n const [showVerifyModal, setShowVerifyModal] = useState(false);\r\n const { id, name, type, plans = [], usedSize = 200, storageTypeName, settings = {} } = storage;\r\n const deleteStorageMutation = useDeleteStorage();\r\n const verifyStorageMutation = useVerifyStorage();\r\n const isLocalStorage = id === 'local';\r\n const description = settings.description as string;\r\n\r\n const removeStorage = () => {\r\n deleteStorageMutation.mutate(storage.id, {\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error Removing Storage!`);\r\n },\r\n onSuccess: (data: any) => {\r\n console.log('Success :', data);\r\n toast.success(`Removed Storage Successfully!`, { autoClose: 5000 });\r\n close();\r\n },\r\n });\r\n };\r\n\r\n return (\r\n <div\r\n key={id}\r\n className={`${classes.storage} ${layout === 'grid' ? classes.storageGrid : classes.storageList} ${showEditModal || showDeleteModal || showVerifyModal ? classes.storageEditing : ''}`}\r\n >\r\n <div className={classes.leftContent}>\r\n <div className={classes.storageType}>\r\n <img src={`providers/${type}.png`} />\r\n </div>\r\n\r\n <div className={classes.content}>\r\n <div className={classes.title} onClick={() => !isLocalStorage && setShowEditModal(true)}>\r\n <h4>{name}</h4>\r\n {description && (\r\n <i className={classes.planDescription} data-tooltip-id=\"appTooltip\" data-tooltip-content={description} data-tooltip-place=\"top\">\r\n <Icon type=\"note\" size={13} />\r\n </i>\r\n )}\r\n {isLocalStorage && <Icon type=\"lock\" size={14} />}\r\n </div>\r\n <div>{storageTypeName}</div>\r\n </div>\r\n </div>\r\n <div className={classes.rightContent}>\r\n <div className={classes.info}>\r\n <Icon type=\"backup\" size={14} /> <i>{plans.length} Plans</i>\r\n </div>\r\n <div className={classes.info}>\r\n <Icon type=\"disk\" size={14} /> <i>{formatBytes(usedSize)}</i>\r\n </div>\r\n <button\r\n className={`${classes.moreBtn} ${showSettings ? classes.moreBtnActive : ''}`}\r\n onClick={() => setShowSettings(!showSettings)}\r\n disabled={isLocalStorage}\r\n >\r\n <Icon type=\"dots-vertical\" size={14} />\r\n </button>\r\n </div>\r\n {showSettings && (\r\n <div className={classes.settings}>\r\n {!isLocalStorage && (\r\n <>\r\n <button\r\n onClick={() => {\r\n setShowEditModal(true);\r\n setShowSettings(false);\r\n }}\r\n >\r\n <Icon type=\"edit-settings\" size={14} /> Edit\r\n </button>\r\n <button\r\n onClick={() => {\r\n setShowVerifyModal(true);\r\n setShowSettings(false);\r\n verifyStorageMutation.mutate(storage.id);\r\n }}\r\n >\r\n <Icon type=\"verify\" size={14} /> Verify\r\n </button>\r\n <button\r\n onClick={() => {\r\n setShowDeleteModal(true);\r\n setShowSettings(false);\r\n }}\r\n >\r\n <Icon type=\"trash\" size={14} /> Remove\r\n </button>\r\n </>\r\n )}\r\n </div>\r\n )}\r\n {showEditModal && <EditStorage close={() => setShowEditModal(false)} storage={storage} />}\r\n {showVerifyModal && (\r\n <Modal\r\n title={`Verifying Storage \"${storage.name}\"`}\r\n closeModal={() => !verifyStorageMutation.isPending && setShowVerifyModal(false)}\r\n width=\"600px\"\r\n >\r\n <div className={classes.verifyModalContent}>\r\n {verifyStorageMutation.isPending && (\r\n <>\r\n <Icon type=\"loading\" size={16} /> Verifying Remote Storage Connection...\r\n </>\r\n )}\r\n {verifyStorageMutation.isSuccess && (\r\n <>\r\n <Icon type=\"check\" color=\"teal\" size={14} /> Verification Successful! This Remote Storage Connection is Working Perfectly!\r\n </>\r\n )}\r\n {verifyStorageMutation.isError && (\r\n <>\r\n <Icon type=\"error\" color=\"indianred\" size={16} /> Error Verifying Remote Storage Connection!{' '}\r\n {verifyStorageMutation.error?.toString() || ''}\r\n </>\r\n )}\r\n </div>\r\n </Modal>\r\n )}\r\n {showDeleteModal && (\r\n <ActionModal\r\n title={`Remove Storage`}\r\n message={<>{`Are you sure you want to delete this Storage?`}</>}\r\n closeModal={() => setShowDeleteModal(false)}\r\n primaryAction={{\r\n title: `Yes, Remove Storage`,\r\n type: 'danger',\r\n icon: 'trash',\r\n isPending: deleteStorageMutation.isPending,\r\n action: () => removeStorage(),\r\n }}\r\n />\r\n )}\r\n </div>\r\n );\r\n};\r\nexport default StorageItem;\r\n"],"names":["StorageItem","storage","layout","showSettings","setShowSettings","useState","showEditModal","setShowEditModal","showDeleteModal","setShowDeleteModal","showVerifyModal","setShowVerifyModal","id","name","type","plans","usedSize","storageTypeName","settings","deleteStorageMutation","useDeleteStorage","verifyStorageMutation","useVerifyStorage","isLocalStorage","description","removeStorage","error","toast","data","jsxs","classes","jsx","Icon","formatBytes","Fragment","EditStorage","Modal","_a","ActionModal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StorageItem.js","sources":["../../../../src/components/Storage/StorageItem/StorageItem.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport Icon from '../../common/Icon/Icon';\r\nimport classes from './StorageItem.module.scss';\r\nimport { Storage } from '../../../@types/storages';\r\nimport { formatBytes } from '../../../utils/helpers';\r\nimport EditStorage from '../EditStorage/EditStorage';\r\nimport Modal from '../../common/Modal/Modal';\r\nimport { useDeleteStorage, useVerifyStorage } from '../../../services/storage';\r\nimport ActionModal from '../../common/ActionModal/ActionModal';\r\n\r\ninterface StorageItemProps {\r\n storage: Storage;\r\n layout: 'list' | 'grid';\r\n}\r\n\r\nconst StorageItem = ({ storage, layout }: StorageItemProps) => {\r\n const [showSettings, setShowSettings] = useState(false);\r\n const [showEditModal, setShowEditModal] = useState(false);\r\n const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n const [showVerifyModal, setShowVerifyModal] = useState(false);\r\n const { id, name, type, plans = [], usedSize = 200, storageTypeName, settings = {} } = storage;\r\n const deleteStorageMutation = useDeleteStorage();\r\n const verifyStorageMutation = useVerifyStorage();\r\n const isLocalStorage = id === 'local';\r\n const description = settings.description as string;\r\n\r\n const removeStorage = () => {\r\n deleteStorageMutation.mutate(storage.id, {\r\n onError: (error: Error) => {\r\n console.log('error :', error?.message);\r\n toast.error(error.message || `Error Removing Storage!`);\r\n },\r\n onSuccess: (data: any) => {\r\n console.log('Success :', data);\r\n toast.success(`Removed Storage Successfully!`, { autoClose: 5000 });\r\n },\r\n });\r\n };\r\n\r\n return (\r\n <div\r\n key={id}\r\n className={`${classes.storage} ${layout === 'grid' ? classes.storageGrid : classes.storageList} ${showEditModal || showDeleteModal || showVerifyModal ? classes.storageEditing : ''}`}\r\n >\r\n <div className={classes.leftContent}>\r\n <div className={classes.storageType}>\r\n <img src={`providers/${type}.png`} />\r\n </div>\r\n\r\n <div className={classes.content}>\r\n <div className={classes.title} onClick={() => !isLocalStorage && setShowEditModal(true)}>\r\n <h4>{name}</h4>\r\n {description && (\r\n <i className={classes.planDescription} data-tooltip-id=\"appTooltip\" data-tooltip-content={description} data-tooltip-place=\"top\">\r\n <Icon type=\"note\" size={13} />\r\n </i>\r\n )}\r\n {isLocalStorage && <Icon type=\"lock\" size={14} />}\r\n </div>\r\n <div>{storageTypeName}</div>\r\n </div>\r\n </div>\r\n <div className={classes.rightContent}>\r\n <div className={classes.info}>\r\n <Icon type=\"backup\" size={14} /> <i>{plans.length} Plans</i>\r\n </div>\r\n <div className={classes.info}>\r\n <Icon type=\"disk\" size={14} /> <i>{formatBytes(usedSize)}</i>\r\n </div>\r\n <button\r\n className={`${classes.moreBtn} ${showSettings ? classes.moreBtnActive : ''}`}\r\n onClick={() => setShowSettings(!showSettings)}\r\n disabled={isLocalStorage}\r\n >\r\n <Icon type=\"dots-vertical\" size={14} />\r\n </button>\r\n </div>\r\n {showSettings && (\r\n <div className={classes.settings}>\r\n {!isLocalStorage && (\r\n <>\r\n <button\r\n onClick={() => {\r\n setShowEditModal(true);\r\n setShowSettings(false);\r\n }}\r\n >\r\n <Icon type=\"edit-settings\" size={14} /> Edit\r\n </button>\r\n <button\r\n onClick={() => {\r\n setShowVerifyModal(true);\r\n setShowSettings(false);\r\n verifyStorageMutation.mutate(storage.id);\r\n }}\r\n >\r\n <Icon type=\"verify\" size={14} /> Verify\r\n </button>\r\n <button\r\n onClick={() => {\r\n setShowDeleteModal(true);\r\n setShowSettings(false);\r\n }}\r\n >\r\n <Icon type=\"trash\" size={14} /> Remove\r\n </button>\r\n </>\r\n )}\r\n </div>\r\n )}\r\n {showEditModal && <EditStorage close={() => setShowEditModal(false)} storage={storage} />}\r\n {showVerifyModal && (\r\n <Modal\r\n title={`Verifying Storage \"${storage.name}\"`}\r\n closeModal={() => !verifyStorageMutation.isPending && setShowVerifyModal(false)}\r\n width=\"600px\"\r\n >\r\n <div className={classes.verifyModalContent}>\r\n {verifyStorageMutation.isPending && (\r\n <>\r\n <Icon type=\"loading\" size={16} /> Verifying Remote Storage Connection...\r\n </>\r\n )}\r\n {verifyStorageMutation.isSuccess && (\r\n <>\r\n <Icon type=\"check\" color=\"teal\" size={14} /> Verification Successful! This Remote Storage Connection is Working Perfectly!\r\n </>\r\n )}\r\n {verifyStorageMutation.isError && (\r\n <>\r\n <Icon type=\"error\" color=\"indianred\" size={16} /> Error Verifying Remote Storage Connection!{' '}\r\n {verifyStorageMutation.error?.toString() || ''}\r\n </>\r\n )}\r\n </div>\r\n </Modal>\r\n )}\r\n {showDeleteModal && (\r\n <ActionModal\r\n title={`Remove Storage`}\r\n message={<>{`Are you sure you want to delete this Storage?`}</>}\r\n closeModal={() => setShowDeleteModal(false)}\r\n primaryAction={{\r\n title: `Yes, Remove Storage`,\r\n type: 'danger',\r\n icon: 'trash',\r\n isPending: deleteStorageMutation.isPending,\r\n action: () => removeStorage(),\r\n }}\r\n />\r\n )}\r\n </div>\r\n );\r\n};\r\nexport default StorageItem;\r\n"],"names":["StorageItem","storage","layout","showSettings","setShowSettings","useState","showEditModal","setShowEditModal","showDeleteModal","setShowDeleteModal","showVerifyModal","setShowVerifyModal","id","name","type","plans","usedSize","storageTypeName","settings","deleteStorageMutation","useDeleteStorage","verifyStorageMutation","useVerifyStorage","isLocalStorage","description","removeStorage","error","toast","data","jsxs","classes","jsx","Icon","formatBytes","Fragment","EditStorage","Modal","_a","ActionModal"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoragePicker.d.ts","sourceRoot":"","sources":["../../../../../src/components/common/form/StoragePicker/StoragePicker.tsx"],"names":[],"mappings":"AASA,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"StoragePicker.d.ts","sourceRoot":"","sources":["../../../../../src/components/common/form/StoragePicker/StoragePicker.tsx"],"names":[],"mappings":"AASA,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,UAAU,kBAAkB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAClE;AAED,QAAA,MAAM,aAAa,GAAI,0DAAuE,kBAAkB,4CAiH/G,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1,86 +1,92 @@
|
|
|
1
|
-
import { jsx as o, jsxs as
|
|
2
|
-
import { useState as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { useGetStorages as
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
const
|
|
11
|
-
const [
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
import { jsx as o, jsxs as h } from "react/jsx-runtime";
|
|
2
|
+
import { useState as f, useMemo as F, useEffect as k } from "react";
|
|
3
|
+
import r from "./StoragePicker.module.scss.js";
|
|
4
|
+
import O from "../Select/Select.js";
|
|
5
|
+
import { useGetStorages as U } from "../../../../services/storage.js";
|
|
6
|
+
import b from "../Input/Input.js";
|
|
7
|
+
import j from "../../FolderPicker/FolderPicker.js";
|
|
8
|
+
import q from "../../Icon/Icon.js";
|
|
9
|
+
import V from "../../../Storage/AddStorage/AddStorage.js";
|
|
10
|
+
const H = ({ onUpdate: w, storagePath: N = "", storageId: m, disabled: i = !1, deviceId: $ }) => {
|
|
11
|
+
const [t, g] = f(), [v, P] = f(!1), [y, S] = f(!1), [l, u] = f(() => N), p = (t == null ? void 0 : t.type) === "local", n = (t == null ? void 0 : t.defaultPath) && (t == null ? void 0 : t.defaultPath) !== "/", M = n ? `${t.defaultPath}${l ? `/${l}` : ""}` : l, { data: d } = U(), c = [...(d == null ? void 0 : d.result) || []];
|
|
12
|
+
console.log("allStorages :", c), console.log("selectedStorage :", t);
|
|
13
|
+
const x = F(() => c.map(({ name: a, id: s, type: B }) => ({
|
|
14
|
+
label: a,
|
|
15
|
+
value: s.toString(),
|
|
16
|
+
image: /* @__PURE__ */ o("img", { src: `/providers/${B}.png` })
|
|
17
|
+
})), [c]), A = (e) => {
|
|
18
|
+
if (console.log("storageID :", e), e === "add_new")
|
|
17
19
|
return S(!0);
|
|
18
|
-
const
|
|
19
|
-
(
|
|
20
|
+
const a = c.find((s) => s.id == e);
|
|
21
|
+
(a || e === "local") && g(a);
|
|
20
22
|
};
|
|
21
|
-
return
|
|
22
|
-
if (
|
|
23
|
-
const
|
|
24
|
-
|
|
23
|
+
return k(() => {
|
|
24
|
+
if (c.length > 0 && m) {
|
|
25
|
+
const e = c.find((a) => a.id === m);
|
|
26
|
+
if (g(e), e != null && e.defaultPath && e.defaultPath !== "/") {
|
|
27
|
+
const a = e.defaultPath + "/";
|
|
28
|
+
u((s) => s.startsWith(a) ? s.slice(a.length) : s);
|
|
29
|
+
}
|
|
25
30
|
}
|
|
26
|
-
}, [
|
|
27
|
-
|
|
28
|
-
}, [
|
|
29
|
-
/* @__PURE__ */ o("div", { className:
|
|
30
|
-
/* @__PURE__ */ o("div", { className:
|
|
31
|
-
|
|
31
|
+
}, [d]), k(() => {
|
|
32
|
+
t && w({ storage: t, path: M });
|
|
33
|
+
}, [t, l]), /* @__PURE__ */ h("div", { className: r.storagePicker, children: [
|
|
34
|
+
/* @__PURE__ */ o("div", { className: r.storagePickerInput, children: /* @__PURE__ */ h("div", { children: [
|
|
35
|
+
/* @__PURE__ */ o("div", { className: r.storage, children: /* @__PURE__ */ o(
|
|
36
|
+
O,
|
|
32
37
|
{
|
|
33
|
-
fieldValue:
|
|
38
|
+
fieldValue: t != null && t.id ? t.id : "",
|
|
34
39
|
options: [
|
|
35
40
|
{ label: "Select Storage", value: "", icon: "storages" },
|
|
36
|
-
...
|
|
41
|
+
...x,
|
|
37
42
|
{ label: "+ Add New Storage", value: "add_new", icon: "plus" }
|
|
38
43
|
],
|
|
39
44
|
onUpdate: A,
|
|
40
45
|
full: !0,
|
|
41
|
-
disabled:
|
|
46
|
+
disabled: i
|
|
42
47
|
}
|
|
43
48
|
) }),
|
|
44
|
-
/* @__PURE__ */
|
|
49
|
+
/* @__PURE__ */ h("div", { className: `${r.path} ${n ? r.withBucket : ""}`, children: [
|
|
50
|
+
n && /* @__PURE__ */ o("span", { className: r.defaultPath, title: `Bucket: ${t.defaultPath}`, children: t.defaultPath + "/" }),
|
|
45
51
|
/* @__PURE__ */ o(
|
|
46
|
-
|
|
52
|
+
b,
|
|
47
53
|
{
|
|
48
|
-
disabled:
|
|
49
|
-
fieldValue:
|
|
50
|
-
onUpdate: (
|
|
51
|
-
placeholder:
|
|
54
|
+
disabled: i,
|
|
55
|
+
fieldValue: l,
|
|
56
|
+
onUpdate: (e) => u(e.startsWith("/") ? e.slice(1) : e),
|
|
57
|
+
placeholder: p ? "Select a folder" : n ? "subfolder" : "folder-or-bucket/subfolder",
|
|
52
58
|
full: !0,
|
|
53
|
-
required: !
|
|
54
|
-
error: !
|
|
59
|
+
required: !i && p,
|
|
60
|
+
error: !i && p && !l ? "Required" : ""
|
|
55
61
|
}
|
|
56
62
|
),
|
|
57
|
-
(
|
|
63
|
+
(t == null ? void 0 : t.type) && !i && t.type === "local" && /* @__PURE__ */ o(
|
|
58
64
|
"button",
|
|
59
65
|
{
|
|
60
|
-
className:
|
|
66
|
+
className: r.fileManagerBtn,
|
|
61
67
|
"data-tooltip-id": "appTooltip",
|
|
62
68
|
"data-tooltip-content": "Open FileManager to Select Directory",
|
|
63
69
|
"data-tooltip-place": "top",
|
|
64
|
-
onClick: () =>
|
|
65
|
-
children: /* @__PURE__ */ o(
|
|
70
|
+
onClick: () => P(!0),
|
|
71
|
+
children: /* @__PURE__ */ o(q, { type: "folders", size: 16 })
|
|
66
72
|
}
|
|
67
73
|
)
|
|
68
74
|
] })
|
|
69
75
|
] }) }),
|
|
70
|
-
|
|
71
|
-
|
|
76
|
+
v && !i && /* @__PURE__ */ o(
|
|
77
|
+
j,
|
|
72
78
|
{
|
|
73
|
-
deviceId:
|
|
79
|
+
deviceId: $ || "main",
|
|
74
80
|
title: "Select Path",
|
|
75
|
-
selected:
|
|
76
|
-
close: () =>
|
|
77
|
-
onSelect: (
|
|
81
|
+
selected: l,
|
|
82
|
+
close: () => P(!1),
|
|
83
|
+
onSelect: (e) => u(e)
|
|
78
84
|
}
|
|
79
85
|
),
|
|
80
|
-
y && /* @__PURE__ */ o(
|
|
86
|
+
y && /* @__PURE__ */ o(V, { close: () => S(!1) })
|
|
81
87
|
] });
|
|
82
88
|
};
|
|
83
89
|
export {
|
|
84
|
-
|
|
90
|
+
H as default
|
|
85
91
|
};
|
|
86
92
|
//# sourceMappingURL=StoragePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoragePicker.js","sources":["../../../../../src/components/common/form/StoragePicker/StoragePicker.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\r\nimport classes from './StoragePicker.module.scss';\r\nimport Select from '../Select/Select';\r\nimport { useGetStorages } from '../../../../services/storage';\r\nimport Input from '../Input/Input';\r\nimport FolderPicker from '../../FolderPicker/FolderPicker';\r\nimport Icon from '../../Icon/Icon';\r\nimport AddStorage from '../../../Storage/AddStorage/AddStorage';\r\n\r\ntype storageItem = { name: string; id: string; type: string };\r\n\r\ninterface StoragePickerProps {\r\n storagePath?: string;\r\n storageId?: string;\r\n disabled?: boolean;\r\n deviceId?: string;\r\n onUpdate: (val: { storage: storageItem; path: string }) => void;\r\n}\r\n\r\nconst StoragePicker = ({ onUpdate, storagePath = '', storageId, disabled = false, deviceId }: StoragePickerProps) => {\r\n const [selectedStorage, setSelectedStorage] = useState<null | storageItem>();\r\n const [showFolderPicker, setShowFolderPicker] = useState(false);\r\n const [showAddStorageModal, setShowAddStorageModal] = useState(false);\r\n const [path, setPath] = useState(() => storagePath);\r\n const isLocalStorage = selectedStorage?.type === 'local';\r\n\r\n const { data: allStorageData } = useGetStorages();\r\n const allUserStorages = (allStorageData?.result as storageItem[]) || [];\r\n const allStorages = [...allUserStorages];\r\n\r\n const storageOptions = useMemo(() => {\r\n const storageOpts = allStorages.map(({ name, id, type }) => ({\r\n label: name,\r\n value: id.toString(),\r\n image: <img src={`/providers/${type}.png`} />,\r\n }));\r\n return storageOpts;\r\n }, [allStorages]);\r\n\r\n const selectStorage = (storageID: string) => {\r\n console.log('storageID :', storageID);\r\n if (storageID === 'add_new') {\r\n return setShowAddStorageModal(true);\r\n }\r\n const theStorage = allStorages.find((s) => s.id == storageID);\r\n if (theStorage || storageID === 'local') {\r\n setSelectedStorage(theStorage);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (allStorages.length > 0 && storageId) {\r\n const currentStorage = allStorages.find((s) => s.id === storageId);\r\n setSelectedStorage(currentStorage);\r\n }\r\n }, [allStorageData]);\r\n\r\n useEffect(() => {\r\n if (selectedStorage) {\r\n onUpdate({ storage: selectedStorage, path });\r\n }\r\n }, [selectedStorage, path]);\r\n\r\n // console.log('Storage path :', path, !disabled && isLocalStorage && !path);\r\n\r\n return (\r\n <div className={classes.storagePicker}>\r\n <div className={classes.storagePickerInput}>\r\n <div>\r\n <div className={classes.storage}>\r\n <Select\r\n fieldValue={selectedStorage?.id ? selectedStorage.id : ''}\r\n options={[\r\n { label: 'Select Storage', value: '', icon: 'storages' },\r\n ...storageOptions,\r\n { label: '+ Add New Storage', value: 'add_new', icon: 'plus' },\r\n ]}\r\n onUpdate={selectStorage}\r\n full={true}\r\n disabled={disabled}\r\n />\r\n </div>\r\n <div className={classes.path}>\r\n <Input\r\n disabled={disabled}\r\n fieldValue={path}\r\n onUpdate={(val) => setPath(val)}\r\n placeholder={isLocalStorage ? 'Select a folder' : `folder-or-bucket/subfolder`}\r\n full={true}\r\n required={!disabled && isLocalStorage}\r\n error={(!disabled && isLocalStorage && !path ? 'Required' : '') as string}\r\n />\r\n {selectedStorage?.type && !disabled && selectedStorage.type === 'local' && (\r\n <button\r\n className={classes.fileManagerBtn}\r\n data-tooltip-id=\"appTooltip\"\r\n data-tooltip-content=\"Open FileManager to Select Directory\"\r\n data-tooltip-place=\"top\"\r\n onClick={() => setShowFolderPicker(true)}\r\n >\r\n <Icon type=\"folders\" size={16} />\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n {showFolderPicker && !disabled && (\r\n <FolderPicker\r\n deviceId={deviceId || 'main'}\r\n title=\"Select Path\"\r\n selected={path}\r\n close={() => setShowFolderPicker(false)}\r\n onSelect={(newVal) => setPath(newVal)}\r\n />\r\n )}\r\n {showAddStorageModal && <AddStorage close={() => setShowAddStorageModal(false)} />}\r\n </div>\r\n );\r\n};\r\n\r\nexport default StoragePicker;\r\n"],"names":["StoragePicker","onUpdate","storagePath","storageId","disabled","deviceId","selectedStorage","setSelectedStorage","useState","showFolderPicker","setShowFolderPicker","showAddStorageModal","setShowAddStorageModal","path","setPath","isLocalStorage","allStorageData","useGetStorages","allStorages","storageOptions","useMemo","name","id","type","jsx","selectStorage","storageID","theStorage","s","
|
|
1
|
+
{"version":3,"file":"StoragePicker.js","sources":["../../../../../src/components/common/form/StoragePicker/StoragePicker.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\r\nimport classes from './StoragePicker.module.scss';\r\nimport Select from '../Select/Select';\r\nimport { useGetStorages } from '../../../../services/storage';\r\nimport Input from '../Input/Input';\r\nimport FolderPicker from '../../FolderPicker/FolderPicker';\r\nimport Icon from '../../Icon/Icon';\r\nimport AddStorage from '../../../Storage/AddStorage/AddStorage';\r\n\r\ntype storageItem = { name: string; id: string; type: string; defaultPath?: string };\r\n\r\ninterface StoragePickerProps {\r\n storagePath?: string;\r\n storageId?: string;\r\n disabled?: boolean;\r\n deviceId?: string;\r\n onUpdate: (val: { storage: storageItem; path: string }) => void;\r\n}\r\n\r\nconst StoragePicker = ({ onUpdate, storagePath = '', storageId, disabled = false, deviceId }: StoragePickerProps) => {\r\n const [selectedStorage, setSelectedStorage] = useState<null | storageItem>();\r\n const [showFolderPicker, setShowFolderPicker] = useState(false);\r\n const [showAddStorageModal, setShowAddStorageModal] = useState(false);\r\n const [path, setPath] = useState(() => storagePath);\r\n const isLocalStorage = selectedStorage?.type === 'local';\r\n const hasBucketName = selectedStorage?.defaultPath && selectedStorage?.defaultPath !== '/';\r\n const fullPath = hasBucketName ? `${selectedStorage.defaultPath}${path ? `/${path}` : ''}` : path;\r\n\r\n const { data: allStorageData } = useGetStorages();\r\n const allUserStorages = (allStorageData?.result as storageItem[]) || [];\r\n const allStorages = [...allUserStorages];\r\n\r\n console.log('allStorages :', allStorages);\r\n console.log('selectedStorage :', selectedStorage);\r\n\r\n const storageOptions = useMemo(() => {\r\n const storageOpts = allStorages.map(({ name, id, type }) => ({\r\n label: name,\r\n value: id.toString(),\r\n image: <img src={`/providers/${type}.png`} />,\r\n }));\r\n return storageOpts;\r\n }, [allStorages]);\r\n\r\n const selectStorage = (storageID: string) => {\r\n console.log('storageID :', storageID);\r\n if (storageID === 'add_new') {\r\n return setShowAddStorageModal(true);\r\n }\r\n const theStorage = allStorages.find((s) => s.id == storageID);\r\n if (theStorage || storageID === 'local') {\r\n setSelectedStorage(theStorage);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (allStorages.length > 0 && storageId) {\r\n const currentStorage = allStorages.find((s) => s.id === storageId);\r\n setSelectedStorage(currentStorage);\r\n if (currentStorage?.defaultPath && currentStorage.defaultPath !== '/') {\r\n const prefix = currentStorage.defaultPath + '/';\r\n setPath((prev) => (prev.startsWith(prefix) ? prev.slice(prefix.length) : prev));\r\n }\r\n }\r\n }, [allStorageData]);\r\n\r\n useEffect(() => {\r\n if (selectedStorage) {\r\n onUpdate({ storage: selectedStorage, path: fullPath });\r\n }\r\n }, [selectedStorage, path]);\r\n\r\n // console.log('Storage path :', path, !disabled && isLocalStorage && !path);\r\n\r\n return (\r\n <div className={classes.storagePicker}>\r\n <div className={classes.storagePickerInput}>\r\n <div>\r\n <div className={classes.storage}>\r\n <Select\r\n fieldValue={selectedStorage?.id ? selectedStorage.id : ''}\r\n options={[\r\n { label: 'Select Storage', value: '', icon: 'storages' },\r\n ...storageOptions,\r\n { label: '+ Add New Storage', value: 'add_new', icon: 'plus' },\r\n ]}\r\n onUpdate={selectStorage}\r\n full={true}\r\n disabled={disabled}\r\n />\r\n </div>\r\n <div className={`${classes.path} ${hasBucketName ? classes.withBucket : ''}`}>\r\n {hasBucketName && (\r\n <span className={classes.defaultPath} title={`Bucket: ${selectedStorage.defaultPath}`}>\r\n {selectedStorage.defaultPath + '/'}\r\n </span>\r\n )}\r\n <Input\r\n disabled={disabled}\r\n fieldValue={path}\r\n onUpdate={(val) => setPath(val.startsWith('/') ? val.slice(1) : val)} //if the val starts with a slash remove it\r\n placeholder={isLocalStorage ? 'Select a folder' : hasBucketName ? 'subfolder' : `folder-or-bucket/subfolder`}\r\n full={true}\r\n required={!disabled && isLocalStorage}\r\n error={(!disabled && isLocalStorage && !path ? 'Required' : '') as string}\r\n />\r\n {selectedStorage?.type && !disabled && selectedStorage.type === 'local' && (\r\n <button\r\n className={classes.fileManagerBtn}\r\n data-tooltip-id=\"appTooltip\"\r\n data-tooltip-content=\"Open FileManager to Select Directory\"\r\n data-tooltip-place=\"top\"\r\n onClick={() => setShowFolderPicker(true)}\r\n >\r\n <Icon type=\"folders\" size={16} />\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n {showFolderPicker && !disabled && (\r\n <FolderPicker\r\n deviceId={deviceId || 'main'}\r\n title=\"Select Path\"\r\n selected={path}\r\n close={() => setShowFolderPicker(false)}\r\n onSelect={(newVal) => setPath(newVal)}\r\n />\r\n )}\r\n {showAddStorageModal && <AddStorage close={() => setShowAddStorageModal(false)} />}\r\n </div>\r\n );\r\n};\r\n\r\nexport default StoragePicker;\r\n"],"names":["StoragePicker","onUpdate","storagePath","storageId","disabled","deviceId","selectedStorage","setSelectedStorage","useState","showFolderPicker","setShowFolderPicker","showAddStorageModal","setShowAddStorageModal","path","setPath","isLocalStorage","hasBucketName","fullPath","allStorageData","useGetStorages","allStorages","storageOptions","useMemo","name","id","type","jsx","selectStorage","storageID","theStorage","useEffect","currentStorage","s","prefix","prev","jsxs","classes","Select","Input","val","Icon","FolderPicker","newVal","AddStorage"],"mappings":"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"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
const t = "
|
|
1
|
+
const t = "_storagePicker_kvugu", e = "_storagePickerInput_8qVhl", a = "_storage_VHvA4", r = "_path_5lhxE", s = "_fileManagerBtn_LmfTc", c = "_defaultPath_y5rOr", o = "_withBucket_3LxSW", n = {
|
|
2
2
|
storagePicker: t,
|
|
3
3
|
storagePickerInput: e,
|
|
4
4
|
storage: a,
|
|
5
5
|
path: r,
|
|
6
|
-
fileManagerBtn: s
|
|
6
|
+
fileManagerBtn: s,
|
|
7
|
+
defaultPath: c,
|
|
8
|
+
withBucket: o
|
|
7
9
|
};
|
|
8
10
|
export {
|
|
9
|
-
|
|
11
|
+
n as default,
|
|
12
|
+
c as defaultPath,
|
|
10
13
|
s as fileManagerBtn,
|
|
11
14
|
r as path,
|
|
12
15
|
a as storage,
|
|
13
16
|
t as storagePicker,
|
|
14
|
-
e as storagePickerInput
|
|
17
|
+
e as storagePickerInput,
|
|
18
|
+
o as withBucket
|
|
15
19
|
};
|
|
16
20
|
//# sourceMappingURL=StoragePicker.module.scss.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoragePicker.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StoragePicker.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|