@plutonhq/core-frontend 0.1.6 → 0.1.7

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 (64) hide show
  1. package/dist-lib/components/Plan/Backups/Backups.module.scss.js +44 -42
  2. package/dist-lib/components/Plan/Backups/Backups.module.scss.js.map +1 -1
  3. package/dist-lib/components/Plan/PlanPendingBackup/PlanPendingBackup.d.ts +3 -2
  4. package/dist-lib/components/Plan/PlanPendingBackup/PlanPendingBackup.d.ts.map +1 -1
  5. package/dist-lib/components/Plan/PlanPendingBackup/PlanPendingBackup.js +29 -22
  6. package/dist-lib/components/Plan/PlanPendingBackup/PlanPendingBackup.js.map +1 -1
  7. package/dist-lib/components/Plan/PlanProgress/PlanProgress.d.ts +2 -1
  8. package/dist-lib/components/Plan/PlanProgress/PlanProgress.d.ts.map +1 -1
  9. package/dist-lib/components/Plan/PlanProgress/PlanProgress.js +22 -18
  10. package/dist-lib/components/Plan/PlanProgress/PlanProgress.js.map +1 -1
  11. package/dist-lib/components/Plan/Restores/Restores.js +5 -5
  12. package/dist-lib/components/Plan/Restores/Restores.js.map +1 -1
  13. package/dist-lib/components/Restore/RestoreFileSelector/RestoreFileSelector.js +73 -73
  14. package/dist-lib/components/Restore/RestoreFileSelector/RestoreFileSelector.js.map +1 -1
  15. package/dist-lib/components/Restore/RestoreWizard/RestoreConfirmStep.d.ts.map +1 -1
  16. package/dist-lib/components/Restore/RestoreWizard/RestoreConfirmStep.js +50 -50
  17. package/dist-lib/components/Restore/RestoreWizard/RestoreConfirmStep.js.map +1 -1
  18. package/dist-lib/components/Restore/RestoreWizard/RestorePreviewStep.js +8 -8
  19. package/dist-lib/components/Restore/RestoreWizard/RestorePreviewStep.js.map +1 -1
  20. package/dist-lib/components/Restore/RestoreWizard/RestoreWizard.module.scss.js +34 -36
  21. package/dist-lib/components/Restore/RestoreWizard/RestoreWizard.module.scss.js.map +1 -1
  22. package/dist-lib/components/Restore/RestoredFileBrowser/RestoredFileBrowser.d.ts +2 -1
  23. package/dist-lib/components/Restore/RestoredFileBrowser/RestoredFileBrowser.d.ts.map +1 -1
  24. package/dist-lib/components/Restore/RestoredFileBrowser/RestoredFileBrowser.js +62 -60
  25. package/dist-lib/components/Restore/RestoredFileBrowser/RestoredFileBrowser.js.map +1 -1
  26. package/dist-lib/components/common/LogViewer/LogViewer.d.ts.map +1 -1
  27. package/dist-lib/components/common/LogViewer/LogViewer.js +51 -47
  28. package/dist-lib/components/common/LogViewer/LogViewer.js.map +1 -1
  29. package/dist-lib/components/common/LogViewer/LogViewer.module.scss.js +24 -24
  30. package/dist-lib/hooks/usePlanSingleActions.d.ts.map +1 -1
  31. package/dist-lib/hooks/usePlanSingleActions.js +49 -37
  32. package/dist-lib/hooks/usePlanSingleActions.js.map +1 -1
  33. package/dist-lib/routes/PlanSingle/PlanSingle.d.ts.map +1 -1
  34. package/dist-lib/routes/PlanSingle/PlanSingle.js +68 -67
  35. package/dist-lib/routes/PlanSingle/PlanSingle.js.map +1 -1
  36. package/dist-lib/services/backups.d.ts.map +1 -1
  37. package/dist-lib/services/backups.js +35 -34
  38. package/dist-lib/services/backups.js.map +1 -1
  39. package/dist-lib/services/plans.d.ts +5 -2
  40. package/dist-lib/services/plans.d.ts.map +1 -1
  41. package/dist-lib/services/plans.js +45 -43
  42. package/dist-lib/services/plans.js.map +1 -1
  43. package/dist-lib/services/restores.d.ts.map +1 -1
  44. package/dist-lib/services/restores.js +56 -55
  45. package/dist-lib/services/restores.js.map +1 -1
  46. package/dist-lib/services.js +19 -19
  47. package/dist-lib/styles/core-frontend.css +1 -1
  48. package/package.json +1 -1
  49. package/src/components/Plan/Backups/Backups.module.scss +2 -1
  50. package/src/components/Plan/PlanPendingBackup/PlanPendingBackup.tsx +27 -18
  51. package/src/components/Plan/PlanProgress/PlanProgress.tsx +13 -2
  52. package/src/components/Plan/Restores/Restores.tsx +1 -1
  53. package/src/components/Restore/RestoreFileSelector/RestoreFileSelector.tsx +4 -4
  54. package/src/components/Restore/RestoreWizard/RestoreConfirmStep.tsx +26 -19
  55. package/src/components/Restore/RestoreWizard/RestorePreviewStep.tsx +1 -1
  56. package/src/components/Restore/RestoreWizard/RestoreWizard.module.scss +2 -2
  57. package/src/components/Restore/RestoredFileBrowser/RestoredFileBrowser.tsx +18 -14
  58. package/src/components/common/LogViewer/LogViewer.module.scss +1 -1
  59. package/src/components/common/LogViewer/LogViewer.tsx +18 -10
  60. package/src/hooks/usePlanSingleActions.tsx +21 -8
  61. package/src/routes/PlanSingle/PlanSingle.tsx +2 -0
  62. package/src/services/backups.ts +12 -4
  63. package/src/services/plans.ts +4 -3
  64. package/src/services/restores.ts +12 -4
