@plutonhq/core-frontend 0.1.26 → 0.1.28

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.
Files changed (73) hide show
  1. package/dist-lib/@types/backups.d.ts +3 -0
  2. package/dist-lib/@types/backups.d.ts.map +1 -1
  3. package/dist-lib/@types/plans.d.ts +2 -0
  4. package/dist-lib/@types/plans.d.ts.map +1 -1
  5. package/dist-lib/@types/restores.d.ts +2 -0
  6. package/dist-lib/@types/restores.d.ts.map +1 -1
  7. package/dist-lib/components/Device/DeviceInfo/DeviceInfo.module.scss.js +26 -26
  8. package/dist-lib/components/Plan/PlanBackups/PlanBackups.d.ts.map +1 -1
  9. package/dist-lib/components/Plan/PlanBackups/PlanBackups.js +26 -26
  10. package/dist-lib/components/Plan/PlanBackups/PlanBackups.js.map +1 -1
  11. package/dist-lib/components/Plan/PlanForm/PlanForm.d.ts.map +1 -1
  12. package/dist-lib/components/Plan/PlanForm/PlanForm.js +64 -80
  13. package/dist-lib/components/Plan/PlanForm/PlanForm.js.map +1 -1
  14. package/dist-lib/components/Plan/PlanHistory/PlanHistory.d.ts.map +1 -1
  15. package/dist-lib/components/Plan/PlanHistory/PlanHistory.js +7 -7
  16. package/dist-lib/components/Plan/PlanHistory/PlanHistory.js.map +1 -1
  17. package/dist-lib/components/Plan/PlanSettings/PlanSourceSettings.d.ts.map +1 -1
  18. package/dist-lib/components/Plan/PlanSettings/PlanSourceSettings.js +39 -30
  19. package/dist-lib/components/Plan/PlanSettings/PlanSourceSettings.js.map +1 -1
  20. package/dist-lib/components/Plan/PlanStats/PlanStats.d.ts.map +1 -1
  21. package/dist-lib/components/Plan/PlanStats/PlanStats.js +25 -25
  22. package/dist-lib/components/Plan/PlanStats/PlanStats.js.map +1 -1
  23. package/dist-lib/components/Plan/PlanStats/PlanStats.module.scss.js +1 -1
  24. package/dist-lib/components/common/Icon/Icon.d.ts.map +1 -1
  25. package/dist-lib/components/common/Icon/Icon.js +12 -1
  26. package/dist-lib/components/common/Icon/Icon.js.map +1 -1
  27. package/dist-lib/components/common/form/IntervalField/IntervalField.d.ts.map +1 -1
  28. package/dist-lib/components/common/form/IntervalField/IntervalField.js +66 -46
  29. package/dist-lib/components/common/form/IntervalField/IntervalField.js.map +1 -1
  30. package/dist-lib/components/common/form/StoragePicker/StoragePicker.d.ts.map +1 -1
  31. package/dist-lib/components/common/form/StoragePicker/StoragePicker.js +49 -47
  32. package/dist-lib/components/common/form/StoragePicker/StoragePicker.js.map +1 -1
  33. package/dist-lib/components/common/form/TagsInput/TagsInput.d.ts +2 -1
  34. package/dist-lib/components/common/form/TagsInput/TagsInput.d.ts.map +1 -1
  35. package/dist-lib/components/common/form/TagsInput/TagsInput.js +15 -15
  36. package/dist-lib/components/common/form/TagsInput/TagsInput.js.map +1 -1
  37. package/dist-lib/components/common/form/TimePicker/TimePicker.module.scss.js +13 -13
  38. package/dist-lib/hooks/usePlanSingleActions.js +7 -7
  39. package/dist-lib/hooks/usePlanSingleActions.js.map +1 -1
  40. package/dist-lib/routes/Settings/Settings.module.scss.js +2 -2
  41. package/dist-lib/styles/core-frontend.css +1 -1
  42. package/dist-lib/styles/global.scss +6 -0
  43. package/dist-lib/utils/constants.js +1 -1
  44. package/dist-lib/utils/constants.js.map +1 -1
  45. package/dist-lib/utils/helpers.d.ts +2 -0
  46. package/dist-lib/utils/helpers.d.ts.map +1 -1
  47. package/dist-lib/utils/helpers.js +55 -33
  48. package/dist-lib/utils/helpers.js.map +1 -1
  49. package/dist-lib/utils/plans.js +6 -6
  50. package/dist-lib/utils/plans.js.map +1 -1
  51. package/dist-lib/utils.js +34 -33
  52. package/package.json +1 -1
  53. package/src/@types/backups.ts +3 -0
  54. package/src/@types/plans.ts +2 -0
  55. package/src/@types/restores.ts +2 -0
  56. package/src/components/Device/DeviceInfo/DeviceInfo.module.scss +1 -0
  57. package/src/components/Plan/PlanBackups/PlanBackups.tsx +5 -2
  58. package/src/components/Plan/PlanForm/PlanForm.tsx +1 -19
  59. package/src/components/Plan/PlanHistory/PlanHistory.tsx +16 -13
  60. package/src/components/Plan/PlanSettings/PlanSourceSettings.tsx +15 -1
  61. package/src/components/Plan/PlanStats/PlanStats.module.scss +3 -0
  62. package/src/components/Plan/PlanStats/PlanStats.tsx +2 -8
  63. package/src/components/common/Icon/Icon.tsx +12 -0
  64. package/src/components/common/form/IntervalField/IntervalField.tsx +21 -1
  65. package/src/components/common/form/StoragePicker/StoragePicker.tsx +8 -1
  66. package/src/components/common/form/TagsInput/TagsInput.tsx +3 -2
  67. package/src/components/common/form/TimePicker/TimePicker.module.scss +1 -0
  68. package/src/hooks/usePlanSingleActions.tsx +2 -2
  69. package/src/routes/Settings/Settings.module.scss +1 -1
  70. package/src/styles/global.scss +6 -0
  71. package/src/utils/constants.ts +1 -1
  72. package/src/utils/helpers.ts +25 -0
  73. package/src/utils/plans.ts +3 -3
