@webiny/app-mailer 0.0.0-unstable.611c5af35e → 0.0.0-unstable.615a930a68

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.
@@ -4,12 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.usePermission = void 0;
7
+
7
8
  var _appSecurity = require("@webiny/app-security");
9
+
8
10
  var _react = require("react");
11
+
9
12
  var usePermission = function usePermission() {
10
13
  var _useSecurity = (0, _appSecurity.useSecurity)(),
11
- identity = _useSecurity.identity,
12
- getPermission = _useSecurity.getPermission;
14
+ identity = _useSecurity.identity,
15
+ getPermission = _useSecurity.getPermission;
16
+
13
17
  var canChangeSettings = (0, _react.useCallback)(function () {
14
18
  var permission = getPermission("mailer.settings");
15
19
  return !!permission;
@@ -18,4 +22,5 @@ var usePermission = function usePermission() {
18
22
  canChangeSettings: canChangeSettings
19
23
  };
20
24
  };
25
+
21
26
  exports.usePermission = usePermission;
@@ -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,aAAa,GAAS;EAC/B,mBAAoC,IAAAC,wBAAW,GAAE;IAAzCC,QAAQ,gBAARA,QAAQ;IAAEC,aAAa,gBAAbA,aAAa;EAE/B,IAAMC,iBAAiB,GAAG,IAAAC,kBAAW,EAAC,YAAe;IACjD,IAAMC,UAAU,GAAGH,aAAa,CAA2B,iBAAiB,CAAC;IAC7E,OAAO,CAAC,CAACG,UAAU;EACvB,CAAC,EAAE,CAACJ,QAAQ,CAAC,CAAC;EAEd,OAAO;IACHE,iBAAiB,EAAjBA;EACJ,CAAC;AACL,CAAC;AAAC"}
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"}
package/index.js CHANGED
@@ -9,4 +9,5 @@ Object.defineProperty(exports, "Module", {
9
9
  return _Module.Module;
10
10
  }
11
11
  });
12
+
12
13
  var _Module = require("./plugins/Module");
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":[],"sources":["index.tsx"],"sourcesContent":["import { Module } from \"~/plugins/Module\";\n\nexport { Module };\n"],"mappings":";;;;;;;;;;;;AAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-mailer",
3
- "version": "0.0.0-unstable.611c5af35e",
3
+ "version": "0.0.0-unstable.615a930a68",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,13 +10,13 @@
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@apollo/react-components": "3.1.5",
13
- "@babel/runtime": "7.20.1",
13
+ "@babel/runtime": "7.19.0",
14
14
  "@emotion/core": "10.3.1",
15
- "@webiny/app-admin": "0.0.0-unstable.611c5af35e",
16
- "@webiny/app-security": "0.0.0-unstable.611c5af35e",
17
- "@webiny/form": "0.0.0-unstable.611c5af35e",
18
- "@webiny/ui": "0.0.0-unstable.611c5af35e",
19
- "@webiny/validation": "0.0.0-unstable.611c5af35e",
15
+ "@webiny/app-admin": "0.0.0-unstable.615a930a68",
16
+ "@webiny/app-security": "0.0.0-unstable.615a930a68",
17
+ "@webiny/form": "0.0.0-unstable.615a930a68",
18
+ "@webiny/ui": "0.0.0-unstable.615a930a68",
19
+ "@webiny/validation": "0.0.0-unstable.615a930a68",
20
20
  "apollo-cache": "1.3.5",
21
21
  "apollo-client": "2.6.10",
22
22
  "apollo-link": "1.2.14",
@@ -35,8 +35,8 @@
35
35
  "@babel/preset-react": "^7.0.0",
36
36
  "@babel/preset-typescript": "^7.18.6",
37
37
  "@types/react": "17.0.39",
38
- "@webiny/cli": "^0.0.0-unstable.611c5af35e",
39
- "@webiny/project-utils": "^0.0.0-unstable.611c5af35e",
38
+ "@webiny/cli": "^0.0.0-unstable.615a930a68",
39
+ "@webiny/project-utils": "^0.0.0-unstable.615a930a68",
40
40
  "babel-plugin-emotion": "^9.2.8",
41
41
  "rimraf": "^3.0.2",
42
42
  "ttypescript": "^1.5.12",
@@ -55,5 +55,5 @@
55
55
  "removeViewBox": false
56
56
  }
57
57
  },
58
- "gitHead": "cdeed09317c2c0e07cb0d4d88f9ac38a214ddc22"
58
+ "gitHead": "615a930a68d692c832e4f100405eeb3f5a8874af"
59
59
  }
