@plutonhq/core-frontend 0.1.22 → 0.1.23

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 (58) hide show
  1. package/dist-lib/@types/plans.d.ts +11 -20
  2. package/dist-lib/@types/plans.d.ts.map +1 -1
  3. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js +49 -47
  4. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js.map +1 -1
  5. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.d.ts +7 -4
  6. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.d.ts.map +1 -1
  7. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.js +177 -52
  8. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.js.map +1 -1
  9. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.d.ts +9 -0
  10. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.d.ts.map +1 -0
  11. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.js +62 -0
  12. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettingsTester.js.map +1 -0
  13. package/dist-lib/components/Plan/PlanSettings/PlanPruneSettings.js +2 -2
  14. package/dist-lib/components/Plan/PlanSettings/PlanPruneSettings.js.map +1 -1
  15. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js +56 -40
  16. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js.map +1 -1
  17. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.d.ts.map +1 -1
  18. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js +16 -8
  19. package/dist-lib/components/Settings/GeneralSettings/GeneralSettings.js.map +1 -1
  20. package/dist-lib/components/common/Icon/Icon.d.ts.map +1 -1
  21. package/dist-lib/components/common/Icon/Icon.js +15 -1
  22. package/dist-lib/components/common/Icon/Icon.js.map +1 -1
  23. package/dist-lib/components/index.d.ts +1 -0
  24. package/dist-lib/components/index.d.ts.map +1 -1
  25. package/dist-lib/components.js +86 -84
  26. package/dist-lib/components.js.map +1 -1
  27. package/dist-lib/providers/s3compatible.png +0 -0
  28. package/dist-lib/services/plans.d.ts +13 -1
  29. package/dist-lib/services/plans.d.ts.map +1 -1
  30. package/dist-lib/services/plans.js +88 -61
  31. package/dist-lib/services/plans.js.map +1 -1
  32. package/dist-lib/services/settings.d.ts.map +1 -1
  33. package/dist-lib/services/settings.js +25 -24
  34. package/dist-lib/services/settings.js.map +1 -1
  35. package/dist-lib/services.js +102 -100
  36. package/dist-lib/styles/core-frontend.css +1 -1
  37. package/dist-lib/utils/constants.d.ts.map +1 -1
  38. package/dist-lib/utils/constants.js +28 -5
  39. package/dist-lib/utils/constants.js.map +1 -1
  40. package/dist-lib/utils/helpers.d.ts +1 -0
  41. package/dist-lib/utils/helpers.d.ts.map +1 -1
  42. package/dist-lib/utils/helpers.js +17 -10
  43. package/dist-lib/utils/helpers.js.map +1 -1
  44. package/dist-lib/utils.js +28 -27
  45. package/package.json +1 -1
  46. package/src/@types/plans.ts +11 -20
  47. package/src/components/Plan/PlanSettings/PlanAdvancedSettings.tsx +4 -4
  48. package/src/components/Plan/PlanSettings/PlanNotificationSettings.tsx +179 -47
  49. package/src/components/Plan/PlanSettings/PlanNotificationSettingsTester.tsx +85 -0
  50. package/src/components/Plan/PlanSettings/PlanPruneSettings.tsx +2 -2
  51. package/src/components/Plan/PlanSettings/PlanSettings.module.scss +71 -0
  52. package/src/components/Settings/GeneralSettings/GeneralSettings.tsx +6 -1
  53. package/src/components/common/Icon/Icon.tsx +16 -0
  54. package/src/components/index.ts +1 -0
  55. package/src/services/plans.ts +38 -1
  56. package/src/services/settings.ts +2 -2
  57. package/src/utils/constants.ts +23 -0
  58. package/src/utils/helpers.ts +9 -0
@@ -33,6 +33,16 @@ export type PlanNotification = {
33
33
  authToken: string;
34
34
  tags: string;
35
35
  };
36
+ slack: {
37
+ enabled: boolean;
38
+ case: PlanNotificationCase;
39
+ url: string;
40
+ };
41
+ discord: {
42
+ enabled: boolean;
43
+ case: PlanNotificationCase;
44
+ url: string;
45
+ };
36
46
  };
