@plutonhq/core-frontend 0.1.19 → 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.
@@ -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,4CA2IzD,CAAC;AACF,eAAe,WAAW,CAAC"}
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 }), close();
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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"}
@@ -2,6 +2,7 @@ type storageItem = {
2
2
  name: string;
3
3
  id: string;
4
4
  type: string;
5
+ defaultPath?: string;
5
6
  };
6
7
  interface StoragePickerProps {
7
8
  storagePath?: string;
@@ -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;AAE9D,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,4CAmG/G,CAAC;AAEF,eAAe,aAAa,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 f } from "react/jsx-runtime";
2
- import { useState as n, useMemo as O, useEffect as v } from "react";
3
- import i from "./StoragePicker.module.scss.js";
4
- import U from "../Select/Select.js";
5
- import { useGetStorages as x } from "../../../../services/storage.js";
6
- import j from "../Input/Input.js";
7
- import q from "../../FolderPicker/FolderPicker.js";
8
- import V from "../../Icon/Icon.js";
9
- import _ from "../../../Storage/AddStorage/AddStorage.js";
10
- const $ = ({ onUpdate: k, storagePath: P = "", storageId: u, disabled: r = !1, deviceId: w }) => {
11
- const [e, m] = n(), [N, g] = n(!1), [y, S] = n(!1), [a, h] = n(() => P), d = (e == null ? void 0 : e.type) === "local", { data: c } = x(), s = [...(c == null ? void 0 : c.result) || []], M = O(() => s.map(({ name: l, id: p, type: F }) => ({
12
- label: l,
13
- value: p.toString(),
14
- image: /* @__PURE__ */ o("img", { src: `/providers/${F}.png` })
15
- })), [s]), A = (t) => {
16
- if (console.log("storageID :", t), t === "add_new")
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 l = s.find((p) => p.id == t);
19
- (l || t === "local") && m(l);
20
+ const a = c.find((s) => s.id == e);
21
+ (a || e === "local") && g(a);
20
22
  };
21
- return v(() => {
22
- if (s.length > 0 && u) {
23
- const t = s.find((l) => l.id === u);
24
- m(t);
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
- }, [c]), v(() => {
27
- e && k({ storage: e, path: a });
28
- }, [e, a]), /* @__PURE__ */ f("div", { className: i.storagePicker, children: [
29
- /* @__PURE__ */ o("div", { className: i.storagePickerInput, children: /* @__PURE__ */ f("div", { children: [
30
- /* @__PURE__ */ o("div", { className: i.storage, children: /* @__PURE__ */ o(
31
- U,
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: e != null && e.id ? e.id : "",
38
+ fieldValue: t != null && t.id ? t.id : "",
34
39
  options: [
35
40
  { label: "Select Storage", value: "", icon: "storages" },
36
- ...M,
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: r
46
+ disabled: i
42
47
  }
43
48
  ) }),
44
- /* @__PURE__ */ f("div", { className: i.path, children: [
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
- j,
52
+ b,
47
53
  {
48
- disabled: r,
49
- fieldValue: a,
50
- onUpdate: (t) => h(t),
51
- placeholder: d ? "Select a folder" : "folder-or-bucket/subfolder",
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: !r && d,
54
- error: !r && d && !a ? "Required" : ""
59
+ required: !i && p,
60
+ error: !i && p && !l ? "Required" : ""
55
61
  }
56
62
  ),
57
- (e == null ? void 0 : e.type) && !r && e.type === "local" && /* @__PURE__ */ o(
63
+ (t == null ? void 0 : t.type) && !i && t.type === "local" && /* @__PURE__ */ o(
58
64
  "button",
59
65
  {
60
- className: i.fileManagerBtn,
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: () => g(!0),
65
- children: /* @__PURE__ */ o(V, { type: "folders", size: 16 })
70
+ onClick: () => P(!0),
71
+ children: /* @__PURE__ */ o(q, { type: "folders", size: 16 })
66
72
  }
67
73
  )
68
74
  ] })
69
75
  ] }) }),
70
- N && !r && /* @__PURE__ */ o(
71
- q,
76
+ v && !i && /* @__PURE__ */ o(
77
+ j,
72
78
  {
73
- deviceId: w || "main",
79
+ deviceId: $ || "main",
74
80
  title: "Select Path",
75
- selected: a,
76
- close: () => g(!1),
77
- onSelect: (t) => h(t)
81
+ selected: l,
82
+ close: () => P(!1),
83
+ onSelect: (e) => u(e)
78
84
  }
79
85
  ),
80
- y && /* @__PURE__ */ o(_, { close: () => S(!1) })
86
+ y && /* @__PURE__ */ o(V, { close: () => S(!1) })
81
87
  ] });
82
88
  };
83
89
  export {
84
- $ as default
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","useEffect","currentStorage","jsxs","classes","Select","Input","val","Icon","FolderPicker","newVal","AddStorage"],"mappings":"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"}
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 = "_storagePicker_7tEY0", e = "_storagePickerInput_MzxSo", a = "_storage_BfrQ4", r = "_path_d5gAH", s = "_fileManagerBtn_dWMAK", o = {
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
- o as default,
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":";;;;;;;;;"}