@@ -1,40 +1,40 @@
1
- const o = "_logViewer_Pxqwr", t = "_toolbar_txpcD", e = "_toolbarRight_Jxo8M", a = "_filters_DZHDI", l = "_search_7xB4R", g = "_logsTable_rXLuX", n = "_logsHeader_0gDT8", r = "_logsHeaderItemTime_cdIPZ", s = "_logs_d9AVl", _ = "_log_La4jv", c = "_logTime_coGsS", i = "_logType_Y77Mv", p = "_logType--error_d8a4O", T = "_logType--warn_aUyRe", b = "_logType--info_dlOI5", y = "_logMessage_IcKbL", u = "_log--backupStart_ONCPP", d = "_backupStartLabel_uuXLb", f = "_pagination_w4Pdc", I = "_paginationButton_7wf2N", m = "_paginationButtonActive_O9fZ8", w = {
1
+ const o = "_logViewer_wfwfw", t = "_toolbar_Au9vL", e = "_toolbarRight_gQdX7", l = "_filters_8zsv5", a = "_search_QEf0h", g = "_logsTable_RWy5i", n = "_logsHeader_oDrOq", r = "_logsHeaderItemTime_yp1cp", s = "_logs_aqTCb", _ = "_log_lIOv5", i = "_logTime_XtlJb", p = "_logType_ei1Rn", c = "_logType--error_hVqDp", T = "_logType--warn_mvuS0", b = "_logType--info_9Yli2", y = "_logMessage_ue2tA", u = "_log--backupStart_RxYoZ", f = "_backupStartLabel_O9EBV", m = "_pagination_94Odq", S = "_paginationButton_GYqX1", d = "_paginationButtonActive_SRFFY", h = {
2
2
  logViewer: o,
3
3
  toolbar: t,
4
4
  toolbarRight: e,
5
- filters: a,
6
- search: l,
5
+ filters: l,
6
+ search: a,
7
7
  logsTable: g,
8
8
  logsHeader: n,
9
9
  logsHeaderItemTime: r,
10
10
  logs: s,
11
11
  log: _,
12
- logTime: c,
13
- logType: i,
14
- "logType--error": "_logType--error_d8a4O",
15
- logTypeError: p,
16
- "logType--warn": "_logType--warn_aUyRe",
12
+ logTime: i,
13
+ logType: p,
14
+ "logType--error": "_logType--error_hVqDp",
15
+ logTypeError: c,
16
+ "logType--warn": "_logType--warn_mvuS0",
17
17
  logTypeWarn: T,
18
- "logType--info": "_logType--info_dlOI5",
18
+ "logType--info": "_logType--info_9Yli2",
19
19
  logTypeInfo: b,
20
20
  logMessage: y,
21
- "log--backupStart": "_log--backupStart_ONCPP",
21
+ "log--backupStart": "_log--backupStart_RxYoZ",
22
22
  logBackupStart: u,
23
- backupStartLabel: d,
24
- pagination: f,
25
- paginationButton: I,
26
- paginationButtonActive: m
23
+ backupStartLabel: f,
24
+ pagination: m,
25
+ paginationButton: S,
26
+ paginationButtonActive: d
27
27
  };
28
28
  export {
29
- d as backupStartLabel,
30
- w as default,
31
- a as filters,
29
+ f as backupStartLabel,
30
+ h as default,
31
+ l as filters,
32
32
  _ as log,
33
33
  u as logBackupStart,
34
34
  y as logMessage,
35
- c as logTime,
36
- i as logType,
37
- p as logTypeError,
35
+ i as logTime,
36
+ p as logType,
37
+ c as logTypeError,
38
38
  b as logTypeInfo,
39
39
  T as logTypeWarn,
40
40
  o as logViewer,
@@ -42,10 +42,10 @@ export {
42
42
  n as logsHeader,
43
43
  r as logsHeaderItemTime,
44
44
  g as logsTable,
45
- f as pagination,
46
- I as paginationButton,
47
- m as paginationButtonActive,
48
- l as search,
45
+ m as pagination,
46
+ S as paginationButton,
47
+ d as paginationButtonActive,
48
+ a as search,
49
49
  t as toolbar,
50
50
  e as toolbarRight
51
51
  };
@@ -1 +1 @@
1
- {"version":3,"file":"usePlanSingleActions.d.ts","sourceRoot":"","sources":["../../src/hooks/usePlanSingleActions.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,eAAO,MAAM,oBAAoB,QAAO;IACrC,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;CA0GxB,CAAC"}
1
+ {"version":3,"file":"usePlanSingleActions.d.ts","sourceRoot":"","sources":["../../src/hooks/usePlanSingleActions.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,eAAO,MAAM,oBAAoB,QAAO;IACrC,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;CAuHxB,CAAC"}
@@ -1,37 +1,37 @@
1
- import { useState as n } from "react";
2
- import { useParams as v } from "react-router";
3
- import { toast as r } from "react-toastify";
4
- import { usePerformBackup as L, usePausePlan as D, useResumePlan as F, useGetPlan as I } from "../services/plans.js";
5
- const q = () => {
6
- const [g, m] = n(!1), [k, f] = n(!1), [h, w] = n(!1), [S, B] = n(!1), [M, y] = n(!1), { id: A } = v(), i = L(), l = D(), p = F(), { data: o, isLoading: E, refetch: R, error: $ } = I(A), s = (o == null ? void 0 : o.result) || {}, t = s.method === "sync", a = [...s.backups || []].sort((e, U) => U.started - e.started), c = a.filter((e) => e.inProgress), P = (s.restores || []).filter((e) => e.status === "started"), b = a[0], d = c.length > 0 || P.length > 0, u = l.isPending || p.isPending || i.isPending;
1
+ import { useState as o } from "react";
2
+ import { useParams as U, useNavigate as C } from "react-router";
3
+ import { toast as n } from "react-toastify";
4
+ import { usePerformBackup as I, usePausePlan as N, useResumePlan as D, useGetPlan as F } from "../services/plans.js";
5
+ const J = () => {
6
+ const [m, f] = o(!1), [k, h] = o(!1), [w, S] = o(!1), [B, M] = o(!1), [y, E] = o(!1), { id: $ } = U(), b = C(), l = I(), p = N(), d = D(), { data: a, isLoading: R, refetch: v, error: A } = F($), s = (a == null ? void 0 : a.result) || {}, r = s.method === "sync", c = [...s.backups || []].sort((e, t) => t.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;
7
7
  return {
8
8
  // State
9
- showDeleteModal: g,
10
- setShowDeleteModal: m,
9
+ showDeleteModal: m,
10
+ setShowDeleteModal: f,
11
11
  showEditModal: k,
12
- setShowEditModal: f,
13
- showPruneModal: S,
14
- setShowPruneModal: B,
15
- showLogsModal: M,
16
- setShowLogsModal: y,
17
- showUnlockModal: h,
18
- setShowUnlockModal: w,
12
+ setShowEditModal: h,
13
+ showPruneModal: B,
14
+ setShowPruneModal: M,
15
+ showLogsModal: y,
16
+ setShowLogsModal: E,
17
+ showUnlockModal: w,
18
+ setShowUnlockModal: S,
19
19
  // Data
20
20
  plan: s,
21
- isLoading: E,
22
- refetchPlan: R,
23
- sortedHistory: a,
24
- activeBackups: c,
25
- activeRestores: P,
26
- lastBackupItem: b,
27
- actionInProgress: d,
21
+ isLoading: R,
22
+ refetchPlan: v,
23
+ sortedHistory: c,
24
+ activeBackups: i,
25
+ activeRestores: g,
26
+ lastBackupItem: L,
27
+ actionInProgress: P,
28
28
  taskPending: u,
29
- planError: $,
29
+ planError: A,
30
30
  // Actions
31
31
  changeStatus: () => {
32
- if (c.length > 0)
33
- return r.error("Can't pause a Plan while a Backup is in progress.");
34
- s.inProgress || u || (s.isActive ? r.promise(l.mutateAsync(s.id), {
32
+ if (i.length > 0)
33
+ return n.error("Can't pause a Plan while a Backup is in progress.");
34
+ s.inProgress || u || (s.isActive ? n.promise(p.mutateAsync(s.id), {
35
35
  pending: "Pausing backup Plan...",
36
36
  success: "Backup Plan Paused",
37
37
  error: {
@@ -39,7 +39,7 @@ const q = () => {
39
39
  return `Failed to Pause Backup Plan. ${(e == null ? void 0 : e.message) || "Unknown Error."}`;
40
40
  }
41
41
  }
42
- }) : r.promise(p.mutateAsync(s.id), {
42
+ }) : n.promise(d.mutateAsync(s.id), {
43
43
  pending: "Resuming backup Plan...",
44
44
  success: "Backup Plan Resumed",
45
45
  error: {
@@ -50,21 +50,33 @@ const q = () => {
50
50
  }));
51
51
  },
52
52
  backupNow: () => {
53
- if (d)
54
- return r.error("A Backup/Restore Process is in Progress.");
55
- u || r.promise(i.mutateAsync(s.id), {
56
- pending: `Starting ${t ? "Sync" : "Backup"}...`,
57
- success: `${t ? "Sync" : "Backup"} initiated successfully! 🚀`,
58
- error: {
59
- render({ data: e }) {
60
- return `${t ? "Sync" : "Backup"} failed to start. ${(e == null ? void 0 : e.message) || "Unknown Error."}`;
61
- }
53
+ if (P)
54
+ return n.error("A Backup/Restore Process is in Progress.");
55
+ if (u)
56
+ return;
57
+ const e = n.loading(`Starting ${r ? "Sync" : "Backup"}...`);
58
+ l.mutate(s.id, {
59
+ onSuccess: () => {
60
+ n.update(e, {
61
+ render: `${r ? "Sync" : "Backup"} initiated successfully! 🚀`,
62
+ type: "success",
63
+ isLoading: !1,
64
+ autoClose: 3e3
65
+ }), b(`/plan/${s.id}?pendingbackup=1`);
66
+ },
67
+ onError: (t) => {
68
+ n.update(e, {
69
+ render: `${r ? "Sync" : "Backup"} failed to start. ${(t == null ? void 0 : t.message) || "Unknown Error."}`,
70
+ type: "error",
71
+ isLoading: !1,
72
+ autoClose: !1
73
+ });
62
74
  }
63
75
  });
64
76
  }
65
77
  };
66
78
  };
67
79
  export {
68
- q as usePlanSingleActions
80
+ J as usePlanSingleActions
69
81
  };
70
82
  //# sourceMappingURL=usePlanSingleActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePlanSingleActions.js","sources":["../../src/hooks/usePlanSingleActions.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { 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\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 toast.promise(performBackupMutation.mutateAsync(plan.id), {\r\n pending: `Starting ${isSync ? 'Sync' : 'Backup'}...`,\r\n success: `${isSync ? 'Sync' : 'Backup'} initiated successfully! 🚀`,\r\n error: {\r\n render({ data }: any) {\r\n return `${isSync ? 'Sync' : 'Backup'} failed to start. ${data?.message || 'Unknown Error.'}`;\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","performBackupMutation","usePerformBackup","pauseMutation","usePausePlan","resumeMutation","useResumePlan","data","isLoading","refetchPlan","planError","useGetPlan","plan","isSync","sortedHistory","a","b","activeBackups","s","activeRestores","lastBackupItem","actionInProgress","taskPending","toast"],"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.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: () => {\r\n toast.update(toastId, {\r\n render: `${isSync ? 'Sync' : 'Backup'} initiated successfully! 🚀`,\r\n type: 'success',\r\n isLoading: false,\r\n autoClose: 3000,\r\n });\r\n navigate(`/plan/${plan.id}?pendingbackup=1`);\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 });\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 +1 @@
1
- {"version":3,"file":"PlanSingle.d.ts","sourceRoot":"","sources":["../../../src/routes/PlanSingle/PlanSingle.tsx"],"names":[],"mappings":"AAiBA,QAAA,MAAM,UAAU,+CAsKf,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"PlanSingle.d.ts","sourceRoot":"","sources":["../../../src/routes/PlanSingle/PlanSingle.tsx"],"names":[],"mappings":"AAiBA,QAAA,MAAM,UAAU,+CAwKf,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,79 +1,79 @@
1
- import { jsx as e, jsxs as t, Fragment as N } from "react/jsx-runtime";
2
- import { useState as V } from "react";
3
- import { useParams as q, useSearchParams as G } from "react-router";
4
- import J from "../../components/common/PageHeader/PageHeader.js";
1
+ import { jsx as e, jsxs as t, Fragment as S } from "react/jsx-runtime";
2
+ import { useState as q } from "react";
3
+ import { useParams as G, useSearchParams as J } from "react-router";
4
+ import K from "../../components/common/PageHeader/PageHeader.js";
5
5
  import s from "../../components/common/Icon/Icon.js";
6
- import K from "../../components/Plan/EditPlan/EditPlan.js";
7
- import Q from "../../components/Plan/PlanLogs/PlanLogs.js";
8
- import { useComponentOverride as W } from "../../context/ComponentOverrideContext.js";
9
- import X from "../../components/Plan/PlanStats/PlanStats.js";
10
- import { usePlanSingleActions as Y } from "../../hooks/usePlanSingleActions.js";
6
+ import Q from "../../components/Plan/EditPlan/EditPlan.js";
7
+ import W from "../../components/Plan/PlanLogs/PlanLogs.js";
8
+ import { useComponentOverride as X } from "../../context/ComponentOverrideContext.js";
9
+ import Y from "../../components/Plan/PlanStats/PlanStats.js";
10
+ import { usePlanSingleActions as Z } from "../../hooks/usePlanSingleActions.js";
11
11
  import o from "./PlanSingle.module.scss.js";
12
- import Z from "../../components/common/NotFound/NotFound.js";
13
- import _ from "../../components/Plan/PlanPruneModal/PlanPruneModal.js";
14
- import ee from "../../components/Plan/PlanUnlockModal/PlanUnlockModal.js";
15
- import oe from "../../components/Plan/PlanRemoveModal/PlanRemoveModal.js";
16
- import te from "../../components/Plan/PlanProgress/PlanProgress.js";
17
- import se from "../../components/Plan/PlanBackups/PlanBackups.js";
18
- const Se = () => {
19
- var P;
20
- const [d, a] = V(!1), { id: l } = q(), S = W("EditPlan", K), [y] = G(), w = y.get("pendingbackup") === "1", {
21
- showDeleteModal: B,
22
- setShowDeleteModal: m,
23
- showEditModal: C,
24
- setShowEditModal: u,
25
- showPruneModal: v,
26
- setShowPruneModal: h,
27
- showLogsModal: z,
28
- setShowLogsModal: f,
29
- showUnlockModal: b,
30
- setShowUnlockModal: g,
12
+ import _ from "../../components/common/NotFound/NotFound.js";
13
+ import ee from "../../components/Plan/PlanPruneModal/PlanPruneModal.js";
14
+ import oe from "../../components/Plan/PlanUnlockModal/PlanUnlockModal.js";
15
+ import te from "../../components/Plan/PlanRemoveModal/PlanRemoveModal.js";
16
+ import se from "../../components/Plan/PlanProgress/PlanProgress.js";
17
+ import ne from "../../components/Plan/PlanBackups/PlanBackups.js";
18
+ const ye = () => {
19
+ var k;
20
+ const [d, a] = q(!1), { id: l } = G(), y = X("EditPlan", Q), [m] = J(), w = m.get("pendingbackup") === "1", B = m.get("pendingrestore") === "1", {
21
+ showDeleteModal: C,
22
+ setShowDeleteModal: u,
23
+ showEditModal: v,
24
+ setShowEditModal: h,
25
+ showPruneModal: z,
26
+ setShowPruneModal: f,
27
+ showLogsModal: b,
28
+ setShowLogsModal: g,
29
+ showUnlockModal: I,
30
+ setShowUnlockModal: P,
31
31
  plan: n,
32
- isLoading: I,
33
- refetchPlan: E,
34
- activeBackups: L,
32
+ isLoading: E,
33
+ refetchPlan: L,
34
+ activeBackups: R,
35
35
  activeRestores: U,
36
36
  lastBackupItem: O,
37
37
  taskPending: r,
38
38
  planError: p,
39
- actionInProgress: R,
40
- changeStatus: T,
41
- backupNow: $
42
- } = Y(), x = p == null ? void 0 : p.status;
43
- if (!l || x === 404)
44
- return /* @__PURE__ */ e(Z, { name: "Plan", link: "/" });
39
+ actionInProgress: T,
40
+ changeStatus: $,
41
+ backupNow: x
42
+ } = Z(), A = p == null ? void 0 : p.status;
43
+ if (!l || A === 404)
44
+ return /* @__PURE__ */ e(_, { name: "Plan", link: "/" });
45
45
  {
46
- if (I)
46
+ if (E)
47
47
  return /* @__PURE__ */ e("div", { className: "loadingScreen", children: /* @__PURE__ */ e(s, { size: 60, type: "loading" }) });
48
- const { isActive: i, method: A, title: k, description: M, stats: D, settings: j } = n, F = j.prune, H = ((P = D.snapshots) == null ? void 0 : P.length) || 0, c = A === "sync";
48
+ const { isActive: i, method: D, title: M, description: N, stats: j, settings: F } = n, H = F.prune, V = ((k = j.snapshots) == null ? void 0 : k.length) || 0, c = D === "sync";
49
49
  return /* @__PURE__ */ t("div", { className: o.planSingle, children: [
50
50
  /* @__PURE__ */ e(
51
- J,
51
+ K,
52
52
  {
53
- title: /* @__PURE__ */ t(N, { children: [
54
- k,
53
+ title: /* @__PURE__ */ t(S, { children: [
54
+ M,
55
55
  " ",
56
- M && /* @__PURE__ */ e("span", { className: o.planDescription, "data-tooltip-id": "appTooltip", "data-tooltip-content": M, children: /* @__PURE__ */ e(s, { type: "note", size: 13 }) }),
56
+ N && /* @__PURE__ */ e("span", { className: o.planDescription, "data-tooltip-id": "appTooltip", "data-tooltip-content": N, children: /* @__PURE__ */ e(s, { type: "note", size: 13 }) }),
57
57
  !i && /* @__PURE__ */ t("span", { className: "label warn", children: [
58
58
  /* @__PURE__ */ e(s, { size: 14, type: "pause", color: "#bf8d20" }),
59
59
  " Paused"
60
60
  ] })
61
61
  ] }),
62
- pageTitle: k,
62
+ pageTitle: M,
63
63
  icon: "plans",
64
- rightSection: /* @__PURE__ */ e(N, { children: /* @__PURE__ */ t("div", { className: o.planActions, children: [
65
- /* @__PURE__ */ t("button", { className: o.actionBtn, onClick: $, children: [
64
+ rightSection: /* @__PURE__ */ e(S, { children: /* @__PURE__ */ t("div", { className: o.planActions, children: [
65
+ /* @__PURE__ */ t("button", { className: o.actionBtn, onClick: x, children: [
66
66
  /* @__PURE__ */ e(s, { size: 14, type: c ? "sync" : "backup" }),
67
67
  " ",
68
68
  c ? "Sync" : "Backup",
69
69
  " Now"
70
70
  ] }),
71
- /* @__PURE__ */ t("button", { className: `${o.actionBtn} ${i ? "" : o.actionBtnHighlight}`, onClick: T, children: [
71
+ /* @__PURE__ */ t("button", { className: `${o.actionBtn} ${i ? "" : o.actionBtnHighlight}`, onClick: $, children: [
72
72
  /* @__PURE__ */ e(s, { size: 14, type: i ? "pause" : "resume" }),
73
73
  " ",
74
74
  i ? "Pause" : "Resume"
75
75
  ] }),
76
- /* @__PURE__ */ t("button", { className: o.actionBtn, onClick: () => u(!0), children: [
76
+ /* @__PURE__ */ t("button", { className: o.actionBtn, onClick: () => h(!0), children: [
77
77
  /* @__PURE__ */ e(s, { size: 14, type: "edit-settings" }),
78
78
  " Edit"
79
79
  ] }),
@@ -84,7 +84,7 @@ const Se = () => {
84
84
  {
85
85
  className: o.actionBtn,
86
86
  onClick: () => {
87
- h(!0), a(!1);
87
+ f(!0), a(!1);
88
88
  },
89
89
  children: [
90
90
  /* @__PURE__ */ e(s, { size: 14, type: "prune" }),
@@ -97,7 +97,7 @@ const Se = () => {
97
97
  {
98
98
  className: o.actionBtn,
99
99
  onClick: () => {
100
- g(!0), a(!1);
100
+ P(!0), a(!1);
101
101
  },
102
102
  children: [
103
103
  /* @__PURE__ */ e(s, { size: 14, type: "unlock" }),
@@ -110,7 +110,7 @@ const Se = () => {
110
110
  {
111
111
  className: o.actionBtn,
112
112
  onClick: () => {
113
- f(!0), a(!1);
113
+ g(!0), a(!1);
114
114
  },
115
115
  children: [
116
116
  /* @__PURE__ */ e(s, { size: 14, type: "logs" }),
@@ -123,7 +123,7 @@ const Se = () => {
123
123
  {
124
124
  className: o.actionBtn,
125
125
  onClick: () => {
126
- m(!0), a(!1);
126
+ u(!0), a(!1);
127
127
  },
128
128
  children: [
129
129
  /* @__PURE__ */ e(s, { size: 14, type: "trash" }),
@@ -136,38 +136,39 @@ const Se = () => {
136
136
  }
137
137
  ),
138
138
  /* @__PURE__ */ t("div", { className: o.planContent, children: [
139
- /* @__PURE__ */ e(X, { plan: n, isSync: c, lastBackupItem: O }),
139
+ /* @__PURE__ */ e(Y, { plan: n, isSync: c, lastBackupItem: O }),
140
140
  /* @__PURE__ */ e(
141
- te,
141
+ se,
142
142
  {
143
143
  plan: n,
144
144
  isBackupPending: w,
145
- activeBackups: L,
145
+ isRestorePending: B,
146
+ activeBackups: R,
146
147
  activeRestores: U,
147
- refetchPlan: E
148
+ refetchPlan: L
148
149
  }
149
150
  ),
150
- /* @__PURE__ */ e(se, { plan: n })
151
+ /* @__PURE__ */ e(ne, { plan: n })
151
152
  ] }),
152
- v && /* @__PURE__ */ e(
153
- _,
153
+ z && /* @__PURE__ */ e(
154
+ ee,
154
155
  {
155
156
  planId: l,
156
157
  method: n.method,
157
- prune: F,
158
- snapshotsCount: H,
158
+ prune: H,
159
+ snapshotsCount: V,
159
160
  taskPending: r,
160
- close: () => h(!1)
161
+ close: () => f(!1)
161
162
  }
162
163
  ),
163
- B && /* @__PURE__ */ e(oe, { planId: l, taskPending: r, actionInProgress: R, close: () => m(!1) }),
164
- b && /* @__PURE__ */ e(ee, { planId: l, taskPending: r, close: () => g(!1) }),
165
- C && /* @__PURE__ */ e(S, { plan: n, close: () => u(!1) }),
166
- z && /* @__PURE__ */ e(Q, { planId: l, planMethod: n.method, sourceType: n.sourceType, close: () => f(!1) })
164
+ C && /* @__PURE__ */ e(te, { planId: l, taskPending: r, actionInProgress: T, close: () => u(!1) }),
165
+ I && /* @__PURE__ */ e(oe, { planId: l, taskPending: r, close: () => P(!1) }),
166
+ v && /* @__PURE__ */ e(y, { plan: n, close: () => h(!1) }),
167
+ b && /* @__PURE__ */ e(W, { planId: l, planMethod: n.method, sourceType: n.sourceType, close: () => g(!1) })
167
168
  ] });
168
169
  }
169
170
  };
170
171
  export {
171
- Se as default
172
+ ye as default
172
173
  };
173
174
  //# sourceMappingURL=PlanSingle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlanSingle.js","sources":["../../../src/routes/PlanSingle/PlanSingle.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { useParams, useSearchParams } from 'react-router';\r\nimport PageHeader from '../../components/common/PageHeader/PageHeader';\r\nimport Icon from '../../components/common/Icon/Icon';\r\nimport EditPlan from '../../components/Plan/EditPlan/EditPlan';\r\nimport PlanLogs from '../../components/Plan/PlanLogs/PlanLogs';\r\nimport { useComponentOverride } from '../../context/ComponentOverrideContext';\r\nimport PlanStats from '../../components/Plan/PlanStats/PlanStats';\r\nimport { usePlanSingleActions } from '../../hooks/usePlanSingleActions';\r\nimport classes from './PlanSingle.module.scss';\r\nimport NotFound from '../../components/common/NotFound/NotFound';\r\nimport PlanPruneModal from '../../components/Plan/PlanPruneModal/PlanPruneModal';\r\nimport PlanUnlockModal from '../../components/Plan/PlanUnlockModal/PlanUnlockModal';\r\nimport PlanRemoveModal from '../../components/Plan/PlanRemoveModal/PlanRemoveModal';\r\nimport PlanProgress from '../../components/Plan/PlanProgress/PlanProgress';\r\nimport PlanBackups from '../../components/Plan/PlanBackups/PlanBackups';\r\n\r\nconst PlanSingle = () => {\r\n const [showMoreOptions, setShowMoreOptions] = useState(false);\r\n const { id } = useParams();\r\n\r\n const EditPlanModal = useComponentOverride('EditPlan', EditPlan);\r\n\r\n const [searchParams] = useSearchParams();\r\n const isBackupPending = searchParams.get('pendingbackup') === '1';\r\n\r\n const {\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 plan,\r\n isLoading,\r\n refetchPlan,\r\n activeBackups,\r\n activeRestores,\r\n lastBackupItem,\r\n taskPending,\r\n planError,\r\n actionInProgress,\r\n changeStatus,\r\n backupNow,\r\n } = usePlanSingleActions();\r\n\r\n // const errorMessage = planError?.message;\r\n const errorStatusCode = (planError as Error & { status?: number })?.status;\r\n if (!id || errorStatusCode === 404) {\r\n return <NotFound name=\"Plan\" link=\"/\" />;\r\n } else {\r\n if (isLoading) {\r\n return (\r\n <div className=\"loadingScreen\">\r\n <Icon size={60} type=\"loading\" />\r\n </div>\r\n );\r\n }\r\n\r\n const { isActive, method, title, description, stats, settings } = plan;\r\n const prune = settings.prune;\r\n const snapshotsCount = stats.snapshots?.length || 0;\r\n const isSync = method === 'sync';\r\n\r\n return (\r\n <div className={classes.planSingle}>\r\n <PageHeader\r\n title={\r\n <>\r\n {title}{' '}\r\n {description && (\r\n <span className={classes.planDescription} data-tooltip-id=\"appTooltip\" data-tooltip-content={description}>\r\n <Icon type=\"note\" size={13} />\r\n </span>\r\n )}\r\n {!isActive && (\r\n <span className=\"label warn\">\r\n <Icon size={14} type={'pause'} color=\"#bf8d20\" /> Paused\r\n </span>\r\n )}\r\n </>\r\n }\r\n pageTitle={title}\r\n icon=\"plans\"\r\n rightSection={\r\n <>\r\n <div className={classes.planActions}>\r\n <button className={classes.actionBtn} onClick={backupNow}>\r\n <Icon size={14} type={isSync ? 'sync' : 'backup'} /> {isSync ? 'Sync' : 'Backup'} Now\r\n </button>\r\n <button className={`${classes.actionBtn} ${!isActive ? classes.actionBtnHighlight : ''}`} onClick={changeStatus}>\r\n <Icon size={14} type={isActive ? 'pause' : 'resume'} /> {isActive ? 'Pause' : 'Resume'}\r\n </button>\r\n <button className={classes.actionBtn} onClick={() => setShowEditModal(true)}>\r\n <Icon size={14} type=\"edit-settings\" /> Edit\r\n </button>\r\n <button className={`${classes.actionBtn} ${classes.actionMoreBtn}`} onClick={() => setShowMoreOptions(!showMoreOptions)}>\r\n <Icon size={14} type=\"dots-vertical\" />\r\n </button>\r\n\r\n {showMoreOptions && (\r\n <ul className={classes.moreOptions}>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowPruneModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"prune\" /> Clean Up\r\n </li>\r\n {!isSync && (\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowUnlockModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"unlock\" /> Unlock\r\n </li>\r\n )}\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowLogsModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"logs\" /> View Logs\r\n </li>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowDeleteModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"trash\" /> Remove\r\n </li>\r\n </ul>\r\n )}\r\n </div>\r\n </>\r\n }\r\n />\r\n <div className={classes.planContent}>\r\n <PlanStats plan={plan} isSync={isSync} lastBackupItem={lastBackupItem} />\r\n <PlanProgress\r\n plan={plan}\r\n isBackupPending={isBackupPending}\r\n activeBackups={activeBackups}\r\n activeRestores={activeRestores}\r\n refetchPlan={refetchPlan}\r\n />\r\n <PlanBackups plan={plan} />\r\n </div>\r\n\r\n {/* Action Modals */}\r\n {showPruneModal && (\r\n <PlanPruneModal\r\n planId={id}\r\n method={plan.method}\r\n prune={prune}\r\n snapshotsCount={snapshotsCount}\r\n taskPending={taskPending}\r\n close={() => setShowPruneModal(false)}\r\n />\r\n )}\r\n {showDeleteModal && (\r\n <PlanRemoveModal planId={id} taskPending={taskPending} actionInProgress={actionInProgress} close={() => setShowDeleteModal(false)} />\r\n )}\r\n {showUnlockModal && <PlanUnlockModal planId={id} taskPending={taskPending} close={() => setShowUnlockModal(false)} />}\r\n {showEditModal && <EditPlanModal plan={plan} close={() => setShowEditModal(false)} />}\r\n {showLogsModal && <PlanLogs planId={id} planMethod={plan.method} sourceType={plan.sourceType} close={() => setShowLogsModal(false)} />}\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nexport default PlanSingle;\r\n"],"names":["PlanSingle","showMoreOptions","setShowMoreOptions","useState","id","useParams","EditPlanModal","useComponentOverride","EditPlan","searchParams","useSearchParams","isBackupPending","showDeleteModal","setShowDeleteModal","showEditModal","setShowEditModal","showPruneModal","setShowPruneModal","showLogsModal","setShowLogsModal","showUnlockModal","setShowUnlockModal","plan","isLoading","refetchPlan","activeBackups","activeRestores","lastBackupItem","taskPending","planError","actionInProgress","changeStatus","backupNow","usePlanSingleActions","errorStatusCode","jsx","NotFound","Icon","isActive","method","title","description","stats","settings","prune","snapshotsCount","_a","isSync","jsxs","classes","PageHeader","Fragment","PlanStats","PlanProgress","PlanBackups","PlanPruneModal","PlanRemoveModal","PlanUnlockModal","PlanLogs"],"mappings":"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"}
1
+ {"version":3,"file":"PlanSingle.js","sources":["../../../src/routes/PlanSingle/PlanSingle.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { useParams, useSearchParams } from 'react-router';\r\nimport PageHeader from '../../components/common/PageHeader/PageHeader';\r\nimport Icon from '../../components/common/Icon/Icon';\r\nimport EditPlan from '../../components/Plan/EditPlan/EditPlan';\r\nimport PlanLogs from '../../components/Plan/PlanLogs/PlanLogs';\r\nimport { useComponentOverride } from '../../context/ComponentOverrideContext';\r\nimport PlanStats from '../../components/Plan/PlanStats/PlanStats';\r\nimport { usePlanSingleActions } from '../../hooks/usePlanSingleActions';\r\nimport classes from './PlanSingle.module.scss';\r\nimport NotFound from '../../components/common/NotFound/NotFound';\r\nimport PlanPruneModal from '../../components/Plan/PlanPruneModal/PlanPruneModal';\r\nimport PlanUnlockModal from '../../components/Plan/PlanUnlockModal/PlanUnlockModal';\r\nimport PlanRemoveModal from '../../components/Plan/PlanRemoveModal/PlanRemoveModal';\r\nimport PlanProgress from '../../components/Plan/PlanProgress/PlanProgress';\r\nimport PlanBackups from '../../components/Plan/PlanBackups/PlanBackups';\r\n\r\nconst PlanSingle = () => {\r\n const [showMoreOptions, setShowMoreOptions] = useState(false);\r\n const { id } = useParams();\r\n\r\n const EditPlanModal = useComponentOverride('EditPlan', EditPlan);\r\n\r\n const [searchParams] = useSearchParams();\r\n const isBackupPending = searchParams.get('pendingbackup') === '1';\r\n const isRestorePending = searchParams.get('pendingrestore') === '1';\r\n\r\n const {\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 plan,\r\n isLoading,\r\n refetchPlan,\r\n activeBackups,\r\n activeRestores,\r\n lastBackupItem,\r\n taskPending,\r\n planError,\r\n actionInProgress,\r\n changeStatus,\r\n backupNow,\r\n } = usePlanSingleActions();\r\n\r\n // const errorMessage = planError?.message;\r\n const errorStatusCode = (planError as Error & { status?: number })?.status;\r\n if (!id || errorStatusCode === 404) {\r\n return <NotFound name=\"Plan\" link=\"/\" />;\r\n } else {\r\n if (isLoading) {\r\n return (\r\n <div className=\"loadingScreen\">\r\n <Icon size={60} type=\"loading\" />\r\n </div>\r\n );\r\n }\r\n\r\n const { isActive, method, title, description, stats, settings } = plan;\r\n const prune = settings.prune;\r\n const snapshotsCount = stats.snapshots?.length || 0;\r\n const isSync = method === 'sync';\r\n\r\n return (\r\n <div className={classes.planSingle}>\r\n <PageHeader\r\n title={\r\n <>\r\n {title}{' '}\r\n {description && (\r\n <span className={classes.planDescription} data-tooltip-id=\"appTooltip\" data-tooltip-content={description}>\r\n <Icon type=\"note\" size={13} />\r\n </span>\r\n )}\r\n {!isActive && (\r\n <span className=\"label warn\">\r\n <Icon size={14} type={'pause'} color=\"#bf8d20\" /> Paused\r\n </span>\r\n )}\r\n </>\r\n }\r\n pageTitle={title}\r\n icon=\"plans\"\r\n rightSection={\r\n <>\r\n <div className={classes.planActions}>\r\n <button className={classes.actionBtn} onClick={backupNow}>\r\n <Icon size={14} type={isSync ? 'sync' : 'backup'} /> {isSync ? 'Sync' : 'Backup'} Now\r\n </button>\r\n <button className={`${classes.actionBtn} ${!isActive ? classes.actionBtnHighlight : ''}`} onClick={changeStatus}>\r\n <Icon size={14} type={isActive ? 'pause' : 'resume'} /> {isActive ? 'Pause' : 'Resume'}\r\n </button>\r\n <button className={classes.actionBtn} onClick={() => setShowEditModal(true)}>\r\n <Icon size={14} type=\"edit-settings\" /> Edit\r\n </button>\r\n <button className={`${classes.actionBtn} ${classes.actionMoreBtn}`} onClick={() => setShowMoreOptions(!showMoreOptions)}>\r\n <Icon size={14} type=\"dots-vertical\" />\r\n </button>\r\n\r\n {showMoreOptions && (\r\n <ul className={classes.moreOptions}>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowPruneModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"prune\" /> Clean Up\r\n </li>\r\n {!isSync && (\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowUnlockModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"unlock\" /> Unlock\r\n </li>\r\n )}\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowLogsModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"logs\" /> View Logs\r\n </li>\r\n <li\r\n className={classes.actionBtn}\r\n onClick={() => {\r\n setShowDeleteModal(true);\r\n setShowMoreOptions(false);\r\n }}\r\n >\r\n <Icon size={14} type=\"trash\" /> Remove\r\n </li>\r\n </ul>\r\n )}\r\n </div>\r\n </>\r\n }\r\n />\r\n <div className={classes.planContent}>\r\n <PlanStats plan={plan} isSync={isSync} lastBackupItem={lastBackupItem} />\r\n <PlanProgress\r\n plan={plan}\r\n isBackupPending={isBackupPending}\r\n isRestorePending={isRestorePending}\r\n activeBackups={activeBackups}\r\n activeRestores={activeRestores}\r\n refetchPlan={refetchPlan}\r\n />\r\n <PlanBackups plan={plan} />\r\n </div>\r\n\r\n {/* Action Modals */}\r\n {showPruneModal && (\r\n <PlanPruneModal\r\n planId={id}\r\n method={plan.method}\r\n prune={prune}\r\n snapshotsCount={snapshotsCount}\r\n taskPending={taskPending}\r\n close={() => setShowPruneModal(false)}\r\n />\r\n )}\r\n {showDeleteModal && (\r\n <PlanRemoveModal planId={id} taskPending={taskPending} actionInProgress={actionInProgress} close={() => setShowDeleteModal(false)} />\r\n )}\r\n {showUnlockModal && <PlanUnlockModal planId={id} taskPending={taskPending} close={() => setShowUnlockModal(false)} />}\r\n {showEditModal && <EditPlanModal plan={plan} close={() => setShowEditModal(false)} />}\r\n {showLogsModal && <PlanLogs planId={id} planMethod={plan.method} sourceType={plan.sourceType} close={() => setShowLogsModal(false)} />}\r\n </div>\r\n );\r\n }\r\n};\r\n\r\nexport default PlanSingle;\r\n"],"names":["PlanSingle","showMoreOptions","setShowMoreOptions","useState","id","useParams","EditPlanModal","useComponentOverride","EditPlan","searchParams","useSearchParams","isBackupPending","isRestorePending","showDeleteModal","setShowDeleteModal","showEditModal","setShowEditModal","showPruneModal","setShowPruneModal","showLogsModal","setShowLogsModal","showUnlockModal","setShowUnlockModal","plan","isLoading","refetchPlan","activeBackups","activeRestores","lastBackupItem","taskPending","planError","actionInProgress","changeStatus","backupNow","usePlanSingleActions","errorStatusCode","jsx","NotFound","Icon","isActive","method","title","description","stats","settings","prune","snapshotsCount","_a","isSync","jsxs","classes","PageHeader","Fragment","PlanStats","PlanProgress","PlanBackups","PlanPruneModal","PlanRemoveModal","PlanUnlockModal","PlanLogs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"backups.d.ts","sourceRoot":"","sources":["../../src/services/backups.ts"],"names":[],"mappings":"AAKA,wBAAsB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,gBAa9F;AAED,wBAAgB,iBAAiB;cAfsC,MAAM;YAAU,MAAM;YAyB5F;AAGD,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,iBAuCjD;AAED,wBAAgB,oBAAoB,oFAUnC;AAGD,wBAAsB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,gBAY5F;AACD,wBAAgB,uBAAuB;cAb8B,MAAM;YAAU,MAAM;YAsB1F;AAGD,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,gBAY5C;AAED,wBAAgB,eAAe,mFAO9B;AAGD,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,gBASjJ;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,8DA2BjH;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,8DAOrH;AAGD,wBAAsB,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,gBAY5F;AACD,wBAAgB,eAAe;YAboC,MAAM;cAAY,MAAM;YAoB1F;AAGD,wBAAsB,YAAY,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,gBAe5I;AACD,wBAAgB,eAAe;cAhB6C,MAAM;mBAAiB;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;YAuB1I;AAGD,wBAAsB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,gBAYxE;AACD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,8DAQhE"}
1
+ {"version":3,"file":"backups.d.ts","sourceRoot":"","sources":["../../src/services/backups.ts"],"names":[],"mappings":"AAOA,wBAAsB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,gBAa9F;AAED,wBAAgB,iBAAiB;cAfsC,MAAM;YAAU,MAAM;YAyB5F;AAGD,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,iBAuCjD;AAED,wBAAgB,oBAAoB,oFAUnC;AAGD,wBAAsB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,gBAY5F;AACD,wBAAgB,uBAAuB;cAb8B,MAAM;YAAU,MAAM;YAsB1F;AAGD,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,gBAY5C;AAED,wBAAgB,eAAe,mFAO9B;AAGD,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,gBASjJ;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,8DAiCjH;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,8DAOrH;AAGD,wBAAsB,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,gBAY5F;AACD,wBAAgB,eAAe;YAboC,MAAM;cAAY,MAAM;YAoB1F;AAGD,wBAAsB,YAAY,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,gBAe5I;AACD,wBAAgB,eAAe;cAhB6C,MAAM;mBAAiB;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;YAuB1I;AAGD,wBAAsB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,gBAYxE;AACD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,8DAQhE"}