37
47
  export type PlanInterval = {
38
48
  type: 'hourly' | 'daily' | 'weekly' | 'monthly' | 'days' | 'hours' | 'minutes';
@@ -86,26 +96,7 @@ export type PlanIntegritySettings = {
86
96
  enabled: boolean;
87
97
  interval: PlanInterval;
88
98
  method: string;
89
- notification: {
90
- email: {
91
- enabled: boolean;
92
- type: string;
93
- emails: string;
94
- };
95
- webhook: {
96
- enabled: boolean;
97
- method: 'GET' | 'POST';
98
- contentType: 'application/json' | 'application/x-www-form-urlencoded' | 'text/plain';
99
- url: string;
100
- };
101
- push: {
102
- enabled: boolean;
103
- url: string;
104
- authType: string;
105
- authToken: string;
106
- tags: string;
107
- };
108
- };
99
+ notification: PlanNotification;
109
100
  };
110
101
  export type PlanScript = {
111
102
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/@types/plans.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/@types/plans.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,27 @@
1
- import { jsxs as s, jsx as i, Fragment as u } from "react/jsx-runtime";
2
- import { useState as N, useMemo as g } from "react";
1
+ import { jsxs as c, jsx as t, Fragment as N } from "react/jsx-runtime";
2
+ import { useState as g, useMemo as h } from "react";
3
3
  import l from "../../common/Icon/Icon.js";
4
- import c from "./PlanSettings.module.scss.js";
5
- import h from "./PlanNotificationSettings.js";
4
+ import n from "./PlanSettings.module.scss.js";
5
+ import y from "./PlanNotificationSettings.js";
6
6
  import P from "./PlanPerformanceSettings.js";
7
7
  import T from "../../common/form/TagsInput/TagsInput.js";
8
- import y from "./PlanGeneralSettings.js";
9
- import { isMobile as G } from "../../../utils/helpers.js";
10
- import M from "../../common/form/Select/Select.js";
11
- import A from "./PlanScriptsSettings.js";
12
- const F = ({ plan: a, appSettings: n, device: m, onUpdate: r }) => {
13
- var v;
14
- const [t, o] = N("General"), d = a.settings, b = g(() => {
8
+ import G from "./PlanGeneralSettings.js";
9
+ import { isMobile as M } from "../../../utils/helpers.js";
10
+ import A from "../../common/form/Select/Select.js";
11
+ import C from "./PlanScriptsSettings.js";
12
+ const E = ({ plan: i, appSettings: s, device: m, onUpdate: r }) => {
13
+ var v, b;
14
+ const [a, o] = g("General"), d = i.settings, u = h(() => {
15
15
  const e = [];
16
- return n != null && n.integration && Object.keys(n.integration).forEach((f) => {
17
- n.integration[f] && n.integration[f].connected && e.push(f);
16
+ return s != null && s.integration && Object.keys(s.integration).forEach((f) => {
17
+ s.integration[f] && s.integration[f].connected && e.push(f);
18
18
  }), e;
19
- }, [n]);
20
- return /* @__PURE__ */ s("div", { className: `${c.advancedOptions} styled__scrollbar`, children: [
21
- G() ? /* @__PURE__ */ i(
22
- M,
19
+ }, [s]);
20
+ return /* @__PURE__ */ c("div", { className: `${n.advancedOptions} styled__scrollbar`, children: [
21
+ M() ? /* @__PURE__ */ t(
22
+ A,
23
23
  {
24
- customClasses: c.advancedSettingsSelect,
24
+ customClasses: n.advancedSettingsSelect,
25
25
  options: [
26
26
  { label: "General", value: "General", icon: "folders" },
27
27
  // { label: 'Prune', value: 'Prune', icon: 'prune' },
@@ -29,60 +29,62 @@ const F = ({ plan: a, appSettings: n, device: m, onUpdate: r }) => {
29
29
  { label: "Notification", value: "Notification", icon: "notification" },
30
30
  { label: "Misc.", value: "Misc", icon: "settings-alt" }
31
31
  ],
32
- fieldValue: t,
32
+ fieldValue: a,
33
33
  full: !0,
34
34
  onUpdate: (e) => o(e)
35
35
  }
36
- ) : /* @__PURE__ */ i(u, { children: /* @__PURE__ */ s("ul", { className: c.advancedTabs, children: [
37
- /* @__PURE__ */ s("li", { onClick: () => o("General"), className: t === "General" ? c.advancedTabActive : "", children: [
38
- /* @__PURE__ */ i(l, { size: 13, type: "folders" }),
36
+ ) : /* @__PURE__ */ t(N, { children: /* @__PURE__ */ c("ul", { className: n.advancedTabs, children: [
37
+ /* @__PURE__ */ c("li", { onClick: () => o("General"), className: a === "General" ? n.advancedTabActive : "", children: [
38
+ /* @__PURE__ */ t(l, { size: 13, type: "folders" }),
39
39
  " General"
40
40
  ] }),
41
- /* @__PURE__ */ s("li", { onClick: () => o("Performance"), className: t === "Performance" ? c.advancedTabActive : "", children: [
42
- /* @__PURE__ */ i(l, { size: 13, type: "performance" }),
41
+ /* @__PURE__ */ c("li", { onClick: () => o("Performance"), className: a === "Performance" ? n.advancedTabActive : "", children: [
42
+ /* @__PURE__ */ t(l, { size: 13, type: "performance" }),
43
43
  " Performance"
44
44
  ] }),
45
- /* @__PURE__ */ s("li", { onClick: () => o("Notification"), className: t === "Notification" ? c.advancedTabActive : "", children: [
46
- /* @__PURE__ */ i(l, { size: 13, type: "notification" }),
45
+ /* @__PURE__ */ c("li", { onClick: () => o("Notification"), className: a === "Notification" ? n.advancedTabActive : "", children: [
46
+ /* @__PURE__ */ t(l, { size: 13, type: "notification" }),
47
47
  " Notification"
48
48
  ] }),
49
- /* @__PURE__ */ s("li", { onClick: () => o("Scripts"), className: t === "Scripts" ? c.advancedTabActive : "", children: [
50
- /* @__PURE__ */ i(l, { size: 13, type: "cli" }),
49
+ /* @__PURE__ */ c("li", { onClick: () => o("Scripts"), className: a === "Scripts" ? n.advancedTabActive : "", children: [
50
+ /* @__PURE__ */ t(l, { size: 13, type: "cli" }),
51
51
  " Scripts"
52
52
  ] }),
53
- /* @__PURE__ */ s("li", { onClick: () => o("Misc"), className: t === "Misc" ? c.advancedTabActive : "", children: [
54
- /* @__PURE__ */ i(l, { size: 14, type: "settings-alt" }),
53
+ /* @__PURE__ */ c("li", { onClick: () => o("Misc"), className: a === "Misc" ? n.advancedTabActive : "", children: [
54
+ /* @__PURE__ */ t(l, { size: 14, type: "settings-alt" }),
55
55
  " Misc."
56
56
  ] })
57
57
  ] }) }),
58
- /* @__PURE__ */ s("div", { className: c.advancedTabContent, children: [
59
- t === "General" && /* @__PURE__ */ i(y, { settings: d, onUpdate: (e) => r({ ...a, settings: e }) }),
60
- t === "Notification" && /* @__PURE__ */ i(
61
- h,
58
+ /* @__PURE__ */ c("div", { className: n.advancedTabContent, children: [
59
+ a === "General" && /* @__PURE__ */ t(G, { settings: d, onUpdate: (e) => r({ ...i, settings: e }) }),
60
+ a === "Notification" && /* @__PURE__ */ t(
61
+ y,
62
62
  {
63
- types: b,
64
- plan: a,
65
- admin_email: n == null ? void 0 : n.admin_email,
66
- onUpdate: (e) => r({ ...a, settings: { ...d, notification: e } })
63
+ types: u,
64
+ planID: i.id,
65
+ isSync: i.method === "sync",
66
+ admin_email: s == null ? void 0 : s.admin_email,
67
+ notificationSettings: ((v = i.settings) == null ? void 0 : v.notification) || {},
68
+ onUpdate: (e) => r({ ...i, settings: { ...d, notification: e } })
67
69
  }
68
70
  ),
69
- t === "Performance" && /* @__PURE__ */ i(P, { plan: a, onUpdate: (e) => r({ ...a, settings: { ...d, performance: e } }) }),
70
- t === "Misc" && /* @__PURE__ */ s("div", { className: c.field, children: [
71
- /* @__PURE__ */ i("label", { className: c.label, children: "Tags" }),
72
- /* @__PURE__ */ i(T, { fieldValue: a.tags || [], onUpdate: (e) => r({ ...a, tags: e }) })
71
+ a === "Performance" && /* @__PURE__ */ t(P, { plan: i, onUpdate: (e) => r({ ...i, settings: { ...d, performance: e } }) }),
72
+ a === "Misc" && /* @__PURE__ */ c("div", { className: n.field, children: [
73
+ /* @__PURE__ */ t("label", { className: n.label, children: "Tags" }),
74
+ /* @__PURE__ */ t(T, { fieldValue: i.tags || [], onUpdate: (e) => r({ ...i, tags: e }) })
73
75
  ] }),
74
- t === "Scripts" && /* @__PURE__ */ i(
75
- A,
76
+ a === "Scripts" && /* @__PURE__ */ t(
77
+ C,
76
78
  {
77
- settings: ((v = a.settings) == null ? void 0 : v.scripts) || {},
79
+ settings: ((b = i.settings) == null ? void 0 : b.scripts) || {},
78
80
  platform: (m == null ? void 0 : m.platform) || void 0,
79
- onUpdate: (e) => r({ ...a, settings: { ...a.settings, scripts: e } })
81
+ onUpdate: (e) => r({ ...i, settings: { ...i.settings, scripts: e } })
80
82
  }
81
83
  )
82
84
  ] })
83
85
  ] });
84
86
  };
85
87
  export {
86
- F as default
88
+ E as default
87
89
  };
88
90
  //# sourceMappingURL=PlanAdvancedSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlanAdvancedSettings.js","sources":["../../../../src/components/Plan/PlanSettings/PlanAdvancedSettings.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\r\nimport Icon from '../../common/Icon/Icon';\r\nimport classes from './PlanSettings.module.scss';\r\nimport PlanNotificationSettings from './PlanNotificationSettings';\r\nimport PlanPerformanceSettings from './PlanPerformanceSettings';\r\nimport { NewPlanSettings } from '../../../@types/plans';\r\nimport TagsInput from '../../common/form/TagsInput/TagsInput';\r\nimport PlanGeneralSettings from './PlanGeneralSettings';\r\nimport { isMobile } from '../../../utils/helpers';\r\nimport Select from '../../common/form/Select/Select';\r\nimport PlanScriptsSettings from './PlanScriptsSettings';\r\nimport { Device } from '../../../@types/devices';\r\n\r\ninterface PlanAdvancedSettingsProps {\r\n plan: NewPlanSettings;\r\n appSettings?: Record<string, any>;\r\n device: Device;\r\n onUpdate: (notificationSettings: NewPlanSettings) => void;\r\n}\r\n\r\nconst PlanAdvancedSettings = ({ plan, appSettings, device, onUpdate }: PlanAdvancedSettingsProps) => {\r\n const [advancedTab, setAdvancedTab] = useState('General');\r\n const settings = plan.settings;\r\n const integrationTypes = useMemo(() => {\r\n const types: string[] = [];\r\n if (appSettings?.integration) {\r\n Object.keys(appSettings.integration).forEach((k) => {\r\n if (appSettings.integration[k] && appSettings.integration[k].connected) {\r\n types.push(k);\r\n }\r\n });\r\n }\r\n return types;\r\n }, [appSettings]);\r\n\r\n return (\r\n <div className={`${classes.advancedOptions} styled__scrollbar`}>\r\n {isMobile() ? (\r\n <Select\r\n customClasses={classes.advancedSettingsSelect}\r\n options={[\r\n { label: 'General', value: 'General', icon: 'folders' },\r\n // { label: 'Prune', value: 'Prune', icon: 'prune' },\r\n { label: 'Performance', value: 'Performance', icon: 'performance' },\r\n { label: 'Notification', value: 'Notification', icon: 'notification' },\r\n { label: 'Misc.', value: 'Misc', icon: 'settings-alt' },\r\n ]}\r\n fieldValue={advancedTab}\r\n full={true}\r\n onUpdate={(val) => setAdvancedTab(val)}\r\n />\r\n ) : (\r\n <>\r\n <ul className={classes.advancedTabs}>\r\n <li onClick={() => setAdvancedTab('General')} className={advancedTab === 'General' ? classes.advancedTabActive : ''}>\r\n <Icon size={13} type=\"folders\" /> General\r\n </li>\r\n {/* <li onClick={() => setAdvancedTab('Prune')} className={advancedTab === 'Prune' ? classes.advancedTabActive : ''}>\r\n <Icon size={13} type=\"prune\" /> Prune\r\n </li> */}\r\n <li onClick={() => setAdvancedTab('Performance')} className={advancedTab === 'Performance' ? classes.advancedTabActive : ''}>\r\n <Icon size={13} type=\"performance\" /> Performance\r\n </li>\r\n <li onClick={() => setAdvancedTab('Notification')} className={advancedTab === 'Notification' ? classes.advancedTabActive : ''}>\r\n <Icon size={13} type=\"notification\" /> Notification\r\n </li>\r\n <li onClick={() => setAdvancedTab('Scripts')} className={advancedTab === 'Scripts' ? classes.advancedTabActive : ''}>\r\n <Icon size={13} type=\"cli\" /> Scripts\r\n </li>\r\n <li onClick={() => setAdvancedTab('Misc')} className={advancedTab === 'Misc' ? classes.advancedTabActive : ''}>\r\n <Icon size={14} type=\"settings-alt\" /> Misc.\r\n </li>\r\n </ul>\r\n </>\r\n )}\r\n <div className={classes.advancedTabContent}>\r\n {advancedTab === 'General' && (\r\n <PlanGeneralSettings settings={settings} onUpdate={(newSettings) => onUpdate({ ...plan, settings: newSettings })} />\r\n )}\r\n {advancedTab === 'Notification' && (\r\n <PlanNotificationSettings\r\n types={integrationTypes}\r\n plan={plan}\r\n admin_email={appSettings?.admin_email}\r\n onUpdate={(notification: NewPlanSettings['settings']['notification']) =>\r\n onUpdate({ ...plan, settings: { ...settings, notification } })\r\n }\r\n />\r\n )}\r\n {/* {advancedTab === 'Prune' && (\r\n <PlanPruneSettings plan={plan} onUpdate={(prune) => onUpdate({ ...plan, settings: { ...settings, prune } })} />\r\n )} */}\r\n {advancedTab === 'Performance' && (\r\n <PlanPerformanceSettings plan={plan} onUpdate={(performance) => onUpdate({ ...plan, settings: { ...settings, performance } })} />\r\n )}\r\n {advancedTab === 'Misc' && (\r\n <div className={classes.field}>\r\n <label className={classes.label}>Tags</label>\r\n <TagsInput fieldValue={plan.tags || []} onUpdate={(val) => onUpdate({ ...plan, tags: val })} />\r\n </div>\r\n )}\r\n {advancedTab === 'Scripts' && (\r\n <PlanScriptsSettings\r\n settings={plan.settings?.scripts || {}}\r\n platform={device?.platform || undefined}\r\n onUpdate={(scripts: NewPlanSettings['settings']['scripts']) => onUpdate({ ...plan, settings: { ...plan.settings, scripts } })}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default PlanAdvancedSettings;\r\n"],"names":["PlanAdvancedSettings","plan","appSettings","device","onUpdate","advancedTab","setAdvancedTab","useState","settings","integrationTypes","useMemo","types","k","classes","isMobile","jsx","Select","val","Fragment","jsxs","Icon","PlanGeneralSettings","newSettings","PlanNotificationSettings","notification","PlanPerformanceSettings","performance","TagsInput","PlanScriptsSettings","_a","scripts"],"mappings":"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"}
1
+ {"version":3,"file":"PlanAdvancedSettings.js","sources":["../../../../src/components/Plan/PlanSettings/PlanAdvancedSettings.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\r\nimport Icon from '../../common/Icon/Icon';\r\nimport classes from './PlanSettings.module.scss';\r\nimport PlanNotificationSettings from './PlanNotificationSettings';\r\nimport PlanPerformanceSettings from './PlanPerformanceSettings';\r\nimport { NewPlanSettings } from '../../../@types/plans';\r\nimport TagsInput from '../../common/form/TagsInput/TagsInput';\r\nimport PlanGeneralSettings from './PlanGeneralSettings';\r\nimport { isMobile } from '../../../utils/helpers';\r\nimport Select from '../../common/form/Select/Select';\r\nimport PlanScriptsSettings from './PlanScriptsSettings';\r\nimport { Device } from '../../../@types/devices';\r\n\r\ninterface PlanAdvancedSettingsProps {\r\n plan: NewPlanSettings;\r\n appSettings?: Record<string, any>;\r\n device: Device;\r\n onUpdate: (notificationSettings: NewPlanSettings) => void;\r\n}\r\n\r\nconst PlanAdvancedSettings = ({ plan, appSettings, device, onUpdate }: PlanAdvancedSettingsProps) => {\r\n const [advancedTab, setAdvancedTab] = useState('General');\r\n const settings = plan.settings;\r\n const integrationTypes = useMemo(() => {\r\n const types: string[] = [];\r\n if (appSettings?.integration) {\r\n Object.keys(appSettings.integration).forEach((k) => {\r\n if (appSettings.integration[k] && appSettings.integration[k].connected) {\r\n types.push(k);\r\n }\r\n });\r\n }\r\n return types;\r\n }, [appSettings]);\r\n\r\n return (\r\n <div className={`${classes.advancedOptions} styled__scrollbar`}>\r\n {isMobile() ? (\r\n <Select\r\n customClasses={classes.advancedSettingsSelect}\r\n options={[\r\n { label: 'General', value: 'General', icon: 'folders' },\r\n // { label: 'Prune', value: 'Prune', icon: 'prune' },\r\n { label: 'Performance', value: 'Performance', icon: 'performance' },\r\n { label: 'Notification', value: 'Notification', icon: 'notification' },\r\n { label: 'Misc.', value: 'Misc', icon: 'settings-alt' },\r\n ]}\r\n fieldValue={advancedTab}\r\n full={true}\r\n onUpdate={(val) => setAdvancedTab(val)}\r\n />\r\n ) : (\r\n <>\r\n <ul className={classes.advancedTabs}>\r\n <li onClick={() => setAdvancedTab('General')} className={advancedTab === 'General' ? classes.advancedTabActive : ''}>\r\n <Icon size={13} type=\"folders\" /> General\r\n </li>\r\n {/* <li onClick={() => setAdvancedTab('Prune')} className={advancedTab === 'Prune' ? classes.advancedTabActive : ''}>\r\n <Icon size={13} type=\"prune\" /> Prune\r\n </li> */}\r\n <li onClick={() => setAdvancedTab('Performance')} className={advancedTab === 'Performance' ? classes.advancedTabActive : ''}>\r\n <Icon size={13} type=\"performance\" /> Performance\r\n </li>\r\n <li onClick={() => setAdvancedTab('Notification')} className={advancedTab === 'Notification' ? classes.advancedTabActive : ''}>\r\n <Icon size={13} type=\"notification\" /> Notification\r\n </li>\r\n <li onClick={() => setAdvancedTab('Scripts')} className={advancedTab === 'Scripts' ? classes.advancedTabActive : ''}>\r\n <Icon size={13} type=\"cli\" /> Scripts\r\n </li>\r\n <li onClick={() => setAdvancedTab('Misc')} className={advancedTab === 'Misc' ? classes.advancedTabActive : ''}>\r\n <Icon size={14} type=\"settings-alt\" /> Misc.\r\n </li>\r\n </ul>\r\n </>\r\n )}\r\n <div className={classes.advancedTabContent}>\r\n {advancedTab === 'General' && (\r\n <PlanGeneralSettings settings={settings} onUpdate={(newSettings) => onUpdate({ ...plan, settings: newSettings })} />\r\n )}\r\n {advancedTab === 'Notification' && (\r\n <PlanNotificationSettings\r\n types={integrationTypes}\r\n planID={plan.id}\r\n isSync={plan.method === 'sync'}\r\n admin_email={appSettings?.admin_email}\r\n notificationSettings={plan.settings?.notification || {}}\r\n onUpdate={(notification) => onUpdate({ ...plan, settings: { ...settings, notification } })}\r\n />\r\n )}\r\n {/* {advancedTab === 'Prune' && (\r\n <PlanPruneSettings plan={plan} onUpdate={(prune) => onUpdate({ ...plan, settings: { ...settings, prune } })} />\r\n )} */}\r\n {advancedTab === 'Performance' && (\r\n <PlanPerformanceSettings plan={plan} onUpdate={(performance) => onUpdate({ ...plan, settings: { ...settings, performance } })} />\r\n )}\r\n {advancedTab === 'Misc' && (\r\n <div className={classes.field}>\r\n <label className={classes.label}>Tags</label>\r\n <TagsInput fieldValue={plan.tags || []} onUpdate={(val) => onUpdate({ ...plan, tags: val })} />\r\n </div>\r\n )}\r\n {advancedTab === 'Scripts' && (\r\n <PlanScriptsSettings\r\n settings={plan.settings?.scripts || {}}\r\n platform={device?.platform || undefined}\r\n onUpdate={(scripts: NewPlanSettings['settings']['scripts']) => onUpdate({ ...plan, settings: { ...plan.settings, scripts } })}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default PlanAdvancedSettings;\r\n"],"names":["PlanAdvancedSettings","plan","appSettings","device","onUpdate","advancedTab","setAdvancedTab","useState","settings","integrationTypes","useMemo","types","k","classes","isMobile","jsx","Select","val","Fragment","jsxs","Icon","PlanGeneralSettings","newSettings","PlanNotificationSettings","_a","notification","PlanPerformanceSettings","performance","TagsInput","PlanScriptsSettings","_b","scripts"],"mappings":"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"}
@@ -1,10 +1,13 @@
1
- import { NewPlanSettings } from '../../../@types/plans';
1
+ import { PlanNotification } from '../../../@types/plans';
2
2
  interface PlanNotificationSettingsProps {
3
- plan: NewPlanSettings;
4
3
  types: string[];
4
+ isSync: boolean;
5
+ notificationType?: 'backup' | 'integrity';
5
6
  admin_email?: string;
6
- onUpdate: (notificationSettings: NewPlanSettings['settings']['notification']) => void;
7
+ planID?: string;
8
+ notificationSettings: PlanNotification;
9
+ onUpdate: (notificationSettings: PlanNotification) => void;
7
10
  }
8
- declare const PlanNotificationSettings: ({ plan, types, admin_email, onUpdate }: PlanNotificationSettingsProps) => import("react/jsx-runtime").JSX.Element;
11
+ declare const PlanNotificationSettings: ({ planID, isSync, types, admin_email, notificationSettings, notificationType, onUpdate, }: PlanNotificationSettingsProps) => import("react/jsx-runtime").JSX.Element;
9
12
  export default PlanNotificationSettings;
10
13
  //# sourceMappingURL=PlanNotificationSettings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlanNotificationSettings.d.ts","sourceRoot":"","sources":["../../../../src/components/Plan/PlanSettings/PlanNotificationSettings.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAwB,MAAM,uBAAuB,CAAC;AAG9E,UAAU,6BAA6B;IACpC,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,oBAAoB,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;CACxF;AAED,QAAA,MAAM,wBAAwB,GAAI,wCAAkD,6BAA6B,4CA6DhH,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"PlanNotificationSettings.d.ts","sourceRoot":"","sources":["../../../../src/components/Plan/PlanSettings/PlanNotificationSettings.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAwB,MAAM,uBAAuB,CAAC;AAK/E,UAAU,6BAA6B;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,gBAAgB,CAAC;IACvC,QAAQ,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC7D;AAED,QAAA,MAAM,wBAAwB,GAAI,2FAQ/B,6BAA6B,4CAoL/B,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -1,67 +1,192 @@
1
- import { jsxs as i, Fragment as b, jsx as a } from "react/jsx-runtime";
2
- import s from "./PlanSettings.module.scss.js";
3
- import y from "../../common/form/Select/Select.js";
4
- import O from "../../common/form/Input/Input.js";
5
- import E from "../../common/form/Toggle/Toggle.js";
6
- import { NavLink as j } from "react-router";
7
- const B = ({ plan: d, types: N = [], admin_email: m = "", onUpdate: r }) => {
8
- var o, n, t, u, h, f;
9
- const e = ((o = d.settings) == null ? void 0 : o.notification) || {}, p = (l) => {
10
- r({ ...e, email: { ...e.email, emails: l } });
11
- }, c = N.length > 0, v = !c && m ? m : "";
12
- return /* @__PURE__ */ i(b, { children: [
13
- /* @__PURE__ */ i("div", { className: s.field, children: [
14
- /* @__PURE__ */ a("label", { className: s.label, children: "Notification" }),
15
- /* @__PURE__ */ a(
16
- E,
17
- {
18
- fieldValue: ((n = e == null ? void 0 : e.email) == null ? void 0 : n.enabled) || !1,
19
- onUpdate: (l) => r({ ...e, email: { ...e.email, enabled: l } }),
20
- description: d.method === "sync" ? "Notify Me when Sync fails" : "Notify Me when Backup fails or succeeds"
21
- }
22
- )
1
+ import { jsxs as a, Fragment as G, jsx as d } from "react/jsx-runtime";
2
+ import e from "./PlanSettings.module.scss.js";
3
+ import c from "../../common/form/Select/Select.js";
4
+ import v from "../../common/form/Input/Input.js";
5
+ import N from "../../common/form/Toggle/Toggle.js";
6
+ import { NavLink as H } from "react-router";
7
+ import U from "./PlanNotificationSettingsTester.js";
8
+ import k from "../../common/Icon/Icon.js";
9
+ const o = ({
10
+ planID: p,
11
+ isSync: h,
12
+ types: W = [],
13
+ admin_email: x = "",
14
+ notificationSettings: l,
15
+ notificationType: $ = "backup",
16
+ onUpdate: u
17
+ }) => {
18
+ var E, V, O, T, q, R, w, y, F, I, j, z, B, C, D, L, P;
19
+ const s = W.length > 0, A = !s && x ? x : "", M = (r) => {
20
+ u({ ...l, email: { ...l.email, emails: r } });
21
+ }, b = [
22
+ { label: "On Start", value: "start" },
23
+ { label: "On End", value: "end" },
24
+ { label: "On Both Start & End", value: "both" },
25
+ { label: "On Success Only", value: "success" },
26
+ { label: "On Failure Only", value: "failure" }
27
+ ];
28
+ return /* @__PURE__ */ a(G, { children: [
29
+ /* @__PURE__ */ a("div", { className: e.notificationSettingsSection, children: [
30
+ /* @__PURE__ */ a("div", { className: `${e.field} ${e.notificationToggle}`, children: [
31
+ /* @__PURE__ */ d(k, { type: "email", size: 14 }),
32
+ /* @__PURE__ */ d(
33
+ N,
34
+ {
35
+ label: "Enable Email Notifications",
36
+ fieldValue: ((E = l == null ? void 0 : l.email) == null ? void 0 : E.enabled) || !1,
37
+ onUpdate: (r) => u({ ...l, email: { ...l.email, enabled: r } }),
38
+ hint: "Notify me via email when Backup fails or succeeds",
39
+ inline: !0
40
+ }
41
+ )
42
+ ] }),
43
+ ((V = l == null ? void 0 : l.email) == null ? void 0 : V.enabled) && /* @__PURE__ */ a("div", { className: e.notificationSettings, children: [
44
+ !h && /* @__PURE__ */ d("div", { className: e.field, children: /* @__PURE__ */ d(
45
+ c,
46
+ {
47
+ label: "Send Notification",
48
+ fieldValue: ((O = l == null ? void 0 : l.email) == null ? void 0 : O.case) || "failure",
49
+ options: b,
50
+ onUpdate: (r) => u({ ...l, email: { ...l.email, case: r } }),
51
+ inline: !0
52
+ }
53
+ ) }),
54
+ /* @__PURE__ */ a("div", { className: e.field, children: [
55
+ /* @__PURE__ */ d(
56
+ v,
57
+ {
58
+ label: "Email Addresses",
59
+ fieldValue: ((T = l == null ? void 0 : l.email) == null ? void 0 : T.emails) || A,
60
+ onUpdate: (r) => M(r),
61
+ placeholder: "john@gmail.com, chris@icloud.com",
62
+ full: !0,
63
+ inline: !0,
64
+ required: !0,
65
+ disabled: !s,
66
+ error: (q = l == null ? void 0 : l.email) != null && q.emails ? void 0 : "Required"
67
+ }
68
+ ),
69
+ !s && /* @__PURE__ */ a("div", { className: e.fieldNotice, children: [
70
+ "⚠️ SMTP has not been setup yet. Set it up in ",
71
+ /* @__PURE__ */ d(H, { to: "/settings?t=integration", children: "Settings" }),
72
+ " to enable Email Notification."
73
+ ] })
74
+ ] })
75
+ ] })
23
76
  ] }),
24
- ((t = e == null ? void 0 : e.email) == null ? void 0 : t.enabled) && /* @__PURE__ */ i(b, { children: [
25
- d.method !== "sync" && /* @__PURE__ */ i("div", { className: s.field, children: [
26
- /* @__PURE__ */ a("label", { className: s.label, children: "Send Notification" }),
27
- /* @__PURE__ */ a(
28
- y,
77
+ /* @__PURE__ */ a("div", { className: e.notificationSettingsSection, children: [
78
+ /* @__PURE__ */ a("div", { className: `${e.field} ${e.notificationToggle}`, children: [
79
+ /* @__PURE__ */ d(k, { type: "slack", size: 14 }),
80
+ /* @__PURE__ */ d(
81
+ N,
29
82
  {
30
- fieldValue: ((u = e == null ? void 0 : e.email) == null ? void 0 : u.case) || "failure",
31
- options: [
32
- { label: "On Start", value: "start" },
33
- { label: "On End", value: "end" },
34
- { label: "On Both Start & End", value: "both" },
35
- { label: "On Success Only", value: "success" },
36
- { label: "On Failure Only", value: "failure" }
37
- ],
38
- onUpdate: (l) => r({ ...e, email: { ...e.email, case: l } })
83
+ label: "Enable Slack Notifications",
84
+ fieldValue: ((R = l == null ? void 0 : l.slack) == null ? void 0 : R.enabled) || !1,
85
+ onUpdate: (r) => {
86
+ var m;
87
+ return u({
88
+ ...l,
89
+ slack: { ...l.slack, enabled: r, url: ((m = l.slack) == null ? void 0 : m.url) || "" }
90
+ });
91
+ },
92
+ hint: "Send notifications to a Slack channel via webhook",
93
+ inline: !0
39
94
  }
40
95
  )
41
96
  ] }),
42
- /* @__PURE__ */ i("div", { className: s.field, children: [
43
- /* @__PURE__ */ a("label", { className: s.label, children: "Email Addresses" }),
44
- /* @__PURE__ */ a(
45
- O,
97
+ ((w = l == null ? void 0 : l.slack) == null ? void 0 : w.enabled) && /* @__PURE__ */ a("div", { className: e.notificationSettings, children: [
98
+ !h && /* @__PURE__ */ d("div", { className: e.field, children: /* @__PURE__ */ d(
99
+ c,
100
+ {
101
+ label: "Send Slack Notification",
102
+ fieldValue: ((y = l == null ? void 0 : l.slack) == null ? void 0 : y.case) || "failure",
103
+ options: b,
104
+ onUpdate: (r) => u({ ...l, slack: { ...l.slack, case: r } }),
105
+ inline: !0
106
+ }
107
+ ) }),
108
+ /* @__PURE__ */ d("div", { className: e.field, children: /* @__PURE__ */ d(
109
+ v,
46
110
  {
47
- fieldValue: ((h = e == null ? void 0 : e.email) == null ? void 0 : h.emails) || v,
48
- onUpdate: (l) => p(l),
49
- placeholder: "john@gmail.com, chris@icloud.com",
111
+ label: "Slack Webhook URL",
112
+ fieldValue: ((F = l == null ? void 0 : l.slack) == null ? void 0 : F.url) || "",
113
+ onUpdate: (r) => u({ ...l, slack: { ...l.slack, url: r } }),
114
+ placeholder: "https://hooks.slack.com/services/T00/B00/xxxx",
115
+ required: !0,
116
+ inline: !0,
50
117
  full: !0,
51
- disabled: !c,
52
- error: (f = e == null ? void 0 : e.email) != null && f.emails ? void 0 : "Required"
118
+ error: (I = l == null ? void 0 : l.slack) != null && I.enabled && !((j = l == null ? void 0 : l.slack) != null && j.url) ? "Required" : void 0
53
119
  }
54
- ),
55
- !c && /* @__PURE__ */ i("div", { className: s.fieldNotice, children: [
56
- "⚠️ SMTP has not been setup yet. Set it up in ",
57
- /* @__PURE__ */ a(j, { to: "/settings?t=integration", children: "Settings" }),
58
- " to enable Email Notification."
59
- ] })
120
+ ) }),
121
+ /* @__PURE__ */ d("div", { className: `${e.field} ${e.notificationTestField}`, children: /* @__PURE__ */ d(
122
+ U,
123
+ {
124
+ planId: p || "",
125
+ notificationChannel: "slack",
126
+ notificationSettings: l,
127
+ notificationType: $
128
+ }
129
+ ) })
130
+ ] })
131
+ ] }),
132
+ /* @__PURE__ */ a("div", { className: e.notificationSettingsSection, children: [
133
+ /* @__PURE__ */ a("div", { className: `${e.field} ${e.notificationToggle}`, children: [
134
+ /* @__PURE__ */ d(k, { type: "discord", size: 14 }),
135
+ /* @__PURE__ */ d(
136
+ N,
137
+ {
138
+ label: "Send Discord Notifications",
139
+ fieldValue: ((z = l == null ? void 0 : l.discord) == null ? void 0 : z.enabled) || !1,
140
+ onUpdate: (r) => {
141
+ var m;
142
+ return u({
143
+ ...l,
144
+ discord: { ...l.discord, enabled: r, url: ((m = l.discord) == null ? void 0 : m.url) || "" }
145
+ });
146
+ },
147
+ hint: "Send notifications to a Discord channel via webhook",
148
+ inline: !0
149
+ }
150
+ )
151
+ ] }),
152
+ ((B = l == null ? void 0 : l.discord) == null ? void 0 : B.enabled) && /* @__PURE__ */ a("div", { className: e.notificationSettings, children: [
153
+ !h && /* @__PURE__ */ d("div", { className: e.field, children: /* @__PURE__ */ d(
154
+ c,
155
+ {
156
+ label: "Send Discord Notification",
157
+ fieldValue: ((C = l == null ? void 0 : l.discord) == null ? void 0 : C.case) || "failure",
158
+ options: b,
159
+ onUpdate: (r) => u({ ...l, discord: { ...l.discord, case: r } }),
160
+ inline: !0
161
+ }
162
+ ) }),
163
+ /* @__PURE__ */ d("div", { className: e.field, children: /* @__PURE__ */ d(
164
+ v,
165
+ {
166
+ label: "Discord Webhook URL",
167
+ fieldValue: ((D = l == null ? void 0 : l.discord) == null ? void 0 : D.url) || "",
168
+ onUpdate: (r) => u({ ...l, discord: { ...l.discord, url: r } }),
169
+ placeholder: "https://discord.com/api/webhooks/xxxx/xxxx",
170
+ required: !0,
171
+ inline: !0,
172
+ full: !0,
173
+ error: (L = l == null ? void 0 : l.discord) != null && L.enabled && !((P = l == null ? void 0 : l.discord) != null && P.url) ? "Required" : void 0
174
+ }
175
+ ) }),
176
+ /* @__PURE__ */ d("div", { className: `${e.field} ${e.notificationTestField}`, children: /* @__PURE__ */ d(
177
+ U,
178
+ {
179
+ planId: p || "",
180
+ notificationChannel: "discord",
181
+ notificationType: $,
182
+ notificationSettings: l
183
+ }
184
+ ) })
60
185
  ] })
61
186
  ] })
62
187
  ] });
63
188
  };
64
189
  export {
65
- B as default
190
+ o as default
66
191
  };
67
192
  //# sourceMappingURL=PlanNotificationSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlanNotificationSettings.js","sources":["../../../../src/components/Plan/PlanSettings/PlanNotificationSettings.tsx"],"sourcesContent":["import classes from './PlanSettings.module.scss';\r\nimport Select from '../../common/form/Select/Select';\r\nimport Input from '../../common/form/Input/Input';\r\nimport Toggle from '../../common/form/Toggle/Toggle';\r\nimport { NewPlanSettings, PlanNotificationCase } from '../../../@types/plans';\r\nimport { NavLink } from 'react-router';\r\n\r\ninterface PlanNotificationSettingsProps {\r\n plan: NewPlanSettings;\r\n types: string[];\r\n admin_email?: string;\r\n onUpdate: (notificationSettings: NewPlanSettings['settings']['notification']) => void;\r\n}\r\n\r\nconst PlanNotificationSettings = ({ plan, types = [], admin_email = '', onUpdate }: PlanNotificationSettingsProps) => {\r\n const notificationSettings = plan.settings?.notification || {};\r\n\r\n const updateNotificationEmails = (emails: string) => {\r\n onUpdate({ ...notificationSettings, email: { ...notificationSettings.email, emails } });\r\n };\r\n\r\n const hasConnectedIntegrations = types.length > 0;\r\n const defaultEmail = !hasConnectedIntegrations && admin_email ? admin_email : '';\r\n\r\n return (\r\n <>\r\n <div className={classes.field}>\r\n <label className={classes.label}>Notification</label>\r\n <Toggle\r\n fieldValue={notificationSettings?.email?.enabled || false}\r\n onUpdate={(val: boolean) => onUpdate({ ...notificationSettings, email: { ...notificationSettings.email, enabled: val } })}\r\n description={plan.method === 'sync' ? 'Notify Me when Sync fails' : 'Notify Me when Backup fails or succeeds'}\r\n />\r\n </div>\r\n {notificationSettings?.email?.enabled && (\r\n <>\r\n {plan.method !== 'sync' && (\r\n <div className={classes.field}>\r\n <label className={classes.label}>Send Notification</label>\r\n <Select\r\n fieldValue={notificationSettings?.email?.case || 'failure'}\r\n options={[\r\n { label: 'On Start', value: 'start' },\r\n { label: 'On End', value: 'end' },\r\n { label: 'On Both Start & End', value: 'both' },\r\n { label: 'On Success Only', value: 'success' },\r\n { label: 'On Failure Only', value: 'failure' },\r\n ]}\r\n onUpdate={(val: string) =>\r\n onUpdate({ ...notificationSettings, email: { ...notificationSettings.email, case: val as PlanNotificationCase } })\r\n }\r\n />\r\n </div>\r\n )}\r\n <div className={classes.field}>\r\n <label className={classes.label}>Email Addresses</label>\r\n <Input\r\n fieldValue={notificationSettings?.email?.emails || defaultEmail}\r\n onUpdate={(val) => updateNotificationEmails(val)}\r\n placeholder=\"john@gmail.com, chris@icloud.com\"\r\n full={true}\r\n disabled={!hasConnectedIntegrations}\r\n error={!notificationSettings?.email?.emails ? 'Required' : undefined}\r\n />\r\n {!hasConnectedIntegrations && (\r\n <div className={classes.fieldNotice}>\r\n ⚠️ SMTP has not been setup yet. Set it up in <NavLink to={`/settings?t=integration`}>Settings</NavLink> to enable Email\r\n Notification.\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default PlanNotificationSettings;\r\n"],"names":["PlanNotificationSettings","plan","types","admin_email","onUpdate","notificationSettings","_a","updateNotificationEmails","emails","hasConnectedIntegrations","defaultEmail","jsxs","Fragment","classes","jsx","Toggle","_b","val","_c","Select","_d","Input","_e","_f","NavLink"],"mappings":"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"}
1
+ {"version":3,"file":"PlanNotificationSettings.js","sources":["../../../../src/components/Plan/PlanSettings/PlanNotificationSettings.tsx"],"sourcesContent":["import classes from './PlanSettings.module.scss';\r\nimport Select from '../../common/form/Select/Select';\r\nimport Input from '../../common/form/Input/Input';\r\nimport Toggle from '../../common/form/Toggle/Toggle';\r\nimport { PlanNotification, PlanNotificationCase } from '../../../@types/plans';\r\nimport { NavLink } from 'react-router';\r\nimport PlanNotificationSettingsTester from './PlanNotificationSettingsTester';\r\nimport { Icon } from '../..';\r\n\r\ninterface PlanNotificationSettingsProps {\r\n types: string[];\r\n isSync: boolean;\r\n notificationType?: 'backup' | 'integrity';\r\n admin_email?: string;\r\n planID?: string;\r\n notificationSettings: PlanNotification;\r\n onUpdate: (notificationSettings: PlanNotification) => void;\r\n}\r\n\r\nconst PlanNotificationSettings = ({\r\n planID,\r\n isSync,\r\n types = [],\r\n admin_email = '',\r\n notificationSettings,\r\n notificationType = 'backup',\r\n onUpdate,\r\n}: PlanNotificationSettingsProps) => {\r\n const hasConnectedIntegrations = types.length > 0;\r\n const defaultEmail = !hasConnectedIntegrations && admin_email ? admin_email : '';\r\n\r\n const updateNotificationEmails = (emails: string) => {\r\n onUpdate({ ...notificationSettings, email: { ...notificationSettings.email, emails } });\r\n };\r\n\r\n const caseOptions = [\r\n { label: 'On Start', value: 'start' },\r\n { label: 'On End', value: 'end' },\r\n { label: 'On Both Start & End', value: 'both' },\r\n { label: 'On Success Only', value: 'success' },\r\n { label: 'On Failure Only', value: 'failure' },\r\n ];\r\n\r\n return (\r\n <>\r\n <div className={classes.notificationSettingsSection}>\r\n <div className={`${classes.field} ${classes.notificationToggle}`}>\r\n <Icon type=\"email\" size={14} />\r\n <Toggle\r\n label=\"Enable Email Notifications\"\r\n fieldValue={notificationSettings?.email?.enabled || false}\r\n onUpdate={(val: boolean) => onUpdate({ ...notificationSettings, email: { ...notificationSettings.email, enabled: val } })}\r\n hint={'Notify me via email when Backup fails or succeeds'}\r\n inline={true}\r\n />\r\n </div>\r\n {notificationSettings?.email?.enabled && (\r\n <div className={classes.notificationSettings}>\r\n {!isSync && (\r\n <div className={classes.field}>\r\n <Select\r\n label=\"Send Notification\"\r\n fieldValue={notificationSettings?.email?.case || 'failure'}\r\n options={caseOptions}\r\n onUpdate={(val: string) =>\r\n onUpdate({ ...notificationSettings, email: { ...notificationSettings.email, case: val as PlanNotificationCase } })\r\n }\r\n inline={true}\r\n />\r\n </div>\r\n )}\r\n <div className={classes.field}>\r\n <Input\r\n label=\"Email Addresses\"\r\n fieldValue={notificationSettings?.email?.emails || defaultEmail}\r\n onUpdate={(val) => updateNotificationEmails(val)}\r\n placeholder=\"john@gmail.com, chris@icloud.com\"\r\n full={true}\r\n inline={true}\r\n required={true}\r\n disabled={!hasConnectedIntegrations}\r\n error={!notificationSettings?.email?.emails ? 'Required' : undefined}\r\n />\r\n {!hasConnectedIntegrations && (\r\n <div className={classes.fieldNotice}>\r\n ⚠️ SMTP has not been setup yet. Set it up in <NavLink to={`/settings?t=integration`}>Settings</NavLink> to enable Email\r\n Notification.\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Slack Notification */}\r\n <div className={classes.notificationSettingsSection}>\r\n <div className={`${classes.field} ${classes.notificationToggle}`}>\r\n <Icon type=\"slack\" size={14} />\r\n <Toggle\r\n label=\"Enable Slack Notifications\"\r\n fieldValue={notificationSettings?.slack?.enabled || false}\r\n onUpdate={(val: boolean) =>\r\n onUpdate({\r\n ...notificationSettings,\r\n slack: { ...notificationSettings.slack, enabled: val, url: notificationSettings.slack?.url || '' },\r\n })\r\n }\r\n hint=\"Send notifications to a Slack channel via webhook\"\r\n inline={true}\r\n />\r\n </div>\r\n {notificationSettings?.slack?.enabled && (\r\n <div className={classes.notificationSettings}>\r\n {!isSync && (\r\n <div className={classes.field}>\r\n <Select\r\n label=\"Send Slack Notification\"\r\n fieldValue={notificationSettings?.slack?.case || 'failure'}\r\n options={caseOptions}\r\n onUpdate={(val: string) =>\r\n onUpdate({ ...notificationSettings, slack: { ...notificationSettings.slack, case: val as PlanNotificationCase } })\r\n }\r\n inline={true}\r\n />\r\n </div>\r\n )}\r\n <div className={classes.field}>\r\n <Input\r\n label=\"Slack Webhook URL\"\r\n fieldValue={notificationSettings?.slack?.url || ''}\r\n onUpdate={(val) => onUpdate({ ...notificationSettings, slack: { ...notificationSettings.slack, url: val } })}\r\n placeholder=\"https://hooks.slack.com/services/T00/B00/xxxx\"\r\n required={true}\r\n inline={true}\r\n full={true}\r\n error={notificationSettings?.slack?.enabled && !notificationSettings?.slack?.url ? 'Required' : undefined}\r\n />\r\n </div>\r\n <div className={`${classes.field} ${classes.notificationTestField}`}>\r\n <PlanNotificationSettingsTester\r\n planId={planID || ''}\r\n notificationChannel=\"slack\"\r\n notificationSettings={notificationSettings}\r\n notificationType={notificationType}\r\n />\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Discord Notification */}\r\n <div className={classes.notificationSettingsSection}>\r\n <div className={`${classes.field} ${classes.notificationToggle}`}>\r\n <Icon type=\"discord\" size={14} />\r\n <Toggle\r\n label=\"Send Discord Notifications\"\r\n fieldValue={notificationSettings?.discord?.enabled || false}\r\n onUpdate={(val: boolean) =>\r\n onUpdate({\r\n ...notificationSettings,\r\n discord: { ...notificationSettings.discord, enabled: val, url: notificationSettings.discord?.url || '' },\r\n })\r\n }\r\n hint=\"Send notifications to a Discord channel via webhook\"\r\n inline={true}\r\n />\r\n </div>\r\n {notificationSettings?.discord?.enabled && (\r\n <div className={classes.notificationSettings}>\r\n {!isSync && (\r\n <div className={classes.field}>\r\n <Select\r\n label=\"Send Discord Notification\"\r\n fieldValue={notificationSettings?.discord?.case || 'failure'}\r\n options={caseOptions}\r\n onUpdate={(val: string) =>\r\n onUpdate({ ...notificationSettings, discord: { ...notificationSettings.discord, case: val as PlanNotificationCase } })\r\n }\r\n inline={true}\r\n />\r\n </div>\r\n )}\r\n <div className={classes.field}>\r\n <Input\r\n label=\"Discord Webhook URL\"\r\n fieldValue={notificationSettings?.discord?.url || ''}\r\n onUpdate={(val) => onUpdate({ ...notificationSettings, discord: { ...notificationSettings.discord, url: val } })}\r\n placeholder=\"https://discord.com/api/webhooks/xxxx/xxxx\"\r\n required={true}\r\n inline={true}\r\n full={true}\r\n error={notificationSettings?.discord?.enabled && !notificationSettings?.discord?.url ? 'Required' : undefined}\r\n />\r\n </div>\r\n <div className={`${classes.field} ${classes.notificationTestField}`}>\r\n <PlanNotificationSettingsTester\r\n planId={planID || ''}\r\n notificationChannel=\"discord\"\r\n notificationType={notificationType}\r\n notificationSettings={notificationSettings}\r\n />\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default PlanNotificationSettings;\r\n"],"names":["PlanNotificationSettings","planID","isSync","types","admin_email","notificationSettings","notificationType","onUpdate","hasConnectedIntegrations","defaultEmail","updateNotificationEmails","emails","caseOptions","jsxs","Fragment","classes","jsx","Icon","Toggle","_a","val","_b","Select","_c","Input","_d","_e","NavLink","_f","_g","_h","_i","_j","_k","PlanNotificationSettingsTester","_l","_m","_n","_o","_p","_q"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { NewPlanSettings } from '../../..';
2
+ declare const PlanNotificationSettingsTester: ({ planId, notificationChannel, notificationSettings, notificationType, }: {
3
+ planId: string;
4
+ notificationType?: "backup" | "integrity";
5
+ notificationChannel: "webhook" | "slack" | "discord";
6
+ notificationSettings: NewPlanSettings["settings"]["notification"];
7
+ }) => import("react/jsx-runtime").JSX.Element;
8
+ export default PlanNotificationSettingsTester;
9
+ //# sourceMappingURL=PlanNotificationSettingsTester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanNotificationSettingsTester.d.ts","sourceRoot":"","sources":["../../../../src/components/Plan/PlanSettings/PlanNotificationSettingsTester.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAwB,MAAM,UAAU,CAAC;AAIjE,QAAA,MAAM,8BAA8B,GAAI,0EAKrC;IACA,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC1C,mBAAmB,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACrD,oBAAoB,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC;CACpE,4CAgEA,CAAC;AAEF,eAAe,8BAA8B,CAAC"}