@webiny/app-mailer 0.0.0-unstable.fcdad0bc61 → 0.0.0-unstable.fdd9228b5d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,26 +1,17 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.usePermission = void 0;
7
-
8
- var _appSecurity = require("@webiny/app-security");
9
-
10
- var _react = require("react");
11
-
12
- var usePermission = function usePermission() {
13
- var _useSecurity = (0, _appSecurity.useSecurity)(),
14
- identity = _useSecurity.identity,
15
- getPermission = _useSecurity.getPermission;
16
-
17
- var canChangeSettings = (0, _react.useCallback)(function () {
18
- var permission = getPermission("mailer.settings");
1
+ import { useSecurity } from "@webiny/app-security";
2
+ import { useCallback } from "react";
3
+ export const usePermission = () => {
4
+ const {
5
+ identity,
6
+ getPermission
7
+ } = useSecurity();
8
+ const canChangeSettings = useCallback(() => {
9
+ const permission = getPermission("mailer.settings");
19
10
  return !!permission;
20
11
  }, [identity]);
21
12
  return {
22
- canChangeSettings: canChangeSettings
13
+ canChangeSettings
23
14
  };
24
15
  };
25
16
 
26
- exports.usePermission = usePermission;
17
+ //# sourceMappingURL=usePermission.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["usePermission","useSecurity","identity","getPermission","canChangeSettings","useCallback","permission"],"sources":["usePermission.ts"],"sourcesContent":["import { useSecurity } from \"@webiny/app-security\";\nimport { useCallback } from \"react\";\nimport { MailerSecurityPermission } from \"~/types\";\n\nexport const usePermission = () => {\n const { identity, getPermission } = useSecurity();\n\n const canChangeSettings = useCallback((): boolean => {\n const permission = getPermission<MailerSecurityPermission>(\"mailer.settings\");\n return !!permission;\n }, [identity]);\n\n return {\n canChangeSettings\n };\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;AAGO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,GAAM;EAC/B,mBAAoC,IAAAC,wBAAA,GAApC;EAAA,IAAQC,QAAR,gBAAQA,QAAR;EAAA,IAAkBC,aAAlB,gBAAkBA,aAAlB;;EAEA,IAAMC,iBAAiB,GAAG,IAAAC,kBAAA,EAAY,YAAe;IACjD,IAAMC,UAAU,GAAGH,aAAa,CAA2B,iBAA3B,CAAhC;IACA,OAAO,CAAC,CAACG,UAAT;EACH,CAHyB,EAGvB,CAACJ,QAAD,CAHuB,CAA1B;EAKA,OAAO;IACHE,iBAAiB,EAAjBA;EADG,CAAP;AAGH,CAXM"}
1
+ {"version":3,"names":["useSecurity","useCallback","usePermission","identity","getPermission","canChangeSettings","permission"],"sources":["usePermission.ts"],"sourcesContent":["import { useSecurity } from \"@webiny/app-security\";\nimport { useCallback } from \"react\";\nimport type { MailerSecurityPermission } from \"~/types\";\n\nexport const usePermission = () => {\n const { identity, getPermission } = useSecurity();\n\n const canChangeSettings = useCallback((): boolean => {\n const permission = getPermission<MailerSecurityPermission>(\"mailer.settings\");\n return !!permission;\n }, [identity]);\n\n return {\n canChangeSettings\n };\n};\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,sBAAsB;AAClD,SAASC,WAAW,QAAQ,OAAO;AAGnC,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EAC/B,MAAM;IAAEC,QAAQ;IAAEC;EAAc,CAAC,GAAGJ,WAAW,CAAC,CAAC;EAEjD,MAAMK,iBAAiB,GAAGJ,WAAW,CAAC,MAAe;IACjD,MAAMK,UAAU,GAAGF,aAAa,CAA2B,iBAAiB,CAAC;IAC7E,OAAO,CAAC,CAACE,UAAU;EACvB,CAAC,EAAE,CAACH,QAAQ,CAAC,CAAC;EAEd,OAAO;IACHE;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
package/index.js CHANGED
@@ -1,13 +1,4 @@
1
- "use strict";
1
+ import { Module } from "./plugins/Module";
2
+ export { Module };
2
3
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "Module", {
7
- enumerable: true,
8
- get: function get() {
9
- return _Module.Module;
10
- }
11
- });
12
-
13
- var _Module = require("./plugins/Module");
4
+ //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["import { Module } from \"~/plugins/Module\";\n\nexport { Module };\n"],"mappings":";;;;;;;;;;;;AAAA"}
1
+ {"version":3,"names":["Module"],"sources":["index.tsx"],"sourcesContent":["import { Module } from \"~/plugins/Module\";\n\nexport { Module };\n"],"mappings":"AAAA,SAASA,MAAM;AAEf,SAASA,MAAM","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-mailer",
3
- "version": "0.0.0-unstable.fcdad0bc61",
3
+ "version": "0.0.0-unstable.fdd9228b5d",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,50 +10,42 @@
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@apollo/react-components": "3.1.5",
13
- "@babel/runtime": "7.19.0",
14
- "@emotion/core": "10.3.1",
15
- "@webiny/app-admin": "0.0.0-unstable.fcdad0bc61",
16
- "@webiny/app-security": "0.0.0-unstable.fcdad0bc61",
17
- "@webiny/form": "0.0.0-unstable.fcdad0bc61",
18
- "@webiny/ui": "0.0.0-unstable.fcdad0bc61",
19
- "@webiny/validation": "0.0.0-unstable.fcdad0bc61",
13
+ "@webiny/admin-ui": "0.0.0-unstable.fdd9228b5d",
14
+ "@webiny/app-admin": "0.0.0-unstable.fdd9228b5d",
15
+ "@webiny/app-security": "0.0.0-unstable.fdd9228b5d",
16
+ "@webiny/form": "0.0.0-unstable.fdd9228b5d",
17
+ "@webiny/ui": "0.0.0-unstable.fdd9228b5d",
18
+ "@webiny/validation": "0.0.0-unstable.fdd9228b5d",
20
19
  "apollo-cache": "1.3.5",
21
20
  "apollo-client": "2.6.10",
22
21
  "apollo-link": "1.2.14",
23
22
  "apollo-utilities": "1.3.4",
24
- "graphql": "15.8.0",
23
+ "dot-prop-immutable": "2.1.1",
24
+ "graphql": "15.9.0",
25
25
  "graphql-tag": "2.12.6",
26
26
  "prop-types": "15.8.1",
27
- "react": "17.0.2",
28
- "react-dom": "17.0.2",
27
+ "react": "18.2.0",
28
+ "react-dom": "18.2.0",
29
29
  "react-helmet": "6.1.0"
30
30
  },
31
31
  "devDependencies": {
32
- "@babel/cli": "^7.19.3",
33
- "@babel/core": "^7.19.3",
34
- "@babel/preset-env": "^7.19.4",
35
- "@babel/preset-react": "^7.0.0",
36
- "@babel/preset-typescript": "^7.18.6",
37
- "@types/react": "17.0.39",
38
- "@webiny/cli": "^0.0.0-unstable.fcdad0bc61",
39
- "@webiny/project-utils": "^0.0.0-unstable.fcdad0bc61",
40
- "babel-plugin-emotion": "^9.2.8",
41
- "rimraf": "^3.0.2",
42
- "ttypescript": "^1.5.12",
43
- "typescript": "4.7.4"
32
+ "@types/react": "18.2.79",
33
+ "@webiny/project-utils": "0.0.0-unstable.fdd9228b5d",
34
+ "rimraf": "6.0.1",
35
+ "typescript": "5.3.3"
44
36
  },
45
37
  "publishConfig": {
46
38
  "access": "public",
47
39
  "directory": "dist"
48
40
  },
49
41
  "scripts": {
50
- "build": "yarn webiny run build",
51
- "watch": "yarn webiny run watch"
42
+ "build": "node ../cli/bin.js run build",
43
+ "watch": "node ../cli/bin.js run watch"
52
44
  },
53
45
  "svgo": {
54
46
  "plugins": {
55
47
  "removeViewBox": false
56
48
  }
57
49
  },
58
- "gitHead": "40d639c3665e384a5e2d26674d43ce26f3295e8c"
50
+ "gitHead": "fdd9228b5d2636463e8a34b6e0d26eea1e29c01d"
59
51
  }
@@ -1,2 +1,2 @@
1
1
  import React from "react";
2
- export declare const Module: React.FC;
2
+ export declare const Module: () => React.JSX.Element;
package/plugins/Module.js CHANGED
@@ -1,77 +1,54 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- var _interopRequireWildcard3 = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.Module = void 0;
11
-
12
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
- var _interopRequireWildcard2 = _interopRequireDefault(require("@babel/runtime/helpers/interopRequireWildcard"));
15
-
16
- var _react = _interopRequireWildcard3(require("react"));
17
-
18
- var _appAdmin = require("@webiny/app-admin");
19
-
20
- var _appSecurity = require("@webiny/app-security");
21
-
22
- var _AdminLayout = require("@webiny/app-admin/components/AdminLayout");
23
-
24
- var _reactHelmet = _interopRequireDefault(require("react-helmet"));
25
-
26
- var _usePermission2 = require("../hooks/usePermission");
27
-
28
- var _Progress = require("@webiny/ui/Progress");
29
-
30
- var _excluded = ["children"];
31
- var Settings = /*#__PURE__*/(0, _react.lazy)(function () {
32
- return Promise.resolve().then(function () {
33
- return (0, _interopRequireWildcard2.default)(require("../views/settings"));
34
- });
35
- });
36
-
37
- var Loader = function Loader(_ref) {
38
- var children = _ref.children,
39
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
40
- return /*#__PURE__*/_react.default.createElement(_react.Suspense, {
41
- fallback: /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, null)
42
- }, /*#__PURE__*/_react.default.cloneElement(children, props));
43
- };
44
-
45
- var Module = function Module() {
46
- var _usePermission = (0, _usePermission2.usePermission)(),
47
- canChangeSettings = _usePermission.canChangeSettings;
48
-
49
- var changeSettings = canChangeSettings();
50
-
1
+ import React, { lazy, Suspense } from "react";
2
+ import { AdminConfig, Plugins, Layout } from "@webiny/app-admin";
3
+ import { HasPermission } from "@webiny/app-security";
4
+ import Helmet from "react-helmet";
5
+ import { usePermission } from "../hooks/usePermission";
6
+ import { CircularProgress } from "@webiny/ui/Progress";
7
+ const {
8
+ Menu,
9
+ Route
10
+ } = AdminConfig;
11
+ const Settings = /*#__PURE__*/lazy(() => import(/* webpackChunkName: "MailerModuleSettings" */"../views/settings"));
12
+ const Loader = ({
13
+ children,
14
+ ...props
15
+ }) => /*#__PURE__*/React.createElement(Suspense, {
16
+ fallback: /*#__PURE__*/React.createElement(CircularProgress, null)
17
+ }, /*#__PURE__*/React.cloneElement(children, props));
18
+ const MailerSettings = () => {
19
+ const {
20
+ canChangeSettings
21
+ } = usePermission();
22
+ const changeSettings = canChangeSettings();
51
23
  if (!changeSettings) {
52
24
  return null;
53
25
  }
54
-
55
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
56
- name: "settings"
57
- }, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
58
- name: "settings.mailer",
59
- label: "Mailer"
60
- }, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
61
- name: "settings.mailer.settings",
62
- label: "Settings",
63
- path: "/mailer/settings"
64
- }))), /*#__PURE__*/_react.default.createElement(_appAdmin.AddRoute, {
26
+ return /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(HasPermission, {
27
+ name: "mailer.settings"
28
+ }, /*#__PURE__*/React.createElement(Route, {
29
+ name: "mailer.settings",
65
30
  exact: true,
66
31
  path: "/mailer/settings",
67
- render: function render() {
68
- return /*#__PURE__*/_react.default.createElement(_appSecurity.SecureRoute, {
69
- permission: "mailer.settings"
70
- }, /*#__PURE__*/_react.default.createElement(_AdminLayout.AdminLayout, null, /*#__PURE__*/_react.default.createElement(_reactHelmet.default, {
71
- title: "Mailer - Settings"
72
- }), /*#__PURE__*/_react.default.createElement(Loader, null, /*#__PURE__*/_react.default.createElement(Settings, null))));
73
- }
74
- }));
32
+ element: /*#__PURE__*/React.createElement(Layout, null, /*#__PURE__*/React.createElement(Helmet, {
33
+ title: "Mailer - Settings"
34
+ }), /*#__PURE__*/React.createElement(Loader, null, /*#__PURE__*/React.createElement(Settings, null)))
35
+ }), /*#__PURE__*/React.createElement(Menu, {
36
+ name: "mailer.settings",
37
+ parent: "settings",
38
+ element: /*#__PURE__*/React.createElement(Menu.Group, {
39
+ text: "Mailer"
40
+ })
41
+ }), /*#__PURE__*/React.createElement(Menu, {
42
+ name: "mailer.settings.general",
43
+ parent: "settings",
44
+ element: /*#__PURE__*/React.createElement(Menu.Link, {
45
+ text: "Settings",
46
+ to: "/mailer/settings"
47
+ })
48
+ })));
49
+ };
50
+ export const Module = () => {
51
+ return /*#__PURE__*/React.createElement(Plugins, null, /*#__PURE__*/React.createElement(MailerSettings, null));
75
52
  };