package/plugins/Module.js CHANGED
@@ -1,40 +1,57 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  var _interopRequireWildcard3 = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.Module = void 0;
11
+
9
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
10
14
  var _interopRequireWildcard2 = _interopRequireDefault(require("@babel/runtime/helpers/interopRequireWildcard"));
15
+
11
16
  var _react = _interopRequireWildcard3(require("react"));
17
+
12
18
  var _appAdmin = require("@webiny/app-admin");
19
+
13
20
  var _appSecurity = require("@webiny/app-security");
21
+
14
22
  var _AdminLayout = require("@webiny/app-admin/components/AdminLayout");
23
+
15
24
  var _reactHelmet = _interopRequireDefault(require("react-helmet"));
25
+
16
26
  var _usePermission2 = require("../hooks/usePermission");
27
+
17
28
  var _Progress = require("@webiny/ui/Progress");
29
+
18
30
  var _excluded = ["children"];
19
31
  var Settings = /*#__PURE__*/(0, _react.lazy)(function () {
20
32
  return Promise.resolve().then(function () {
21
33
  return (0, _interopRequireWildcard2.default)(require("../views/settings"));
22
34
  });
23
35
  });
36
+
24
37
  var Loader = function Loader(_ref) {
25
38
  var children = _ref.children,
26
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
39
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
27
40
  return /*#__PURE__*/_react.default.createElement(_react.Suspense, {
28
41
  fallback: /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, null)
29
42
  }, /*#__PURE__*/_react.default.cloneElement(children, props));
30
43
  };
44
+
31
45
  var Module = function Module() {
32
46
  var _usePermission = (0, _usePermission2.usePermission)(),
33
- canChangeSettings = _usePermission.canChangeSettings;
47
+ canChangeSettings = _usePermission.canChangeSettings;
48
+
34
49
  var changeSettings = canChangeSettings();
50
+
35
51
  if (!changeSettings) {
36
52
  return null;
37
53
  }
54
+
38
55
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
39
56
  name: "settings"
40
57
  }, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
@@ -56,4 +73,5 @@ var Module = function Module() {
56
73
  }
57
74
  }));
58
75
  };
76
+
59
77
  exports.Module = Module;
@@ -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;AAAuD;AAEvD,IAAMA,QAAQ,gBAAG,IAAAC,WAAI,EAAC;EAAA;IAAA;EAAA;AAAA,CAAgC,CAAC;AAKvD,IAAMC,MAA6B,GAAG,SAAhCA,MAA6B;EAAA,IAAMC,QAAQ,QAARA,QAAQ;IAAKC,KAAK;EAAA,oBACvD,6BAAC,eAAQ;IAAC,QAAQ,eAAE,6BAAC,0BAAgB;EAAI,gBAAEC,cAAK,CAACC,YAAY,CAACH,QAAQ,EAAEC,KAAK,CAAC,CAAY;AAAA,CAC7F;AAEM,IAAMG,MAAgB,GAAG,SAAnBA,MAAgB,GAAS;EAClC,qBAA8B,IAAAC,6BAAa,GAAE;IAArCC,iBAAiB,kBAAjBA,iBAAiB;EAEzB,IAAMC,cAAc,GAAGD,iBAAiB,EAAE;EAE1C,IAAI,CAACC,cAAc,EAAE;IACjB,OAAO,IAAI;EACf;EAEA,oBACI,yEACI,6BAAC,iBAAI;IAAC,IAAI,EAAE;EAAW,gBACnB,6BAAC,iBAAI;IAAC,IAAI,EAAE,iBAAkB;IAAC,KAAK,EAAE;EAAS,gBAC3C,6BAAC,iBAAI;IACD,IAAI,EAAE,0BAA2B;IACjC,KAAK,EAAE,UAAW;IAClB,IAAI,EAAE;EAAmB,EAC3B,CACC,CACJ,eACP,6BAAC,kBAAQ;IACL,KAAK;IACL,IAAI,EAAE,kBAAmB;IACzB,MAAM,EAAE;MAAA,oBACJ,6BAAC,wBAAW;QAAC,UAAU,EAAE;MAAkB,gBACvC,6BAAC,wBAAW,qBACR,6BAAC,oBAAM;QAAC,KAAK,EAAE;MAAoB,EAAG,eACtC,6BAAC,MAAM,qBACH,6BAAC,QAAQ,OAAG,CACP,CACC,CACJ;IAAA;EAChB,EACJ,CACH;AAEX,CAAC;AAAC"}
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,36 +1,58 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+
4
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.Settings = void 0;
11
+
9
12
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
13
+
10
14
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
15
+
11
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
12
18
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
+
13
20
  var _react = _interopRequireWildcard(require("react"));
