@plutonhq/core-frontend 0.1.23 → 0.1.24

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 (53) hide show
  1. package/dist-lib/@types/index.js +4 -1
  2. package/dist-lib/@types/index.js.map +1 -1
  3. package/dist-lib/@types/settings.d.ts +14 -0
  4. package/dist-lib/@types/settings.d.ts.map +1 -1
  5. package/dist-lib/@types/settings.js +34 -0
  6. package/dist-lib/@types/settings.js.map +1 -0
  7. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.d.ts.map +1 -1
  8. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.js +148 -90
  9. package/dist-lib/components/Plan/PlanSettings/PlanNotificationSettings.js.map +1 -1
  10. package/dist-lib/components/Settings/IntegrationSettings/IntegrationSettings.d.ts.map +1 -1
  11. package/dist-lib/components/Settings/IntegrationSettings/IntegrationSettings.js +52 -47
  12. package/dist-lib/components/Settings/IntegrationSettings/IntegrationSettings.js.map +1 -1
  13. package/dist-lib/components/Settings/IntegrationSettings/IntegrationSettings.module.scss.js +12 -6
  14. package/dist-lib/components/Settings/IntegrationSettings/IntegrationSettings.module.scss.js.map +1 -1
  15. package/dist-lib/components/Settings/IntegrationSettings/NtfySettings.d.ts +9 -0
  16. package/dist-lib/components/Settings/IntegrationSettings/NtfySettings.d.ts.map +1 -0
  17. package/dist-lib/components/Settings/IntegrationSettings/NtfySettings.js +79 -0
  18. package/dist-lib/components/Settings/IntegrationSettings/NtfySettings.js.map +1 -0
  19. package/dist-lib/components/Settings/IntegrationSettings/SMTPSettings.d.ts +4 -3
  20. package/dist-lib/components/Settings/IntegrationSettings/SMTPSettings.d.ts.map +1 -1
  21. package/dist-lib/components/Settings/IntegrationSettings/SMTPSettings.js +37 -35
  22. package/dist-lib/components/Settings/IntegrationSettings/SMTPSettings.js.map +1 -1
  23. package/dist-lib/components/Settings/IntegrationSettings/ValidateEmailIntegration.d.ts +10 -0
  24. package/dist-lib/components/Settings/IntegrationSettings/ValidateEmailIntegration.d.ts.map +1 -0
  25. package/dist-lib/components/Settings/IntegrationSettings/ValidateEmailIntegration.js +49 -0
  26. package/dist-lib/components/Settings/IntegrationSettings/ValidateEmailIntegration.js.map +1 -0
  27. package/dist-lib/components/Storage/EditStorage/EditStorage.js +10 -10
  28. package/dist-lib/components/Storage/EditStorage/EditStorage.js.map +1 -1
  29. package/dist-lib/components/index.d.ts +2 -0
  30. package/dist-lib/components/index.d.ts.map +1 -1
  31. package/dist-lib/components.js +58 -54
  32. package/dist-lib/components.js.map +1 -1
  33. package/dist-lib/services/settings.d.ts +3 -2
  34. package/dist-lib/services/settings.d.ts.map +1 -1
  35. package/dist-lib/services/settings.js +0 -1
  36. package/dist-lib/services/settings.js.map +1 -1
  37. package/dist-lib/styles/core-frontend.css +1 -1
  38. package/package.json +1 -1
  39. package/src/@types/settings.ts +43 -0
  40. package/src/components/Plan/PlanSettings/PlanNotificationSettings.tsx +65 -0
  41. package/src/components/Settings/IntegrationSettings/IntegrationSettings.module.scss +16 -0
  42. package/src/components/Settings/IntegrationSettings/IntegrationSettings.tsx +45 -42
  43. package/src/components/Settings/IntegrationSettings/NtfySettings.tsx +106 -0
  44. package/src/components/Settings/IntegrationSettings/SMTPSettings.tsx +28 -19
  45. package/src/components/Settings/IntegrationSettings/ValidateEmailIntegration.tsx +58 -0
  46. package/src/components/Storage/EditStorage/EditStorage.tsx +1 -1
  47. package/src/components/index.ts +2 -0
  48. package/src/services/settings.ts +2 -2
  49. /package/dist-lib/providers/{azureBlob.png → azureblob.png} +0 -0
  50. /package/dist-lib/providers/{azureFiles.png → azurefiles.png} +0 -0
  51. /package/dist-lib/providers/{files.png → filescom.png} +0 -0
  52. /package/dist-lib/providers/{oracle.png → oracleobjectstorage.png} +0 -0
  53. /package/dist-lib/providers/{proton.png → protondrive.png} +0 -0