@@ -1,9 +1,9 @@
1
- import { useState as o } from "react";
1
+ import { useState as r } from "react";
2
2
  import { useParams as U, useNavigate as C } from "react-router";
3
3
  import { toast as t } from "react-toastify";
4
4
  import { usePerformBackup as I, usePausePlan as N, useResumePlan as D, useGetPlan as F } from "../services/plans.js";
5
5
  const J = () => {
6
- const [f, m] = o(!1), [k, h] = o(!1), [w, S] = o(!1), [B, M] = o(!1), [y, E] = o(!1), { id: b } = U(), R = C(), l = I(), p = N(), d = D(), { data: a, isLoading: $, refetch: v, error: A } = F(b), s = (a == null ? void 0 : a.result) || {}, r = s.method === "sync", c = [...s.backups || []].sort((e, n) => n.started - e.started), i = c.filter((e) => e.inProgress), g = (s.restores || []).filter((e) => e.status === "started"), L = c[0], P = i.length > 0 || g.length > 0, u = p.isPending || d.isPending || l.isPending;
6
+ const [f, m] = r(!1), [k, h] = r(!1), [w, S] = r(!1), [B, M] = r(!1), [y, E] = r(!1), { id: b } = U(), R = C(), l = I(), p = N(), d = D(), { data: c, isLoading: $, refetch: v, error: A } = F(b), s = (c == null ? void 0 : c.result) || {}, o = s.method === "sync", a = [...s.backups || []].sort((e, n) => n.started - e.started), i = a.filter((e) => e.inProgress), g = (s.restores || []).filter((e) => e.inProgress), L = o ? a.filter((e) => e.status === "completed")[0] : a[0], P = i.length > 0 || g.length > 0, u = p.isPending || d.isPending || l.isPending;
7
7
  return {
8
8
  // State
9
9
  showDeleteModal: f,
@@ -20,7 +20,7 @@ const J = () => {
20
20
  plan: s,
21
21
  isLoading: $,
22
22
  refetchPlan: v,
23
- sortedHistory: c,
23
+ sortedHistory: a,
24
24
  activeBackups: i,
25
25
  activeRestores: g,
26
26
  lastBackupItem: L,
@@ -54,19 +54,19 @@ const J = () => {
54
54
  return t.error("A Backup/Restore Process is in Progress.");
55
55
  if (u)
56
56
  return;
57
- const e = t.loading(`Starting ${r ? "Sync" : "Backup"}...`);
57
+ const e = t.loading(`Starting ${o ? "Sync" : "Backup"}...`);
58
58
  l.mutate(s.id, {
59
59
  onSuccess: (n) => {
60
60
  t.update(e, {
61
- render: r ? (n == null ? void 0 : n.message) || "Sync initiated successfully! 🚀" : "Backup initiated successfully! 🚀",
61
+ render: o ? (n == null ? void 0 : n.message) || "Sync initiated successfully! 🚀" : "Backup initiated successfully! 🚀",
62
62
  type: "success",
63
63
  isLoading: !1,
64
64
  autoClose: 3e3
65
- }), r || R(`/plan/${s.id}?pendingbackup=1`);
65
+ }), o || R(`/plan/${s.id}?pendingbackup=1`);
66
66
  },
67
67
  onError: (n) => {
68
68
  t.update(e, {
69
- render: `${r ? "Sync" : "Backup"} failed to start. ${(n == null ? void 0 : n.message) || "Unknown Error."}`,
69
+ render: `${o ? "Sync" : "Backup"} failed to start. ${(n == null ? void 0 : n.message) || "Unknown Error."}`,
70
70
  type: "error",
71
71
  isLoading: !1,
72
72
  autoClose: !1,
@@ -1 +1 @@
1
- {"version":3,"file":"usePlanSingleActions.js","sources":["../../src/hooks/usePlanSingleActions.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { useNavigate, useParams } from 'react-router';\r\nimport { toast } from 'react-toastify';\r\nimport { useGetPlan, usePausePlan, usePerformBackup, useResumePlan } from '../services/plans';\r\nimport { Plan } from '../@types/plans';\r\nimport { Backup } from '../@types/backups';\r\nimport { RestoreSlim } from '../@types/restores';\r\n\r\nexport const usePlanSingleActions = (): {\r\n showDeleteModal: boolean;\r\n setShowDeleteModal: (show: boolean) => void;\r\n showEditModal: boolean;\r\n setShowEditModal: (show: boolean) => void;\r\n showPruneModal: boolean;\r\n setShowPruneModal: (show: boolean) => void;\r\n showLogsModal: boolean;\r\n setShowLogsModal: (show: boolean) => void;\r\n showUnlockModal: boolean;\r\n setShowUnlockModal: (show: boolean) => void;\r\n plan: Plan;\r\n isLoading: boolean;\r\n refetchPlan: () => void;\r\n sortedHistory: Backup[];\r\n activeBackups: Backup[];\r\n activeRestores: RestoreSlim[];\r\n lastBackupItem: Backup;\r\n actionInProgress: boolean;\r\n taskPending: boolean;\r\n planError: any;\r\n changeStatus: () => void;\r\n backupNow: () => void;\r\n} => {\r\n const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n const [showEditModal, setShowEditModal] = useState(false);\r\n const [showUnlockModal, setShowUnlockModal] = useState(false);\r\n const [showPruneModal, setShowPruneModal] = useState(false);\r\n const [showLogsModal, setShowLogsModal] = useState(false);\r\n\r\n const { id } = useParams();\r\n const navigate = useNavigate();\r\n\r\n const performBackupMutation = usePerformBackup();\r\n const pauseMutation = usePausePlan();\r\n const resumeMutation = useResumePlan();\r\n\r\n const { data, isLoading, refetch: refetchPlan, error: planError } = useGetPlan(id as string);\r\n const plan: Plan = data?.result || {};\r\n\r\n const isSync = plan.method === 'sync';\r\n\r\n const sortedHistory = [...(plan.backups || [])].sort((a, b) => b.started - a.started);\r\n const activeBackups = sortedHistory.filter((s) => s.inProgress);\r\n const activeRestores = (plan.restores || []).filter((s) => s.status === 'started');\r\n const lastBackupItem = sortedHistory[0];\r\n const actionInProgress = activeBackups.length > 0 || activeRestores.length > 0;\r\n const taskPending = pauseMutation.isPending || resumeMutation.isPending || performBackupMutation.isPending;\r\n\r\n const changeStatus = () => {\r\n if (activeBackups.length > 0) {\r\n return toast.error(`Can't pause a Plan while a Backup is in progress.`);\r\n }\r\n if (plan.inProgress || taskPending) {\r\n return;\r\n }\r\n // isActive, set it to false, else true\r\n // When the action is being performed, the item should grey out and stay inaccessible.\r\n if (plan.isActive) {\r\n toast.promise(pauseMutation.mutateAsync(plan.id), {\r\n pending: 'Pausing backup Plan...',\r\n success: 'Backup Plan Paused',\r\n error: {\r\n render({ data }: any) {\r\n return `Failed to Pause Backup Plan. ${data?.message || 'Unknown Error.'}`;\r\n },\r\n },\r\n });\r\n } else {\r\n toast.promise(resumeMutation.mutateAsync(plan.id), {\r\n pending: 'Resuming backup Plan...',\r\n success: 'Backup Plan Resumed',\r\n error: {\r\n render({ data }: any) {\r\n return `Failed to Resume Backup Plan. ${data?.message || 'Unknown Error.'}`;\r\n },\r\n },\r\n });\r\n }\r\n };\r\n\r\n const backupNow = () => {\r\n if (actionInProgress) {\r\n return toast.error('A Backup/Restore Process is in Progress.');\r\n }\r\n if (taskPending) {\r\n return;\r\n }\r\n\r\n const toastId = toast.loading(`Starting ${isSync ? 'Sync' : 'Backup'}...`);\r\n\r\n performBackupMutation.mutate(plan.id, {\r\n onSuccess: (data) => {\r\n toast.update(toastId, {\r\n render: isSync ? data?.message || 'Sync initiated successfully! 🚀' : 'Backup initiated successfully! 🚀',\r\n type: 'success',\r\n isLoading: false,\r\n autoClose: 3000,\r\n });\r\n if (!isSync) {\r\n navigate(`/plan/${plan.id}?pendingbackup=1`);\r\n }\r\n },\r\n onError: (error: any) => {\r\n toast.update(toastId, {\r\n render: `${isSync ? 'Sync' : 'Backup'} failed to start. ${error?.message || 'Unknown Error.'}`,\r\n type: 'error',\r\n isLoading: false,\r\n autoClose: false,\r\n closeButton: true,\r\n });\r\n },\r\n });\r\n };\r\n\r\n return {\r\n // State\r\n showDeleteModal,\r\n setShowDeleteModal,\r\n showEditModal,\r\n setShowEditModal,\r\n showPruneModal,\r\n setShowPruneModal,\r\n showLogsModal,\r\n setShowLogsModal,\r\n showUnlockModal,\r\n setShowUnlockModal,\r\n\r\n // Data\r\n plan,\r\n isLoading,\r\n refetchPlan,\r\n sortedHistory,\r\n activeBackups,\r\n activeRestores,\r\n lastBackupItem,\r\n actionInProgress,\r\n taskPending,\r\n planError,\r\n\r\n // Actions\r\n changeStatus,\r\n backupNow,\r\n };\r\n};\r\n"],"names":["usePlanSingleActions","showDeleteModal","setShowDeleteModal","useState","showEditModal","setShowEditModal","showUnlockModal","setShowUnlockModal","showPruneModal","setShowPruneModal","showLogsModal","setShowLogsModal","id","useParams","navigate","useNavigate","performBackupMutation","usePerformBackup","pauseMutation","usePausePlan","resumeMutation","useResumePlan","data","isLoading","refetchPlan","planError","useGetPlan","plan","isSync","sortedHistory","a","b","activeBackups","s","activeRestores","lastBackupItem","actionInProgress","taskPending","toast","toastId","error"],"mappings":"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"}
1
+ {"version":3,"file":"usePlanSingleActions.js","sources":["../../src/hooks/usePlanSingleActions.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { useNavigate, useParams } from 'react-router';\r\nimport { toast } from 'react-toastify';\r\nimport { useGetPlan, usePausePlan, usePerformBackup, useResumePlan } from '../services/plans';\r\nimport { Plan } from '../@types/plans';\r\nimport { Backup } from '../@types/backups';\r\nimport { RestoreSlim } from '../@types/restores';\r\n\r\nexport const usePlanSingleActions = (): {\r\n showDeleteModal: boolean;\r\n setShowDeleteModal: (show: boolean) => void;\r\n showEditModal: boolean;\r\n setShowEditModal: (show: boolean) => void;\r\n showPruneModal: boolean;\r\n setShowPruneModal: (show: boolean) => void;\r\n showLogsModal: boolean;\r\n setShowLogsModal: (show: boolean) => void;\r\n showUnlockModal: boolean;\r\n setShowUnlockModal: (show: boolean) => void;\r\n plan: Plan;\r\n isLoading: boolean;\r\n refetchPlan: () => void;\r\n sortedHistory: Backup[];\r\n activeBackups: Backup[];\r\n activeRestores: RestoreSlim[];\r\n lastBackupItem: Backup;\r\n actionInProgress: boolean;\r\n taskPending: boolean;\r\n planError: any;\r\n changeStatus: () => void;\r\n backupNow: () => void;\r\n} => {\r\n const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n const [showEditModal, setShowEditModal] = useState(false);\r\n const [showUnlockModal, setShowUnlockModal] = useState(false);\r\n const [showPruneModal, setShowPruneModal] = useState(false);\r\n const [showLogsModal, setShowLogsModal] = useState(false);\r\n\r\n const { id } = useParams();\r\n const navigate = useNavigate();\r\n\r\n const performBackupMutation = usePerformBackup();\r\n const pauseMutation = usePausePlan();\r\n const resumeMutation = useResumePlan();\r\n\r\n const { data, isLoading, refetch: refetchPlan, error: planError } = useGetPlan(id as string);\r\n const plan: Plan = data?.result || {};\r\n\r\n const isSync = plan.method === 'sync';\r\n\r\n const sortedHistory = [...(plan.backups || [])].sort((a, b) => b.started - a.started);\r\n const activeBackups = sortedHistory.filter((s) => s.inProgress);\r\n const activeRestores = (plan.restores || []).filter((s) => s.inProgress);\r\n const lastBackupItem = isSync ? sortedHistory.filter((s) => s.status === 'completed')[0] : sortedHistory[0];\r\n const actionInProgress = activeBackups.length > 0 || activeRestores.length > 0;\r\n const taskPending = pauseMutation.isPending || resumeMutation.isPending || performBackupMutation.isPending;\r\n\r\n const changeStatus = () => {\r\n if (activeBackups.length > 0) {\r\n return toast.error(`Can't pause a Plan while a Backup is in progress.`);\r\n }\r\n if (plan.inProgress || taskPending) {\r\n return;\r\n }\r\n // isActive, set it to false, else true\r\n // When the action is being performed, the item should grey out and stay inaccessible.\r\n if (plan.isActive) {\r\n toast.promise(pauseMutation.mutateAsync(plan.id), {\r\n pending: 'Pausing backup Plan...',\r\n success: 'Backup Plan Paused',\r\n error: {\r\n render({ data }: any) {\r\n return `Failed to Pause Backup Plan. ${data?.message || 'Unknown Error.'}`;\r\n },\r\n },\r\n });\r\n } else {\r\n toast.promise(resumeMutation.mutateAsync(plan.id), {\r\n pending: 'Resuming backup Plan...',\r\n success: 'Backup Plan Resumed',\r\n error: {\r\n render({ data }: any) {\r\n return `Failed to Resume Backup Plan. ${data?.message || 'Unknown Error.'}`;\r\n },\r\n },\r\n });\r\n }\r\n };\r\n\r\n const backupNow = () => {\r\n if (actionInProgress) {\r\n return toast.error('A Backup/Restore Process is in Progress.');\r\n }\r\n if (taskPending) {\r\n return;\r\n }\r\n\r\n const toastId = toast.loading(`Starting ${isSync ? 'Sync' : 'Backup'}...`);\r\n\r\n performBackupMutation.mutate(plan.id, {\r\n onSuccess: (data) => {\r\n toast.update(toastId, {\r\n render: isSync ? data?.message || 'Sync initiated successfully! 🚀' : 'Backup initiated successfully! 🚀',\r\n type: 'success',\r\n isLoading: false,\r\n autoClose: 3000,\r\n });\r\n if (!isSync) {\r\n navigate(`/plan/${plan.id}?pendingbackup=1`);\r\n }\r\n },\r\n onError: (error: any) => {\r\n toast.update(toastId, {\r\n render: `${isSync ? 'Sync' : 'Backup'} failed to start. ${error?.message || 'Unknown Error.'}`,\r\n type: 'error',\r\n isLoading: false,\r\n autoClose: false,\r\n closeButton: true,\r\n });\r\n },\r\n });\r\n };\r\n\r\n return {\r\n // State\r\n showDeleteModal,\r\n setShowDeleteModal,\r\n showEditModal,\r\n setShowEditModal,\r\n showPruneModal,\r\n setShowPruneModal,\r\n showLogsModal,\r\n setShowLogsModal,\r\n showUnlockModal,\r\n setShowUnlockModal,\r\n\r\n // Data\r\n plan,\r\n isLoading,\r\n refetchPlan,\r\n sortedHistory,\r\n activeBackups,\r\n activeRestores,\r\n lastBackupItem,\r\n actionInProgress,\r\n taskPending,\r\n planError,\r\n\r\n // Actions\r\n changeStatus,\r\n backupNow,\r\n };\r\n};\r\n"],"names":["usePlanSingleActions","showDeleteModal","setShowDeleteModal","useState","showEditModal","setShowEditModal","showUnlockModal","setShowUnlockModal","showPruneModal","setShowPruneModal","showLogsModal","setShowLogsModal","id","useParams","navigate","useNavigate","performBackupMutation","usePerformBackup","pauseMutation","usePausePlan","resumeMutation","useResumePlan","data","isLoading","refetchPlan","planError","useGetPlan","plan","isSync","sortedHistory","a","b","activeBackups","s","activeRestores","lastBackupItem","actionInProgress","taskPending","toast","toastId","error"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const t = "_settings_9KTfa", s = "_settingsContent_FMzh5", n = "_sidebar_5gtyD", e = "_updateBtn_gtEZ3", a = "_tabs_PTJTi", c = "_tabActive_OGIZN", o = "_content_lsiaL", i = {
1
+ const t = "_settings_9FEdJ", s = "_settingsContent_gGFrK", n = "_sidebar_GPVeX", e = "_updateBtn_xSWl2", a = "_tabs_1w1my", c = "_tabActive_xKW9R", o = "_content_vdhSJ", _ = {
2
2
  settings: t,
3
3
  settingsContent: s,
4
4
  sidebar: n,
@@ -9,7 +9,7 @@ const t = "_settings_9KTfa", s = "_settingsContent_FMzh5", n = "_sidebar_5gtyD",
9
9
  };
10
10
  export {
11
11
  o as content,
12
- i as default,
12
+ _ as default,
13
13
  t as settings,
14
14
  s as settingsContent,
15
15
  n as sidebar,