21
+
14
22
  var _appAdmin = require("@webiny/app-admin");
23
+
15
24
  var _reactComponents = require("@apollo/react-components");
25
+
16
26
  var _form = require("@webiny/form");
27
+
17
28
  var _SimpleForm = require("@webiny/app-admin/components/SimpleForm");
29
+
18
30
  var _Progress = require("@webiny/ui/Progress");
31
+
19
32
  var _Grid = require("@webiny/ui/Grid");
33
+
20
34
  var _Input = require("@webiny/ui/Input");
35
+
21
36
  var _validation = require("@webiny/validation");
37
+
22
38
  var _Button = require("@webiny/ui/Button");
39
+
23
40
  var _graphql = require("./graphql");
41
+
24
42
  var _Alert = require("@webiny/ui/Alert");
43
+
25
44
  var displayErrors = function displayErrors(errors) {
26
45
  if (!errors) {
27
46
  return null;
28
47
  }
48
+
29
49
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, errors.map(function (error) {
30
50
  var field = error.path[0];
51
+
31
52
  if (!field) {
32
53
  return null;
33
54
  }
55
+
34
56
  return /*#__PURE__*/_react.default.createElement(_Alert.Alert, {
35
57
  key: "".concat(field),
36
58
  title: error.message,
@@ -38,19 +60,24 @@ var displayErrors = function displayErrors(errors) {
38
60
  });
39
61
  }));
40
62
  };
63
+
41
64
  var Settings = function Settings() {
42
65
  var _useSnackbar = (0, _appAdmin.useSnackbar)(),
43
- showSnackbar = _useSnackbar.showSnackbar;
66
+ showSnackbar = _useSnackbar.showSnackbar;
67
+
44
68
  var password = (0, _react.useRef)();
69
+
45
70
  var _useState = (0, _react.useState)(),
46
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
47
- errors = _useState2[0],
48
- setErrors = _useState2[1];
71
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
72
+ errors = _useState2[0],
73
+ setErrors = _useState2[1];
74
+
49
75
  (0, _react.useEffect)(function () {
50
76
  var t = setTimeout(function () {
51
77
  if (!password.current) {
52
78
  return;
53
79
  }
80
+
54
81
  password.current.value = "";
55
82
  }, 300);
56
83
  return function () {
@@ -61,14 +88,16 @@ var Settings = function Settings() {
61
88
  query: _graphql.GET_SETTINGS_QUERY
62
89
  }, function (_ref) {
63
90
  var response = _ref.data,
64
- queryInProgress = _ref.loading;
91
+ queryInProgress = _ref.loading;
65
92
  return /*#__PURE__*/_react.default.createElement(_reactComponents.Mutation, {
66
93
  mutation: _graphql.SAVE_SETTINGS_MUTATION
67
94
  }, function (update, result) {
68
95
  var _ref2 = (response === null || response === void 0 ? void 0 : response.mailer.settings) || {},
69
- settingsData = _ref2.data,
70
- settingsError = _ref2.error;
96
+ settingsData = _ref2.data,
97
+ settingsError = _ref2.error;
98
+
71
99
  var mutationInProgress = result.loading;
100
+
72
101
  var _onSubmit = /*#__PURE__*/function () {
73
102
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(data) {
74
103
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
@@ -83,18 +112,23 @@ var Settings = function Settings() {
83
112
  },
84
113
  update: function update(cache, result) {
85
114
  var _result$data;
115
+
86
116
  var data = structuredClone(cache.readQuery({
87
117
  query: _graphql.GET_SETTINGS_QUERY
88
118
  }));
119
+
89
120
  var _ref4 = ((_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.mailer.settings) || {},
90
- updateData = _ref4.data,
91
- updateError = _ref4.error;
121
+ updateData = _ref4.data,
122
+ updateError = _ref4.error;
123
+
92
124
  var errors = updateError === null || updateError === void 0 ? void 0 : updateError.data.errors;
125
+
93
126
  if (errors) {
94
127
  setErrors(errors);
95
128
  showSnackbar("Settings not updated! Please check your network and console logs for detailed information.");
96
129
  return;
97
130
  }
131
+
98
132
  data.mailer.settings.data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, settingsData), updateData);
99
133
  cache.writeQuery({
100
134
  query: _graphql.GET_SETTINGS_QUERY,
@@ -103,6 +137,7 @@ var Settings = function Settings() {
103
137
  showSnackbar("Settings updated successfully.");
104
138
  }
105
139
  });
140
+
106
141
  case 3:
107
142
  case "end":
108
143
  return _context.stop();
@@ -110,12 +145,15 @@ var Settings = function Settings() {
110
145
  }
111
146
  }, _callee);
112
147
  }));
148
+
113
149
  return function onSubmit(_x) {
114
150
  return _ref3.apply(this, arguments);
115
151
  };
116
152
  }();
153
+
117
154
  if (settingsError) {
118
155
  var _settingsError$data;
156
+
119
157
  return /*#__PURE__*/_react.default.createElement(_appAdmin.CenteredView, null, /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormHeader, {
120
158
  title: "Mailer Settings"
121
159
  }), /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
@@ -129,10 +167,13 @@ var Settings = function Settings() {
129
167
  type: "danger"
130
168
  }), ((_settingsError$data = settingsError.data) === null || _settingsError$data === void 0 ? void 0 : _settingsError$data.description) && /*#__PURE__*/_react.default.createElement("p", null, settingsError.data.description))));