76
53
 
77
- exports.Module = Module;
54
+ //# sourceMappingURL=Module.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Settings","lazy","Loader","children","props","React","cloneElement","Module","usePermission","canChangeSettings","changeSettings"],"sources":["Module.tsx"],"sourcesContent":["import React, { lazy, Suspense } from \"react\";\nimport { AddMenu as Menu, AddRoute } from \"@webiny/app-admin\";\nimport { SecureRoute } from \"@webiny/app-security\";\nimport { AdminLayout } from \"@webiny/app-admin/components/AdminLayout\";\nimport Helmet from \"react-helmet\";\nimport { usePermission } from \"~/hooks/usePermission\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\n\nconst Settings = lazy(() => import(\"~/views/settings\"));\n\ninterface LoaderProps {\n children: React.ReactElement;\n}\nconst Loader: React.FC<LoaderProps> = ({ children, ...props }) => (\n <Suspense fallback={<CircularProgress />}>{React.cloneElement(children, props)}</Suspense>\n);\n\nexport const Module: React.FC = () => {\n const { canChangeSettings } = usePermission();\n\n const changeSettings = canChangeSettings();\n\n if (!changeSettings) {\n return null;\n }\n\n return (\n <>\n <Menu name={\"settings\"}>\n <Menu name={\"settings.mailer\"} label={\"Mailer\"}>\n <Menu\n name={\"settings.mailer.settings\"}\n label={\"Settings\"}\n path={\"/mailer/settings\"}\n />\n </Menu>\n </Menu>\n <AddRoute\n exact\n path={\"/mailer/settings\"}\n render={() => (\n <SecureRoute permission={\"mailer.settings\"}>\n <AdminLayout>\n <Helmet title={\"Mailer - Settings\"} />\n <Loader>\n <Settings />\n </Loader>\n </AdminLayout>\n </SecureRoute>\n )}\n />\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;AAEA,IAAMA,QAAQ,gBAAG,IAAAC,WAAA,EAAK;EAAA;IAAA;EAAA;AAAA,CAAL,CAAjB;;AAKA,IAAMC,MAA6B,GAAG,SAAhCA,MAAgC;EAAA,IAAGC,QAAH,QAAGA,QAAH;EAAA,IAAgBC,KAAhB;EAAA,oBAClC,6BAAC,eAAD;IAAU,QAAQ,eAAE,6BAAC,0BAAD;EAApB,gBAA2CC,cAAA,CAAMC,YAAN,CAAmBH,QAAnB,EAA6BC,KAA7B,CAA3C,CADkC;AAAA,CAAtC;;AAIO,IAAMG,MAAgB,GAAG,SAAnBA,MAAmB,GAAM;EAClC,qBAA8B,IAAAC,6BAAA,GAA9B;EAAA,IAAQC,iBAAR,kBAAQA,iBAAR;;EAEA,IAAMC,cAAc,GAAGD,iBAAiB,EAAxC;;EAEA,IAAI,CAACC,cAAL,EAAqB;IACjB,OAAO,IAAP;EACH;;EAED,oBACI,yEACI,6BAAC,iBAAD;IAAM,IAAI,EAAE;EAAZ,gBACI,6BAAC,iBAAD;IAAM,IAAI,EAAE,iBAAZ;IAA+B,KAAK,EAAE;EAAtC,gBACI,6BAAC,iBAAD;IACI,IAAI,EAAE,0BADV;IAEI,KAAK,EAAE,UAFX;IAGI,IAAI,EAAE;EAHV,EADJ,CADJ,CADJ,eAUI,6BAAC,kBAAD;IACI,KAAK,MADT;IAEI,IAAI,EAAE,kBAFV;IAGI,MAAM,EAAE;MAAA,oBACJ,6BAAC,wBAAD;QAAa,UAAU,EAAE;MAAzB,gBACI,6BAAC,wBAAD,qBACI,6BAAC,oBAAD;QAAQ,KAAK,EAAE;MAAf,EADJ,eAEI,6BAAC,MAAD,qBACI,6BAAC,QAAD,OADJ,CAFJ,CADJ,CADI;IAAA;EAHZ,EAVJ,CADJ;AA2BH,CApCM"}
1
+ {"version":3,"names":["React","lazy","Suspense","AdminConfig","Plugins","Layout","HasPermission","Helmet","usePermission","CircularProgress","Menu","Route","Settings","Loader","children","props","createElement","fallback","cloneElement","MailerSettings","canChangeSettings","changeSettings","name","exact","path","element","title","parent","Group","text","Link","to","Module"],"sources":["Module.tsx"],"sourcesContent":["import React, { lazy, Suspense } from \"react\";\nimport { AdminConfig, Plugins, Layout } from \"@webiny/app-admin\";\nimport { HasPermission } from \"@webiny/app-security\";\nimport Helmet from \"react-helmet\";\nimport { usePermission } from \"~/hooks/usePermission\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\n\nconst { Menu, Route } = AdminConfig;\n\nconst Settings = lazy(\n () =>\n import(\n /* webpackChunkName: \"MailerModuleSettings\" */\n \"~/views/settings\"\n )\n);\n\ninterface LoaderProps {\n children: React.ReactElement;\n}\n\nconst Loader = ({ children, ...props }: LoaderProps) => (\n <Suspense fallback={<CircularProgress />}>{React.cloneElement(children, props)}</Suspense>\n);\n\nconst MailerSettings = () => {\n const { canChangeSettings } = usePermission();\n\n const changeSettings = canChangeSettings();\n\n if (!changeSettings) {\n return null;\n }\n\n return (\n <AdminConfig>\n <HasPermission name={\"mailer.settings\"}>\n <Route\n name={\"mailer.settings\"}\n exact\n path={\"/mailer/settings\"}\n element={\n <Layout>\n <Helmet title={\"Mailer - Settings\"} />\n <Loader>\n <Settings />\n </Loader>\n </Layout>\n }\n />\n <Menu\n name={\"mailer.settings\"}\n parent={\"settings\"}\n element={<Menu.Group text={\"Mailer\"} />}\n />\n <Menu\n name={\"mailer.settings.general\"}\n parent={\"settings\"}\n element={<Menu.Link text={\"Settings\"} to={\"/mailer/settings\"} />}\n />\n </HasPermission>\n </AdminConfig>\n );\n};\n\nexport const Module = () => {\n return (\n <Plugins>\n <MailerSettings />\n </Plugins>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,QAAQ,QAAQ,OAAO;AAC7C,SAASC,WAAW,EAAEC,OAAO,EAAEC,MAAM,QAAQ,mBAAmB;AAChE,SAASC,aAAa,QAAQ,sBAAsB;AACpD,OAAOC,MAAM,MAAM,cAAc;AACjC,SAASC,aAAa;AACtB,SAASC,gBAAgB,QAAQ,qBAAqB;AAEtD,MAAM;EAAEC,IAAI;EAAEC;AAAM,CAAC,GAAGR,WAAW;AAEnC,MAAMS,QAAQ,gBAAGX,IAAI,CACjB,MACI,MAAM,CACF,iEAEJ,CACR,CAAC;AAMD,MAAMY,MAAM,GAAGA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAmB,CAAC,kBAC/Cf,KAAA,CAAAgB,aAAA,CAACd,QAAQ;EAACe,QAAQ,eAAEjB,KAAA,CAAAgB,aAAA,CAACP,gBAAgB,MAAE;AAAE,gBAAET,KAAK,CAACkB,YAAY,CAACJ,QAAQ,EAAEC,KAAK,CAAY,CAC5F;AAED,MAAMI,cAAc,GAAGA,CAAA,KAAM;EACzB,MAAM;IAAEC;EAAkB,CAAC,GAAGZ,aAAa,CAAC,CAAC;EAE7C,MAAMa,cAAc,GAAGD,iBAAiB,CAAC,CAAC;EAE1C,IAAI,CAACC,cAAc,EAAE;IACjB,OAAO,IAAI;EACf;EAEA,oBACIrB,KAAA,CAAAgB,aAAA,CAACb,WAAW,qBACRH,KAAA,CAAAgB,aAAA,CAACV,aAAa;IAACgB,IAAI,EAAE;EAAkB,gBACnCtB,KAAA,CAAAgB,aAAA,CAACL,KAAK;IACFW,IAAI,EAAE,iBAAkB;IACxBC,KAAK;IACLC,IAAI,EAAE,kBAAmB;IACzBC,OAAO,eACHzB,KAAA,CAAAgB,aAAA,CAACX,MAAM,qBACHL,KAAA,CAAAgB,aAAA,CAACT,MAAM;MAACmB,KAAK,EAAE;IAAoB,CAAE,CAAC,eACtC1B,KAAA,CAAAgB,aAAA,CAACH,MAAM,qBACHb,KAAA,CAAAgB,aAAA,CAACJ,QAAQ,MAAE,CACP,CACJ;EACX,CACJ,CAAC,eACFZ,KAAA,CAAAgB,aAAA,CAACN,IAAI;IACDY,IAAI,EAAE,iBAAkB;IACxBK,MAAM,EAAE,UAAW;IACnBF,OAAO,eAAEzB,KAAA,CAAAgB,aAAA,CAACN,IAAI,CAACkB,KAAK;MAACC,IAAI,EAAE;IAAS,CAAE;EAAE,CAC3C,CAAC,eACF7B,KAAA,CAAAgB,aAAA,CAACN,IAAI;IACDY,IAAI,EAAE,yBAA0B;IAChCK,MAAM,EAAE,UAAW;IACnBF,OAAO,eAAEzB,KAAA,CAAAgB,aAAA,CAACN,IAAI,CAACoB,IAAI;MAACD,IAAI,EAAE,UAAW;MAACE,EAAE,EAAE;IAAmB,CAAE;EAAE,CACpE,CACU,CACN,CAAC;AAEtB,CAAC;AAED,OAAO,MAAMC,MAAM,GAAGA,CAAA,KAAM;EACxB,oBACIhC,KAAA,CAAAgB,aAAA,CAACZ,OAAO,qBACJJ,KAAA,CAAAgB,aAAA,CAACG,cAAc,MAAE,CACZ,CAAC;AAElB,CAAC","ignoreList":[]}
package/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { SecurityPermission } from "@webiny/app-security/types";
1
+ import type { SecurityPermission } from "@webiny/app-security/types";
2
2
  /**
3
3
  * A base security permission for APW.
4
4
  *
package/types.js CHANGED
@@ -1,5 +1,3 @@
1
- "use strict";
1
+ export {};
2
2
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
3
+ //# sourceMappingURL=types.js.map
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { SecurityPermission } from \"@webiny/app-security/types\";\n\n/**\n * A base security permission for APW.\n *\n * @category SecurityPermission\n */\nexport interface MailerSecurityPermission extends SecurityPermission {\n changeSettings?: boolean;\n}\n\n/**\n * GraphQL API call response for the transport settings values\n * @category GraphQL\n */\nexport interface TransportSettings {\n host: string;\n user: string;\n from: string;\n replyTo?: string;\n password?: string;\n}\n/**\n *\n * @category GraphQL\n */\nexport interface ApiError<T = Record<string, any>> {\n message: string;\n code: string;\n data: T;\n}\n\n/**\n * Description of the JOI validation errors received from the API.\n *\n * @category GraphQL\n */\nexport interface ValidationError {\n message: string;\n path: string[];\n}\n\nexport interface ValidationErrors {\n errors: ValidationError[];\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { SecurityPermission } from \"@webiny/app-security/types\";\n\n/**\n * A base security permission for APW.\n *\n * @category SecurityPermission\n */\nexport interface MailerSecurityPermission extends SecurityPermission {\n changeSettings?: boolean;\n}\n\n/**\n * GraphQL API call response for the transport settings values\n * @category GraphQL\n */\nexport interface TransportSettings {\n host: string;\n user: string;\n from: string;\n replyTo?: string;\n password?: string;\n}\n/**\n *\n * @category GraphQL\n */\nexport interface ApiError<T = Record<string, any>> {\n message: string;\n code: string;\n data: T;\n}\n\n/**\n * Description of the JOI validation errors received from the API.\n *\n * @category GraphQL\n */\nexport interface ValidationError {\n message: string;\n path: string[];\n}\n\nexport interface ValidationErrors {\n errors: ValidationError[];\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import React from "react";
2
- export declare const Settings: React.FC;
2
+ export declare const Settings: () => React.JSX.Element;
@@ -1,252 +1,184 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.Settings = void 0;
11
-
12
- var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
13
-
14
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
15
-
16
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
-
20
- var _react = _interopRequireWildcard(require("react"));
21
-
22
- var _appAdmin = require("@webiny/app-admin");
23
-
24
- var _reactComponents = require("@apollo/react-components");
25
-
26
- var _form = require("@webiny/form");
27
-
28
- var _SimpleForm = require("@webiny/app-admin/components/SimpleForm");
29
-
30
- var _Progress = require("@webiny/ui/Progress");
31
-
32
- var _Grid = require("@webiny/ui/Grid");
33
-
34
- var _Input = require("@webiny/ui/Input");
35
-
36
- var _validation = require("@webiny/validation");
37
-
38
- var _Button = require("@webiny/ui/Button");
39
-
40
- var _graphql = require("./graphql");
41
-
42
- var _Alert = require("@webiny/ui/Alert");
43
-
44
- var displayErrors = function displayErrors(errors) {
1
+ import React, { useEffect, useRef, useState } from "react";
2
+ import { CenteredView, useSnackbar } from "@webiny/app-admin";
3
+ import { Mutation, Query } from "@apollo/react-components";
4
+ import { Form } from "@webiny/form";
5
+ import { SimpleForm, SimpleFormContent, SimpleFormFooter, SimpleFormHeader } from "@webiny/app-admin/components/SimpleForm";
6
+ import { validation } from "@webiny/validation";
7
+ import { GET_SETTINGS_QUERY, SAVE_SETTINGS_MUTATION } from "./graphql";
8
+ import dotPropImmutable from "dot-prop-immutable";
9
+ import { Alert, Button, Grid, Input, OverlayLoader } from "@webiny/admin-ui";
10
+ const displayErrors = errors => {
45
11
  if (!errors) {
46
12
  return null;
47
13
  }
48
-
49
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, errors.map(function (error) {
50
- var field = error.path[0];
51
-
14
+ return /*#__PURE__*/React.createElement(React.Fragment, null, errors.map(error => {
15
+ const field = error.path[0];
52
16
  if (!field) {
53
17
  return null;
54
18
  }
55
-
56
- return /*#__PURE__*/_react.default.createElement(_Alert.Alert, {
57
- key: "".concat(field),
58
- title: error.message,
19
+ return /*#__PURE__*/React.createElement(Alert, {
20
+ key: `${field}`,
21
+ title: "Error",
59
22
  type: "danger"
60
- });
23
+ }, error.message, "ssss");
61
24
  }));
62
25
  };
63
-
64
- var Settings = function Settings() {
65
- var _useSnackbar = (0, _appAdmin.useSnackbar)(),
66
- showSnackbar = _useSnackbar.showSnackbar;
67
-
68
- var password = (0, _react.useRef)();
69
-
70
- var _useState = (0, _react.useState)(),
71
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
72
- errors = _useState2[0],
73
- setErrors = _useState2[1];
74
-
75
- (0, _react.useEffect)(function () {
76
- var t = setTimeout(function () {
26
+ export const Settings = () => {
27
+ const {
28
+ showSnackbar
29
+ } = useSnackbar();
30
+ const password = useRef();
31
+ const [errors, setErrors] = useState();
32
+ useEffect(() => {
33
+ const t = setTimeout(() => {
77
34
  if (!password.current) {
78
35
  return;
79
36
  }
80
-
81
37
  password.current.value = "";
82
38
  }, 300);
83
- return function () {
39
+ return () => {
84
40
  clearTimeout(t);
85
41
  };
86
42
  }, []);
87
- return /*#__PURE__*/_react.default.createElement(_reactComponents.Query, {
88
- query: _graphql.GET_SETTINGS_QUERY
89
- }, function (_ref) {
90
- var response = _ref.data,
91
- queryInProgress = _ref.loading;
92
- return /*#__PURE__*/_react.default.createElement(_reactComponents.Mutation, {
93
- mutation: _graphql.SAVE_SETTINGS_MUTATION
94
- }, function (update, result) {
95
- var _ref2 = (response === null || response === void 0 ? void 0 : response.mailer.settings) || {},
96
- settingsData = _ref2.data,
97
- settingsError = _ref2.error;
98
-
99
- var mutationInProgress = result.loading;
100
-
101
- var _onSubmit = /*#__PURE__*/function () {
102
- var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(data) {
103
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
104
- while (1) {
105
- switch (_context.prev = _context.next) {
106
- case 0:
107
- setErrors([]);
108
- _context.next = 3;
109
- return update({
110
- variables: {
111
- data: data
112
- },
113
- update: function update(cache, result) {
114
- var _result$data;
115
-
116
- var data = structuredClone(cache.readQuery({
117
- query: _graphql.GET_SETTINGS_QUERY
118
- }));
119
-
120
- var _ref4 = ((_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.mailer.settings) || {},
121
- updateData = _ref4.data,
122
- updateError = _ref4.error;
123
-
124
- var errors = updateError === null || updateError === void 0 ? void 0 : updateError.data.errors;
125
-
126
- if (errors) {
127
- setErrors(errors);
128
- showSnackbar("Settings not updated! Please check your network and console logs for detailed information.");
129
- return;
130
- }
131
-
132
- data.mailer.settings.data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, settingsData), updateData);
133
- cache.writeQuery({
134
- query: _graphql.GET_SETTINGS_QUERY,
135
- data: data
136
- });
137
- showSnackbar("Settings updated successfully.");
138
- }
139
- });
140
-
141
- case 3:
142
- case "end":
143
- return _context.stop();
144
- }
145
- }
146
- }, _callee);
147
- }));
148
-
149
- return function onSubmit(_x) {
150
- return _ref3.apply(this, arguments);
151
- };
152
- }();
153
-
154
- if (settingsError) {
155
- var _settingsError$data;
156
-
157
- return /*#__PURE__*/_react.default.createElement(_appAdmin.CenteredView, null, /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormHeader, {
158
- title: "Mailer Settings"
159
- }), /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
160
- style: {
161
- backgroundColor: "#FFFFFF"
43
+ return /*#__PURE__*/React.createElement(Query, {
44
+ query: GET_SETTINGS_QUERY
45
+ }, ({
46
+ data: response,
47
+ loading: queryInProgress
48
+ }) => /*#__PURE__*/React.createElement(Mutation, {
49
+ mutation: SAVE_SETTINGS_MUTATION
50
+ }, (update, result) => {
51
+ const {
52
+ data: settingsData,
53
+ error: settingsError
54
+ } = response?.mailer.settings || {};
55
+ const {
56
+ loading: mutationInProgress
57
+ } = result;
58
+ const onSubmit = async data => {
59
+ setErrors([]);
60
+ await update({
61
+ variables: {
62
+ data
63
+ },
64
+ update: (cache, result) => {
65
+ const data = structuredClone(cache.readQuery({
66
+ query: GET_SETTINGS_QUERY
67
+ }));
68
+ const {
69
+ data: updateData,
70
+ error: updateError
71
+ } = result.data?.mailer.settings || {};
72
+ const errors = updateError?.data.errors;
73
+ if (errors) {
74
+ setErrors(errors);
75
+ showSnackbar("Settings not updated! Please check your network and console logs for detailed information.");
76
+ return;
162
77
  }
163
- }, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
164
- span: 12
165
- }, /*#__PURE__*/_react.default.createElement(_Alert.Alert, {
166
- title: settingsError.message,
167
- type: "danger"
168
- }), ((_settingsError$data = settingsError.data) === null || _settingsError$data === void 0 ? void 0 : _settingsError$data.description) && /*#__PURE__*/_react.default.createElement("p", null, settingsError.data.description))));
78
+ cache.writeQuery({
79
+ query: GET_SETTINGS_QUERY,
80
+ data: dotPropImmutable.set(data, "mailer.settings.data", {
81
+ ...settingsData,
82
+ ...updateData
83
+ })
84
+ });
85
+ showSnackbar("Settings updated successfully.");
86
+ }
87
+ });
88
+ };
89
+ if (settingsError) {
90
+ return /*#__PURE__*/React.createElement(SimpleForm, null, /*#__PURE__*/React.createElement(SimpleFormHeader, {
91
+ title: "Mailer Settings"
92
+ }), /*#__PURE__*/React.createElement(SimpleFormContent, null, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Grid.Column, {
93
+ span: 12
94
+ }, /*#__PURE__*/React.createElement(Alert, {
95
+ title: settingsError.message,
96
+ type: "danger"
97
+ }, settingsError.data?.description && /*#__PURE__*/React.createElement("p", null, settingsError.data.description))))), /*#__PURE__*/React.createElement(SimpleFormFooter, null, ""));
98
+ }
99
+ const passwordValidators = [];
100
+ if (!settingsData?.user) {
101
+ passwordValidators.push(validation.create("required,minLength:5"));
102
+ }
103
+ return /*#__PURE__*/React.createElement(CenteredView, null, /*#__PURE__*/React.createElement(Form, {
104
+ data: settingsData || {},
105
+ onSubmit: data => {
106
+ /**
107
+ * We are positive that data is TransportSettings.
108
+ */
109
+ onSubmit(data);
169
110
  }
170
-
171
- var passwordValidators = [];
172
-
173
- if (!(settingsData !== null && settingsData !== void 0 && settingsData.user)) {
174
- passwordValidators.push(_validation.validation.create("required,minLength:5"));
111
+ }, ({
112
+ Bind,
113
+ form
114
+ }) => /*#__PURE__*/React.createElement(SimpleForm, null, (queryInProgress || mutationInProgress) && /*#__PURE__*/React.createElement(OverlayLoader, null), /*#__PURE__*/React.createElement(SimpleFormHeader, {
115
+ title: "Mailer Settings"
116
+ }), /*#__PURE__*/React.createElement(SimpleFormContent, null, displayErrors(errors), /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Grid.Column, {
117
+ span: 12
118
+ }, /*#__PURE__*/React.createElement(Bind, {
119
+ name: "host",
120
+ validators: [validation.create("required,minLength:1")]
121
+ }, /*#__PURE__*/React.createElement(Input, {
122
+ size: "lg",
123
+ type: "text",
124
+ label: "Hostname"
125
+ }))), /*#__PURE__*/React.createElement(Grid.Column, {
126
+ span: 12
127
+ }, /*#__PURE__*/React.createElement(Bind, {
128
+ name: "port"
129
+ }, /*#__PURE__*/React.createElement(Input, {
130
+ size: "lg",
131
+ type: "number",
132
+ label: "Port"
133
+ }))), /*#__PURE__*/React.createElement(Grid.Column, {
134
+ span: 12
135
+ }, /*#__PURE__*/React.createElement(Bind, {
136
+ name: "user",
137
+ validators: [validation.create("required,minLength:1")]
138
+ }, /*#__PURE__*/React.createElement(Input, {
139
+ size: "lg",
140
+ type: "text",
141
+ label: "User",
142
+ autoComplete: "new-password"
143
+ }))), /*#__PURE__*/React.createElement(Grid.Column, {
144
+ span: 12
145
+ }, /*#__PURE__*/React.createElement(Bind, {
146
+ name: "password",
147
+ validators: passwordValidators
148
+ }, /*#__PURE__*/React.createElement(Input, {
149
+ size: "lg",
150
+ label: "Password",
151
+ type: "password",
152
+ autoComplete: "new-password",
153
+ value: ""
154
+ // @ts-expect-error
155
+ ,
156
+ inputRef: password
157
+ }))), /*#__PURE__*/React.createElement(Grid.Column, {
158
+ span: 12
159
+ }, /*#__PURE__*/React.createElement(Bind, {
160
+ name: "from",
161
+ validators: [validation.create("required,minLength:1,email")]
162
+ }, /*#__PURE__*/React.createElement(Input, {
163
+ size: "lg",
164
+ type: "text",
165
+ label: "Mail from"
166
+ }))), /*#__PURE__*/React.createElement(Grid.Column, {
167
+ span: 12
168
+ }, /*#__PURE__*/React.createElement(Bind, {
169
+ name: "replyTo",
170
+ validators: [validation.create("email")]
171
+ }, /*#__PURE__*/React.createElement(Input, {
172
+ size: "lg",
173
+ type: "text",
174
+ label: "Mail reply-to"
175
+ }))))), /*#__PURE__*/React.createElement(SimpleFormFooter, null, /*#__PURE__*/React.createElement(Button, {
176
+ text: "Save",
177
+ onClick: ev => {
178
+ form.submit(ev);
175
179
  }
176
-
177
- return /*#__PURE__*/_react.default.createElement(_appAdmin.CenteredView, null, /*#__PURE__*/_react.default.createElement(_form.Form, {
178
- data: settingsData || {},
179
- onSubmit: function onSubmit(data) {
180
- /**
181
- * We are positive that data is TransportSettings.
182
- */
183
- _onSubmit(data);
184
- }
185
- }, function (_ref5) {
186
- var Bind = _ref5.Bind,
187
- form = _ref5.form;
188
- return /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleForm, null, (queryInProgress || mutationInProgress) && /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, null), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormHeader, {
189
- title: "Mailer Settings"
190
- }), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormContent, null, displayErrors(errors), /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
191
- span: 12
192
- }, /*#__PURE__*/_react.default.createElement(Bind, {
193
- name: "host",
194
- validators: [_validation.validation.create("required,minLength:1")]
195
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
196
- type: "text",
197
- label: "Hostname"
198
- }))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
199
- span: 12
200
- }, /*#__PURE__*/_react.default.createElement(Bind, {
201
- name: "port"
202
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
203
- type: "number",
204
- label: "Port"
205
- }))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
206
- span: 12
207
- }, /*#__PURE__*/_react.default.createElement(Bind, {
208
- name: "user",
209
- validators: [_validation.validation.create("required,minLength:1")]
210
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
211
- type: "text",
212
- label: "User",
213
- autoComplete: "new-password"
214
- }))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
215
- span: 12
216
- }, /*#__PURE__*/_react.default.createElement(Bind, {
217
- name: "password",
218
- validators: passwordValidators
219
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
220
- label: "Password",
221
- type: "password",
222
- autoComplete: "new-password",
223
- value: "" // @ts-ignore
224
- ,
225
- inputRef: password
226
- }))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
227
- span: 12
228
- }, /*#__PURE__*/_react.default.createElement(Bind, {
229
- name: "from",
230
- validators: [_validation.validation.create("required,minLength:1,email")]
231
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
232
- type: "text",
233
- label: "Mail from"
234
- }))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
235
- span: 12
236
- }, /*#__PURE__*/_react.default.createElement(Bind, {
237
- name: "replyTo",
238
- validators: [_validation.validation.create("email")]
239
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
240
- type: "text",
241
- label: "Mail reply-to"
242
- }))))), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormFooter, null, /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
243
- onClick: function onClick(ev) {
244
- form.submit(ev);
245
- }
246
- }, "Save Settings")));
247
- }));
248
- });
249
- });
180
+ })))));
181
+ }));
250
182
  };