@@ -1,2 +1,5 @@
1
-
1
+ import { INTEGRATIONS_AVAILABLE as o } from "./settings.js";
2
+ export {
3
+ o as INTEGRATIONS_AVAILABLE
4
+ };
2
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -17,4 +17,18 @@ export interface LogItem {
17
17
  deviceId?: string;
18
18
  msg: string;
19
19
  }
20
+ export interface NtfySettingsType {
21
+ authType: string;
22
+ authToken: string;
23
+ connected: boolean;
24
+ }
25
+ export interface IntegrationSettings {
26
+ smtp?: SmtpSettingsType;
27
+ ntfy?: NtfySettingsType;
28
+ }
29
+ export type IntegrationTypes = 'smtp' | 'sendgrid' | 'mailgun' | 'brevo' | 'resend' | 'awsSes' | 'ntfy';
30
+ export declare const INTEGRATIONS_AVAILABLE: Record<IntegrationTypes, {
31
+ name: string;
32
+ required: string[];
33
+ }>;
20
34
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/@types/settings.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/@types/settings.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IACjC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AACxG,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA6BxF,CAAC"}
@@ -0,0 +1,34 @@
1
+ const e = {
2
+ smtp: {
3
+ name: "SMTP",
4
+ required: ["server", "port", "username", "password", "senderEmail"]
5
+ },
6
+ sendgrid: {
7
+ name: "SendGrid",
8
+ required: ["apiKey", "senderEmail"]
9
+ },
10
+ mailgun: {
11
+ name: "Mailgun",
12
+ required: ["apiKey", "domain", "senderEmail"]
13
+ },
14
+ brevo: {
15
+ name: "Brevo",
16
+ required: ["apiKey", "senderEmail"]
17
+ },
18
+ resend: {
19
+ name: "Resend",
20
+ required: ["apiKey", "senderEmail"]
21
+ },
22
+ awsSes: {
23
+ name: "AWS SES",
24
+ required: ["accessKeyId", "secretAccessKey", "region", "senderEmail"]
25
+ },
26
+ ntfy: {
27
+ name: "Ntfy",
28
+ required: ["authType", "authToken"]
29
+ }
30
+ };
31
+ export {
32
+ e as INTEGRATIONS_AVAILABLE
33
+ };
34
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sources":["../../src/@types/settings.ts"],"sourcesContent":["export interface SmtpSettingsType {\r\n server: string;\r\n port: number;\r\n username: string;\r\n password: string;\r\n connected: boolean;\r\n senderEmail: string;\r\n}\r\n\r\nexport interface LogItem {\r\n level: number;\r\n time: number;\r\n pid: number;\r\n hostname: string;\r\n module: string;\r\n planId?: string;\r\n backupId?: string;\r\n deviceId?: string;\r\n msg: string;\r\n}\r\n\r\nexport interface NtfySettingsType {\r\n authType: string;\r\n authToken: string;\r\n connected: boolean;\r\n}\r\n\r\nexport interface IntegrationSettings {\r\n smtp?: SmtpSettingsType;\r\n ntfy?: NtfySettingsType;\r\n}\r\n\r\nexport type IntegrationTypes = 'smtp' | 'sendgrid' | 'mailgun' | 'brevo' | 'resend' | 'awsSes' | 'ntfy';\r\nexport const INTEGRATIONS_AVAILABLE: Record<IntegrationTypes, { name: string; required: string[] }> = {\r\n smtp: {\r\n name: 'SMTP',\r\n required: ['server', 'port', 'username', 'password', 'senderEmail'],\r\n },\r\n sendgrid: {\r\n name: 'SendGrid',\r\n required: ['apiKey', 'senderEmail'],\r\n },\r\n mailgun: {\r\n name: 'Mailgun',\r\n required: ['apiKey', 'domain', 'senderEmail'],\r\n },\r\n brevo: {\r\n name: 'Brevo',\r\n required: ['apiKey', 'senderEmail'],\r\n },\r\n resend: {\r\n name: 'Resend',\r\n required: ['apiKey', 'senderEmail'],\r\n },\r\n awsSes: {\r\n name: 'AWS SES',\r\n required: ['accessKeyId', 'secretAccessKey', 'region', 'senderEmail'],\r\n },\r\n ntfy: {\r\n name: 'Ntfy',\r\n required: ['authType', 'authToken'],\r\n },\r\n} as const;\r\n"],"names":["INTEGRATIONS_AVAILABLE"],"mappings":"AAiCO,MAAMA,IAAyF;AAAA,EACnG,MAAM;AAAA,IACH,MAAM;AAAA,IACN,UAAU,CAAC,UAAU,QAAQ,YAAY,YAAY,aAAa;AAAA,EAAA;AAAA,EAErE,UAAU;AAAA,IACP,MAAM;AAAA,IACN,UAAU,CAAC,UAAU,aAAa;AAAA,EAAA;AAAA,EAErC,SAAS;AAAA,IACN,MAAM;AAAA,IACN,UAAU,CAAC,UAAU,UAAU,aAAa;AAAA,EAAA;AAAA,EAE/C,OAAO;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,UAAU,aAAa;AAAA,EAAA;AAAA,EAErC,QAAQ;AAAA,IACL,MAAM;AAAA,IACN,UAAU,CAAC,UAAU,aAAa;AAAA,EAAA;AAAA,EAErC,QAAQ;AAAA,IACL,MAAM;AAAA,IACN,UAAU,CAAC,eAAe,mBAAmB,UAAU,aAAa;AAAA,EAAA;AAAA,EAEvE,MAAM;AAAA,IACH,MAAM;AAAA,IACN,UAAU,CAAC,YAAY,WAAW;AAAA,EAAA;AAExC;"}
@@ -1 +1 @@
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
+ {"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,4CAqP/B,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -1,92 +1,92 @@
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 = "",
1
+ import { jsxs as u, Fragment as _, jsx as e } from "react/jsx-runtime";
2
+ import d from "./PlanSettings.module.scss.js";
3
+ import N from "../../common/form/Select/Select.js";
4
+ import m from "../../common/form/Input/Input.js";
5
+ import b from "../../common/form/Toggle/Toggle.js";
6
+ import { NavLink as K } from "react-router";
7
+ import Q from "./PlanNotificationSettingsTester.js";
8
+ import v from "../../common/Icon/Icon.js";
9
+ const el = ({
10
+ planID: k,
11
+ isSync: s,
12
+ types: x = [],
13
+ admin_email: y = "",
14
14
  notificationSettings: l,
15
- notificationType: $ = "backup",
16
- onUpdate: u
15
+ notificationType: V = "backup",
16
+ onUpdate: a
17
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 = [
18
+ var $, T, E, O, q, P, R, w, z, B, C, F, I, L, U, j, D, A, W, M, G, H, J;
19
+ const c = x.length > 0, X = !c && y ? y : "", Y = x.includes("ntfy"), Z = (r) => {
20
+ a({ ...l, email: { ...l.email, emails: r } });
21
+ }, p = [
22
22
  { label: "On Start", value: "start" },
23
23
  { label: "On End", value: "end" },
24
24
  { label: "On Both Start & End", value: "both" },
25
25
  { label: "On Success Only", value: "success" },
26
26
  { label: "On Failure Only", value: "failure" }
27
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,
28
+ return /* @__PURE__ */ u(_, { children: [
29
+ /* @__PURE__ */ u("div", { className: d.notificationSettingsSection, children: [
30
+ /* @__PURE__ */ u("div", { className: `${d.field} ${d.notificationToggle}`, children: [
31
+ /* @__PURE__ */ e(v, { type: "email", size: 14 }),
32
+ /* @__PURE__ */ e(
33
+ b,
34
34
  {
35
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 } }),
36
+ fieldValue: (($ = l == null ? void 0 : l.email) == null ? void 0 : $.enabled) || !1,
37
+ onUpdate: (r) => a({ ...l, email: { ...l.email, enabled: r } }),
38
38
  hint: "Notify me via email when Backup fails or succeeds",
39
39
  inline: !0
40
40
  }
41
41
  )
42
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,
43
+ ((T = l == null ? void 0 : l.email) == null ? void 0 : T.enabled) && /* @__PURE__ */ u("div", { className: d.notificationSettings, children: [
44
+ !s && /* @__PURE__ */ e("div", { className: d.field, children: /* @__PURE__ */ e(
45
+ N,
46
46
  {
47
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 } }),
48
+ fieldValue: ((E = l == null ? void 0 : l.email) == null ? void 0 : E.case) || "failure",
49
+ options: p,
50
+ onUpdate: (r) => a({ ...l, email: { ...l.email, case: r } }),
51
51
  inline: !0
52
52
  }
53
53
  ) }),
54
- /* @__PURE__ */ a("div", { className: e.field, children: [
55
- /* @__PURE__ */ d(
56
- v,
54
+ /* @__PURE__ */ u("div", { className: d.field, children: [
55
+ /* @__PURE__ */ e(
56
+ m,
57
57
  {
58
58
  label: "Email Addresses",
59
- fieldValue: ((T = l == null ? void 0 : l.email) == null ? void 0 : T.emails) || A,
60
- onUpdate: (r) => M(r),
59
+ fieldValue: ((O = l == null ? void 0 : l.email) == null ? void 0 : O.emails) || X,
60
+ onUpdate: (r) => Z(r),
61
61
  placeholder: "john@gmail.com, chris@icloud.com",
62
62
  full: !0,
63
63
  inline: !0,
64
64
  required: !0,
65
- disabled: !s,
65
+ disabled: !c,
66
66
  error: (q = l == null ? void 0 : l.email) != null && q.emails ? void 0 : "Required"
67
67
  }
68
68
  ),
69
- !s && /* @__PURE__ */ a("div", { className: e.fieldNotice, children: [
69
+ !c && /* @__PURE__ */ u("div", { className: d.fieldNotice, children: [
70
70
  "⚠️ SMTP has not been setup yet. Set it up in ",
71
- /* @__PURE__ */ d(H, { to: "/settings?t=integration", children: "Settings" }),
71
+ /* @__PURE__ */ e(K, { to: "/settings?t=integration", children: "Settings" }),
72
72
  " to enable Email Notification."
73
73
  ] })
74
74
  ] })
75
75
  ] })
76
76
  ] }),
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,
77
+ /* @__PURE__ */ u("div", { className: d.notificationSettingsSection, children: [
78
+ /* @__PURE__ */ u("div", { className: `${d.field} ${d.notificationToggle}`, children: [
79
+ /* @__PURE__ */ e(v, { type: "slack", size: 14 }),
80
+ /* @__PURE__ */ e(
81
+ b,
82
82
  {
83
83
  label: "Enable Slack Notifications",
84
- fieldValue: ((R = l == null ? void 0 : l.slack) == null ? void 0 : R.enabled) || !1,
84
+ fieldValue: ((P = l == null ? void 0 : l.slack) == null ? void 0 : P.enabled) || !1,
85
85
  onUpdate: (r) => {
86
- var m;
87
- return u({
86
+ var h;
87
+ return a({
88
88
  ...l,
89
- slack: { ...l.slack, enabled: r, url: ((m = l.slack) == null ? void 0 : m.url) || "" }
89
+ slack: { ...l.slack, enabled: r, url: ((h = l.slack) == null ? void 0 : h.url) || "" }
90
90
  });
91
91
  },
92
92
  hint: "Send notifications to a Slack channel via webhook",
@@ -94,54 +94,54 @@ const o = ({
94
94
  }
95
95
  )
96
96
  ] }),
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,
97
+ ((R = l == null ? void 0 : l.slack) == null ? void 0 : R.enabled) && /* @__PURE__ */ u("div", { className: d.notificationSettings, children: [
98
+ !s && /* @__PURE__ */ e("div", { className: d.field, children: /* @__PURE__ */ e(
99
+ N,
100
100
  {
101
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 } }),
102
+ fieldValue: ((w = l == null ? void 0 : l.slack) == null ? void 0 : w.case) || "failure",
103
+ options: p,
104
+ onUpdate: (r) => a({ ...l, slack: { ...l.slack, case: r } }),
105
105
  inline: !0
106
106
  }
107
107
  ) }),
108
- /* @__PURE__ */ d("div", { className: e.field, children: /* @__PURE__ */ d(
109
- v,
108
+ /* @__PURE__ */ e("div", { className: d.field, children: /* @__PURE__ */ e(
109
+ m,
110
110
  {
111
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 } }),
112
+ fieldValue: ((z = l == null ? void 0 : l.slack) == null ? void 0 : z.url) || "",
113
+ onUpdate: (r) => a({ ...l, slack: { ...l.slack, url: r } }),
114
114
  placeholder: "https://hooks.slack.com/services/T00/B00/xxxx",
115
115
  required: !0,
116
116
  inline: !0,
117
117
  full: !0,
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
118
+ error: (B = l == null ? void 0 : l.slack) != null && B.enabled && !((C = l == null ? void 0 : l.slack) != null && C.url) ? "Required" : void 0
119
119
  }
120
120
  ) }),
121
- /* @__PURE__ */ d("div", { className: `${e.field} ${e.notificationTestField}`, children: /* @__PURE__ */ d(
122
- U,
121
+ /* @__PURE__ */ e("div", { className: `${d.field} ${d.notificationTestField}`, children: /* @__PURE__ */ e(
122
+ Q,
123
123
  {
124
- planId: p || "",
124
+ planId: k || "",
125
125
  notificationChannel: "slack",
126
126
  notificationSettings: l,
127
- notificationType: $
127
+ notificationType: V
128
128
  }
129
129
  ) })
130
130
  ] })
131
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,
132
+ /* @__PURE__ */ u("div", { className: d.notificationSettingsSection, children: [
133
+ /* @__PURE__ */ u("div", { className: `${d.field} ${d.notificationToggle}`, children: [
134
+ /* @__PURE__ */ e(v, { type: "discord", size: 14 }),
135
+ /* @__PURE__ */ e(
136
+ b,
137
137
  {
138
138
  label: "Send Discord Notifications",
139
- fieldValue: ((z = l == null ? void 0 : l.discord) == null ? void 0 : z.enabled) || !1,
139
+ fieldValue: ((F = l == null ? void 0 : l.discord) == null ? void 0 : F.enabled) || !1,
140
140
  onUpdate: (r) => {
141
- var m;
142
- return u({
141
+ var h;
142
+ return a({
143
143
  ...l,
144
- discord: { ...l.discord, enabled: r, url: ((m = l.discord) == null ? void 0 : m.url) || "" }
144
+ discord: { ...l.discord, enabled: r, url: ((h = l.discord) == null ? void 0 : h.url) || "" }
145
145
  });
146
146
  },
147
147
  hint: "Send notifications to a Discord channel via webhook",
@@ -149,44 +149,102 @@ const o = ({
149
149
  }
150
150
  )
151
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,
152
+ ((I = l == null ? void 0 : l.discord) == null ? void 0 : I.enabled) && /* @__PURE__ */ u("div", { className: d.notificationSettings, children: [
153
+ !s && /* @__PURE__ */ e("div", { className: d.field, children: /* @__PURE__ */ e(
154
+ N,
155
155
  {
156
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 } }),
157
+ fieldValue: ((L = l == null ? void 0 : l.discord) == null ? void 0 : L.case) || "failure",
158
+ options: p,
159
+ onUpdate: (r) => a({ ...l, discord: { ...l.discord, case: r } }),
160
160
  inline: !0
161
161
  }
162
162
  ) }),
163
- /* @__PURE__ */ d("div", { className: e.field, children: /* @__PURE__ */ d(
164
- v,
163
+ /* @__PURE__ */ e("div", { className: d.field, children: /* @__PURE__ */ e(
164
+ m,
165
165
  {
166
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 } }),
167
+ fieldValue: ((U = l == null ? void 0 : l.discord) == null ? void 0 : U.url) || "",
168
+ onUpdate: (r) => a({ ...l, discord: { ...l.discord, url: r } }),
169
169
  placeholder: "https://discord.com/api/webhooks/xxxx/xxxx",
170
170
  required: !0,
171
171
  inline: !0,
172
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
173
+ error: (j = l == null ? void 0 : l.discord) != null && j.enabled && !((D = l == null ? void 0 : l.discord) != null && D.url) ? "Required" : void 0
174
174
  }
175
175
  ) }),
176
- /* @__PURE__ */ d("div", { className: `${e.field} ${e.notificationTestField}`, children: /* @__PURE__ */ d(
177
- U,
176
+ /* @__PURE__ */ e("div", { className: `${d.field} ${d.notificationTestField}`, children: /* @__PURE__ */ e(
177
+ Q,
178
178
  {
179
- planId: p || "",
179
+ planId: k || "",
180
180
  notificationChannel: "discord",
181
- notificationType: $,
181
+ notificationType: V,
182
182
  notificationSettings: l
183
183
  }
184
184
  ) })
185
185
  ] })
186
+ ] }),
187
+ /* @__PURE__ */ u("div", { className: d.notificationSettingsSection, children: [
188
+ /* @__PURE__ */ u("div", { className: `${d.field} ${d.notificationToggle}`, children: [
189
+ /* @__PURE__ */ e(v, { type: "ntfy", size: 14 }),
190
+ /* @__PURE__ */ e(
191
+ b,
192
+ {
193
+ label: "Enable Ntfy Push Notifications",
194
+ fieldValue: ((A = l == null ? void 0 : l.push) == null ? void 0 : A.enabled) || !1,
195
+ onUpdate: (r) => a({ ...l, push: { ...l.push, enabled: r } }),
196
+ hint: "Send me Push Notifications on Backup failure or success.",
197
+ inline: !0
198
+ }
199
+ )
200
+ ] }),
201
+ ((W = l.push) == null ? void 0 : W.enabled) && (Y ? /* @__PURE__ */ u("div", { className: d.notificationSettings, children: [
202
+ !s && /* @__PURE__ */ e("div", { className: d.field, children: /* @__PURE__ */ e(
203
+ N,
204
+ {
205
+ label: "Send Notification On",
206
+ fieldValue: ((M = l == null ? void 0 : l.push) == null ? void 0 : M.case) || "failure",
207
+ options: p,
208
+ onUpdate: (r) => a({
209
+ ...l,
210
+ push: { ...l.push, case: r }
211
+ }),
212
+ inline: !0
213
+ }
214
+ ) }),
215
+ /* @__PURE__ */ e("div", { className: d.field, children: /* @__PURE__ */ e(
216
+ m,
217
+ {
218
+ label: "Ntfy Push URL",
219
+ fieldValue: ((G = l == null ? void 0 : l.push) == null ? void 0 : G.url) || "",
220
+ onUpdate: (r) => a({ ...l, push: { ...l.push, url: r } }),
221
+ placeholder: "https://ntfy.sh/mytopic",
222
+ inline: !0,
223
+ required: !0,
224
+ full: !0,
225
+ error: (H = l == null ? void 0 : l.push) != null && H.url ? void 0 : "Required"
226
+ }
227
+ ) }),
228
+ /* @__PURE__ */ e("div", { className: d.field, children: /* @__PURE__ */ e(
229
+ m,
230
+ {
231
+ label: "Tags",
232
+ fieldValue: ((J = l == null ? void 0 : l.push) == null ? void 0 : J.tags) || "",
233
+ onUpdate: (r) => a({ ...l, push: { ...l.push, tags: r } }),
234
+ placeholder: "warning, daily-backup",
235
+ inline: !0,
236
+ full: !0
237
+ }
238
+ ) })
239
+ ] }) : /* @__PURE__ */ e("div", { className: d.notificationSettings, children: /* @__PURE__ */ u("div", { className: d.fieldNotice, children: [
240
+ "⚠️ Ntfy Auth Token is not configured. Set it up in ",
241
+ /* @__PURE__ */ e(K, { to: "/settings?t=integration", children: "Settings" }),
242
+ " to enable Ntfy Push Notifications."
243
+ ] }) }))
186
244
  ] })
187
245
  ] });
188
246
  };
189
247
  export {
190
- o as default
248
+ el as default
191
249
  };
192
250
  //# 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 { 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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"}
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 const hasNtfyConnected = types.includes('ntfy');\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 {/* Ntfy Push Notification */}\r\n <div className={classes.notificationSettingsSection}>\r\n <div className={`${classes.field} ${classes.notificationToggle}`}>\r\n <Icon type=\"ntfy\" size={14} />\r\n <Toggle\r\n label=\"Enable Ntfy Push Notifications\"\r\n fieldValue={notificationSettings?.push?.enabled || false}\r\n onUpdate={(val: boolean) => onUpdate({ ...notificationSettings, push: { ...notificationSettings.push, enabled: val } })}\r\n hint={`Send me Push Notifications on Backup failure or success.`}\r\n inline={true}\r\n />\r\n </div>\r\n {notificationSettings.push?.enabled &&\r\n (hasNtfyConnected ? (\r\n <div className={classes.notificationSettings}>\r\n {!isSync && (\r\n <div className={classes.field}>\r\n <Select\r\n label=\"Send Notification On\"\r\n fieldValue={notificationSettings?.push?.case || 'failure'}\r\n options={caseOptions}\r\n onUpdate={(val: string) =>\r\n onUpdate({\r\n ...notificationSettings,\r\n push: { ...notificationSettings.push, case: val as PlanNotification['push']['case'] },\r\n })\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=\"Ntfy Push URL\"\r\n fieldValue={notificationSettings?.push?.url || ''}\r\n onUpdate={(val) => onUpdate({ ...notificationSettings, push: { ...notificationSettings.push, url: val } })}\r\n placeholder=\"https://ntfy.sh/mytopic\"\r\n inline={true}\r\n required={true}\r\n full={true}\r\n error={!notificationSettings?.push?.url ? 'Required' : undefined}\r\n />\r\n </div>\r\n <div className={classes.field}>\r\n <Input\r\n label=\"Tags\"\r\n fieldValue={notificationSettings?.push?.tags || ''}\r\n onUpdate={(val) => onUpdate({ ...notificationSettings, push: { ...notificationSettings.push, tags: val } })}\r\n placeholder=\"warning, daily-backup\"\r\n inline={true}\r\n full={true}\r\n />\r\n </div>\r\n </div>\r\n ) : (\r\n <div className={classes.notificationSettings}>\r\n <div className={classes.fieldNotice}>\r\n ⚠️ Ntfy Auth Token is not configured. Set it up in <NavLink to={`/settings?t=integration`}>Settings</NavLink> to enable Ntfy\r\n Push Notifications.\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","hasNtfyConnected","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","_r","_s","_t","_u","_v","_w"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IntegrationSettings.d.ts","sourceRoot":"","sources":["../../../../src/components/Settings/IntegrationSettings/IntegrationSettings.tsx"],"names":[],"mappings":"AAOA,UAAU,wBAAwB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;CACrE;AAED,QAAA,MAAM,mBAAmB,GAAI,oCAAoC,wBAAwB,4CAqDxF,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"IntegrationSettings.d.ts","sourceRoot":"","sources":["../../../../src/components/Settings/IntegrationSettings/IntegrationSettings.tsx"],"names":[],"mappings":"AAQA,UAAU,wBAAwB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;CACrE;AAED,QAAA,MAAM,mBAAmB,GAAI,oCAAoC,wBAAwB,4CAuDxF,CAAC;AAEF,eAAe,mBAAmB,CAAC"}