131
169
  }
170
+
132
171
  var passwordValidators = [];
172
+
133
173
  if (!(settingsData !== null && settingsData !== void 0 && settingsData.user)) {
134
174
  passwordValidators.push(_validation.validation.create("required,minLength:5"));
135
175
  }
176
+
136
177
  return /*#__PURE__*/_react.default.createElement(_appAdmin.CenteredView, null, /*#__PURE__*/_react.default.createElement(_form.Form, {
137
178
  data: settingsData || {},
138
179
  onSubmit: function onSubmit(data) {
@@ -143,7 +184,7 @@ var Settings = function Settings() {
143
184
  }
144
185
  }, function (_ref5) {
145
186
  var Bind = _ref5.Bind,
146
- form = _ref5.form;
187
+ form = _ref5.form;
147
188
  return /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleForm, null, (queryInProgress || mutationInProgress) && /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, null), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormHeader, {
148
189
  title: "Mailer Settings"
149
190
  }), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormContent, null, displayErrors(errors), /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
@@ -179,8 +220,7 @@ var Settings = function Settings() {
179
220
  label: "Password",
180
221
  type: "password",
181
222
  autoComplete: "new-password",
182
- value: ""
183
- // @ts-ignore
223
+ value: "" // @ts-ignore
184
224
  ,
185
225
  inputRef: password
186
226
  }))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
@@ -208,4 +248,5 @@ var Settings = function Settings() {
208
248
  });
209
249
  });
210
250
  };
251
+
211
252
  exports.Settings = Settings;
@@ -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":["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,16 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.SAVE_SETTINGS_MUTATION = exports.GET_SETTINGS_QUERY = void 0;
9
+
8
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
9
12
  var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
13
+
10
14
  var _templateObject, _templateObject2;
15
+
11
16
  var SETTINGS_FIELDS = "\n {\n host\n port\n user\n from\n replyTo\n }\n";
12
17
  var ERROR_FIELDS = "\n {\n message\n code\n data\n }\n";
13
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);
14
19
  exports.GET_SETTINGS_QUERY = GET_SETTINGS_QUERY;
15
- 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);
20
+ var SAVE_SETTINGS_MUTATION = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n mutation SaveTransportSettings($data: MailerTransportSettingsInput!) {\n mailer {\n settings: saveSettings(data: $data) {\n data ", "\n error ", "\n }\n }\n }\n"])), SETTINGS_FIELDS, ERROR_FIELDS);
16
21
  exports.SAVE_SETTINGS_MUTATION = SAVE_SETTINGS_MUTATION;
@@ -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;AAA8B;AAG9B,IAAMA,eAAe,8FAQpB;AAED,IAAMC,YAAY,kEAMjB;AAUM,IAAMC,kBAAkB,OAAGC,mBAAG,qQAIdH,eAAe,EACdC,YAAY,CAInC;AAAC;AAgBK,IAAMG,sBAAsB,OAAGD,mBAAG,4TAIlBH,eAAe,EACdC,YAAY,CAInC;AAAC"}
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: MailerTransportSettingsInput!) {\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,kUAIZH,eAJY,EAKXC,YALW,CAA5B"}
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  var _Settings = require("./Settings");
9
+
8
10
  var _default = _Settings.Settings;
9
11
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["Settings"],"sources":["index.ts"],"sourcesContent":["import { Settings } from \"./Settings\";\n\nexport default Settings;\n"],"mappings":";;;;;;AAAA;AAAsC,eAEvBA,kBAAQ;AAAA"}
1
+ {"version":3,"names":["Settings"],"sources":["index.ts"],"sourcesContent":["import { Settings } from \"./Settings\";\n\nexport default Settings;\n"],"mappings":";;;;;;;AAAA;;eAEeA,kB"}