251
183
 
252
- exports.Settings = Settings;
184
+ //# sourceMappingURL=Settings.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["displayErrors","errors","map","error","field","path","message","Settings","useSnackbar","showSnackbar","password","useRef","useState","setErrors","useEffect","t","setTimeout","current","value","clearTimeout","GET_SETTINGS_QUERY","response","data","queryInProgress","loading","SAVE_SETTINGS_MUTATION","update","result","mailer","settings","settingsData","settingsError","mutationInProgress","onSubmit","variables","cache","structuredClone","readQuery","query","updateData","updateError","writeQuery","backgroundColor","description","passwordValidators","user","push","validation","create","Bind","form","ev","submit"],"sources":["Settings.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport { CenteredView, useSnackbar } from \"@webiny/app-admin\";\nimport { Mutation, Query } from \"@apollo/react-components\";\nimport { Form } from \"@webiny/form\";\nimport {\n SimpleForm,\n SimpleFormContent,\n SimpleFormFooter,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { validation } from \"@webiny/validation\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport {\n GET_SETTINGS_QUERY,\n SettingsQueryResponse,\n SAVE_SETTINGS_MUTATION,\n SaveSettingsMutationVariables,\n SaveSettingsMutationResponse\n} from \"./graphql\";\nimport { TransportSettings, ValidationError } from \"~/types\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { Validator } from \"@webiny/validation/types\";\n\nconst displayErrors = (errors?: ValidationError[]) => {\n if (!errors) {\n return null;\n }\n return (\n <>\n {errors.map(error => {\n const field = error.path[0];\n if (!field) {\n return null;\n }\n return <Alert key={`${field}`} title={error.message} type=\"danger\" />;\n })}\n </>\n );\n};\n\nexport const Settings: React.FC = () => {\n const { showSnackbar } = useSnackbar();\n\n const password = useRef<HTMLInputElement>();\n\n const [errors, setErrors] = useState<ValidationError[] | undefined>();\n\n useEffect(() => {\n const t = setTimeout(() => {\n if (!password.current) {\n return;\n }\n password.current.value = \"\";\n }, 300);\n\n return () => {\n clearTimeout(t);\n };\n }, []);\n\n return (\n <Query<SettingsQueryResponse> query={GET_SETTINGS_QUERY}>\n {({ data: response, loading: queryInProgress }) => (\n <Mutation<SaveSettingsMutationResponse, SaveSettingsMutationVariables>\n mutation={SAVE_SETTINGS_MUTATION}\n >\n {(update, result) => {\n const { data: settingsData, error: settingsError } =\n response?.mailer.settings || {};\n const { loading: mutationInProgress } = result;\n\n const onSubmit = async (data: TransportSettings): Promise<void> => {\n setErrors([]);\n await update({\n variables: {\n data\n },\n update: (cache, result) => {\n const data = structuredClone(\n cache.readQuery({ query: GET_SETTINGS_QUERY })\n );\n\n const { data: updateData, error: updateError } =\n result.data?.mailer.settings || {};\n\n const errors = updateError?.data.errors;\n if (errors) {\n setErrors(errors);\n showSnackbar(\n \"Settings not updated! Please check your network and console logs for detailed information.\"\n );\n return;\n }\n\n data.mailer.settings.data = {\n ...settingsData,\n ...updateData\n };\n\n cache.writeQuery({\n query: GET_SETTINGS_QUERY,\n data\n });\n showSnackbar(\"Settings updated successfully.\");\n }\n });\n };\n if (settingsError) {\n return (\n <CenteredView>\n <SimpleFormHeader title=\"Mailer Settings\" />\n <Grid style={{ backgroundColor: \"#FFFFFF\" }}>\n <Cell span={12}>\n <Alert title={settingsError.message} type=\"danger\" />\n {settingsError.data?.description && (\n <p>{settingsError.data.description}</p>\n )}\n </Cell>\n </Grid>\n </CenteredView>\n );\n }\n\n const passwordValidators: Validator[] = [];\n if (!settingsData?.user) {\n passwordValidators.push(validation.create(\"required,minLength:5\"));\n }\n\n return (\n <CenteredView>\n <Form\n data={settingsData || {}}\n onSubmit={data => {\n /**\n * We are positive that data is TransportSettings.\n */\n onSubmit(data as unknown as TransportSettings);\n }}\n >\n {({ Bind, form }) => (\n <SimpleForm>\n {(queryInProgress || mutationInProgress) && (\n <CircularProgress />\n )}\n <SimpleFormHeader title=\"Mailer Settings\" />\n <SimpleFormContent>\n {displayErrors(errors)}\n <Grid>\n <Cell span={12}>\n <Bind\n name={\"host\"}\n validators={[\n validation.create(\n \"required,minLength:1\"\n )\n ]}\n >\n <Input type=\"text\" label=\"Hostname\" />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name={\"port\"}>\n <Input type=\"number\" label=\"Port\" />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"user\"}\n validators={[\n validation.create(\n \"required,minLength:1\"\n )\n ]}\n >\n <Input\n type=\"text\"\n label=\"User\"\n autoComplete=\"new-password\"\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"password\"}\n validators={passwordValidators}\n >\n <Input\n label=\"Password\"\n type=\"password\"\n autoComplete=\"new-password\"\n value={\"\"}\n // @ts-ignore\n inputRef={password}\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"from\"}\n validators={[\n validation.create(\n \"required,minLength:1,email\"\n )\n ]}\n >\n <Input type=\"text\" label=\"Mail from\" />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"replyTo\"}\n validators={[\n validation.create(\"email\")\n ]}\n >\n <Input\n type=\"text\"\n label=\"Mail reply-to\"\n />\n </Bind>\n </Cell>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <ButtonPrimary\n onClick={ev => {\n form.submit(ev);\n }}\n >\n Save Settings\n </ButtonPrimary>\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n </CenteredView>\n );\n }}\n </Mutation>\n )}\n </Query>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useRef","useState","CenteredView","useSnackbar","Mutation","Query","Form","SimpleForm","SimpleFormContent","SimpleFormFooter","SimpleFormHeader","validation","GET_SETTINGS_QUERY","SAVE_SETTINGS_MUTATION","dotPropImmutable","Alert","Button","Grid","Input","OverlayLoader","displayErrors","errors","createElement","Fragment","map","error","field","path","key","title","type","message","Settings","showSnackbar","password","setErrors","t","setTimeout","current","value","clearTimeout","query","data","response","loading","queryInProgress","mutation","update","result","settingsData","settingsError","mailer","settings","mutationInProgress","onSubmit","variables","cache","structuredClone","readQuery","updateData","updateError","writeQuery","set","Column","span","description","passwordValidators","user","push","create","Bind","form","name","validators","size","label","autoComplete","inputRef","text","onClick","ev","submit"],"sources":["Settings.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport { CenteredView, useSnackbar } from \"@webiny/app-admin\";\nimport { Mutation, Query } from \"@apollo/react-components\";\nimport { Form } from \"@webiny/form\";\nimport {\n SimpleForm,\n SimpleFormContent,\n SimpleFormFooter,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { validation } from \"@webiny/validation\";\nimport type {\n SaveSettingsMutationResponse,\n SaveSettingsMutationVariables,\n SettingsQueryResponse\n} from \"./graphql\";\nimport { GET_SETTINGS_QUERY, SAVE_SETTINGS_MUTATION } from \"./graphql\";\nimport type { TransportSettings, ValidationError } from \"~/types\";\nimport type { Validator } from \"@webiny/validation/types\";\nimport dotPropImmutable from \"dot-prop-immutable\";\nimport { Alert, Button, Grid, Input, OverlayLoader } from \"@webiny/admin-ui\";\n\nconst displayErrors = (errors?: ValidationError[]) => {\n if (!errors) {\n return null;\n }\n return (\n <>\n {errors.map(error => {\n const field = error.path[0];\n if (!field) {\n return null;\n }\n return (\n <Alert key={`${field}`} title={\"Error\"} type=\"danger\">\n {error.message}\n {\"ssss\"}\n </Alert>\n );\n })}\n </>\n );\n};\n\nexport const Settings = () => {\n const { showSnackbar } = useSnackbar();\n\n const password = useRef<HTMLInputElement>();\n\n const [errors, setErrors] = useState<ValidationError[] | undefined>();\n\n useEffect(() => {\n const t = setTimeout(() => {\n if (!password.current) {\n return;\n }\n password.current.value = \"\";\n }, 300);\n\n return () => {\n clearTimeout(t);\n };\n }, []);\n\n return (\n <Query<SettingsQueryResponse> query={GET_SETTINGS_QUERY}>\n {({ data: response, loading: queryInProgress }) => (\n <Mutation<SaveSettingsMutationResponse, SaveSettingsMutationVariables>\n mutation={SAVE_SETTINGS_MUTATION}\n >\n {(update, result) => {\n const { data: settingsData, error: settingsError } =\n response?.mailer.settings || {};\n const { loading: mutationInProgress } = result;\n\n const onSubmit = async (data: TransportSettings): Promise<void> => {\n setErrors([]);\n await update({\n variables: {\n data\n },\n update: (cache, result) => {\n const data = structuredClone(\n cache.readQuery<SettingsQueryResponse>({\n query: GET_SETTINGS_QUERY\n })\n );\n\n const { data: updateData, error: updateError } =\n result.data?.mailer.settings || {};\n\n const errors = updateError?.data.errors;\n if (errors) {\n setErrors(errors);\n showSnackbar(\n \"Settings not updated! Please check your network and console logs for detailed information.\"\n );\n return;\n }\n\n cache.writeQuery({\n query: GET_SETTINGS_QUERY,\n data: dotPropImmutable.set(data, \"mailer.settings.data\", {\n ...settingsData,\n ...updateData\n })\n });\n showSnackbar(\"Settings updated successfully.\");\n }\n });\n };\n if (settingsError) {\n return (\n <SimpleForm>\n <SimpleFormHeader title=\"Mailer Settings\" />\n <SimpleFormContent>\n <Grid>\n <Grid.Column span={12}>\n <Alert title={settingsError.message} type=\"danger\">\n {settingsError.data?.description && (\n <p>{settingsError.data.description}</p>\n )}\n </Alert>\n </Grid.Column>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>{\"\"}</SimpleFormFooter>\n </SimpleForm>\n );\n }\n\n const passwordValidators: Validator[] = [];\n if (!settingsData?.user) {\n passwordValidators.push(validation.create(\"required,minLength:5\"));\n }\n\n return (\n <CenteredView>\n <Form\n data={settingsData || {}}\n onSubmit={data => {\n /**\n * We are positive that data is TransportSettings.\n */\n onSubmit(data as unknown as TransportSettings);\n }}\n >\n {({ Bind, form }) => (\n <SimpleForm>\n {(queryInProgress || mutationInProgress) && (\n <OverlayLoader />\n )}\n <SimpleFormHeader title=\"Mailer Settings\" />\n <SimpleFormContent>\n {displayErrors(errors)}\n <Grid>\n <Grid.Column span={12}>\n <Bind\n name={\"host\"}\n validators={[\n validation.create(\n \"required,minLength:1\"\n )\n ]}\n >\n <Input\n size={\"lg\"}\n type=\"text\"\n label=\"Hostname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"port\"}>\n <Input\n size={\"lg\"}\n type=\"number\"\n label=\"Port\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name={\"user\"}\n validators={[\n validation.create(\n \"required,minLength:1\"\n )\n ]}\n >\n <Input\n size={\"lg\"}\n type=\"text\"\n label=\"User\"\n autoComplete=\"new-password\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name={\"password\"}\n validators={passwordValidators}\n >\n <Input\n size={\"lg\"}\n label=\"Password\"\n type=\"password\"\n autoComplete=\"new-password\"\n value={\"\"}\n // @ts-expect-error\n inputRef={password}\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name={\"from\"}\n validators={[\n validation.create(\n \"required,minLength:1,email\"\n )\n ]}\n >\n <Input\n size={\"lg\"}\n type=\"text\"\n label=\"Mail from\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name={\"replyTo\"}\n validators={[\n validation.create(\"email\")\n ]}\n >\n <Input\n size={\"lg\"}\n type=\"text\"\n label=\"Mail reply-to\"\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <Button\n text={\"Save\"}\n onClick={ev => {\n form.submit(ev);\n }}\n />\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n </CenteredView>\n );\n }}\n </Mutation>\n )}\n </Query>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { ApiError, TransportSettings, ValidationErrors } from "../../types";
1
+ import type { ApiError, TransportSettings, ValidationErrors } from "../../types";
2
2
  export interface SettingsQueryResponse {
3
3
  mailer: {
4
4
  settings: {
@@ -1,21 +1,39 @@
1
- "use strict";
1
+ import gql from "graphql-tag";
2
+ const SETTINGS_FIELDS = `
3
+ {
4
+ host
5
+ port
6
+ user
7
+ from
8
+ replyTo
9
+ }
10
+ `;
11
+ const ERROR_FIELDS = `
12
+ {
13
+ message
14
+ code
15
+ data
16
+ }
17
+ `;
18
+ export const GET_SETTINGS_QUERY = gql`
19
+ query GetMailerSettings {
20
+ mailer {
21
+ settings: getSettings {
22
+ data ${SETTINGS_FIELDS}
23
+ error ${ERROR_FIELDS}
24
+ }
25
+ }
26
+ }
27
+ `;
28
+ export const SAVE_SETTINGS_MUTATION = gql`
29
+ mutation SaveTransportSettings($data: MailerTransportSettingsInput!) {
30
+ mailer {
31
+ settings: saveSettings(data: $data) {
32
+ data ${SETTINGS_FIELDS}
33
+ error ${ERROR_FIELDS}
34
+ }
35
+ }
36
+ }
37
+ `;
2
38
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.SAVE_SETTINGS_MUTATION = exports.GET_SETTINGS_QUERY = void 0;
9
-
10
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
-
12
- var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
13
-
14
- var _templateObject, _templateObject2;
15
-
16
- var SETTINGS_FIELDS = "\n {\n host\n port\n user\n from\n replyTo\n }\n";
17
- var ERROR_FIELDS = "\n {\n message\n code\n data\n }\n";
18
- var GET_SETTINGS_QUERY = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query GetMailerSettings {\n mailer {\n settings: getSettings {\n data ", "\n error ", "\n }\n }\n }\n"])), SETTINGS_FIELDS, ERROR_FIELDS);
19
- exports.GET_SETTINGS_QUERY = GET_SETTINGS_QUERY;
20
- var SAVE_SETTINGS_MUTATION = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n mutation SaveTransportSettings($data: TransportSettingsInput!) {\n mailer {\n settings: saveSettings(data: $data) {\n data ", "\n error ", "\n }\n }\n }\n"])), SETTINGS_FIELDS, ERROR_FIELDS);
21
- exports.SAVE_SETTINGS_MUTATION = SAVE_SETTINGS_MUTATION;
39
+ //# sourceMappingURL=graphql.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SETTINGS_FIELDS","ERROR_FIELDS","GET_SETTINGS_QUERY","gql","SAVE_SETTINGS_MUTATION"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport { ApiError, TransportSettings, ValidationErrors } from \"~/types\";\n\nconst SETTINGS_FIELDS = `\n {\n host\n port\n user\n from\n replyTo\n }\n`;\n\nconst ERROR_FIELDS = `\n {\n message\n code\n data\n }\n`;\n\nexport interface SettingsQueryResponse {\n mailer: {\n settings: {\n data: TransportSettings | null;\n error: ApiError | null;\n };\n };\n}\nexport const GET_SETTINGS_QUERY = gql`\n query GetMailerSettings {\n mailer {\n settings: getSettings {\n data ${SETTINGS_FIELDS}\n error ${ERROR_FIELDS}\n }\n }\n }\n`;\n\nexport interface SaveSettingsMutationVariables {\n data: TransportSettings & {\n password?: string;\n };\n}\n\nexport interface SaveSettingsMutationResponse {\n mailer: {\n settings: {\n data: TransportSettings | null;\n error: ApiError<ValidationErrors> | null;\n };\n };\n}\nexport const SAVE_SETTINGS_MUTATION = gql`\n mutation SaveTransportSettings($data: TransportSettingsInput!) {\n mailer {\n settings: saveSettings(data: $data) {\n data ${SETTINGS_FIELDS}\n error ${ERROR_FIELDS}\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;;;;AAAA;;;;AAGA,IAAMA,eAAe,8FAArB;AAUA,IAAMC,YAAY,kEAAlB;AAgBO,IAAMC,kBAAkB,OAAGC,mBAAH,qQAIRH,eAJQ,EAKPC,YALO,CAAxB;;AAyBA,IAAMG,sBAAsB,OAAGD,mBAAH,4TAIZH,eAJY,EAKXC,YALW,CAA5B"}
1
+ {"version":3,"names":["gql","SETTINGS_FIELDS","ERROR_FIELDS","GET_SETTINGS_QUERY","SAVE_SETTINGS_MUTATION"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport type { ApiError, TransportSettings, ValidationErrors } from \"~/types\";\n\nconst SETTINGS_FIELDS = `\n {\n host\n port\n user\n from\n replyTo\n }\n`;\n\nconst ERROR_FIELDS = `\n {\n message\n code\n data\n }\n`;\n\nexport interface SettingsQueryResponse {\n mailer: {\n settings: {\n data: TransportSettings | null;\n error: ApiError | null;\n };\n };\n}\nexport const GET_SETTINGS_QUERY = gql`\n query GetMailerSettings {\n mailer {\n settings: getSettings {\n data ${SETTINGS_FIELDS}\n error ${ERROR_FIELDS}\n }\n }\n }\n`;\n\nexport interface SaveSettingsMutationVariables {\n data: TransportSettings & {\n password?: string;\n };\n}\n\nexport interface SaveSettingsMutationResponse {\n mailer: {\n settings: {\n data: TransportSettings | null;\n error: ApiError<ValidationErrors> | null;\n };\n };\n}\nexport const SAVE_SETTINGS_MUTATION = gql`\n mutation SaveTransportSettings($data: MailerTransportSettingsInput!) {\n mailer {\n settings: saveSettings(data: $data) {\n data ${SETTINGS_FIELDS}\n error ${ERROR_FIELDS}\n }\n }\n }\n`;\n"],"mappings":"AAAA,OAAOA,GAAG,MAAM,aAAa;AAG7B,MAAMC,eAAe,GAAG;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,MAAMC,YAAY,GAAG;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;AAUD,OAAO,MAAMC,kBAAkB,GAAGH,GAAG;AACrC;AACA;AACA;AACA,uBAAuBC,eAAe;AACtC,wBAAwBC,YAAY;AACpC;AACA;AACA;AACA,CAAC;AAgBD,OAAO,MAAME,sBAAsB,GAAGJ,GAAG;AACzC;AACA;AACA;AACA,uBAAuBC,eAAe;AACtC,wBAAwBC,YAAY;AACpC;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -1,11 +1,4 @@
1
- "use strict";
1
+ import { Settings } from "./Settings";
2
+ export default Settings;
2
3
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _Settings = require("./Settings");
9
-
10
- var _default = _Settings.Settings;
11
- exports.default = _default;
4
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Settings"],"sources":["index.ts"],"sourcesContent":["import { Settings } from \"./Settings\";\n\nexport default Settings;\n"],"mappings":";;;;;;;AAAA;;eAEeA,kB"}
1
+ {"version":3,"names":["Settings"],"sources":["index.ts"],"sourcesContent":["import { Settings } from \"./Settings\";\n\nexport default Settings;\n"],"mappings":"AAAA,SAASA,QAAQ;AAEjB,eAAeA,QAAQ","ignoreList":[]}