@webiny/app-mailer 5.39.0-beta.0 → 5.39.0-beta.2

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-mailer",
3
- "version": "5.39.0-beta.0",
3
+ "version": "5.39.0-beta.2",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,15 +12,16 @@
12
12
  "@apollo/react-components": "3.1.5",
13
13
  "@babel/runtime": "7.22.6",
14
14
  "@emotion/react": "11.10.8",
15
- "@webiny/app-admin": "5.39.0-beta.0",
16
- "@webiny/app-security": "5.39.0-beta.0",
17
- "@webiny/form": "5.39.0-beta.0",
18
- "@webiny/ui": "5.39.0-beta.0",
19
- "@webiny/validation": "5.39.0-beta.0",
15
+ "@webiny/app-admin": "5.39.0-beta.2",
16
+ "@webiny/app-security": "5.39.0-beta.2",
17
+ "@webiny/form": "5.39.0-beta.2",
18
+ "@webiny/ui": "5.39.0-beta.2",
19
+ "@webiny/validation": "5.39.0-beta.2",
20
20
  "apollo-cache": "1.3.5",
21
21
  "apollo-client": "2.6.10",
22
22
  "apollo-link": "1.2.14",
23
23
  "apollo-utilities": "1.3.4",
24
+ "dot-prop-immutable": "2.1.1",
24
25
  "graphql": "15.8.0",
25
26
  "graphql-tag": "2.12.6",
26
27
  "prop-types": "15.8.1",
@@ -35,8 +36,8 @@
35
36
  "@babel/preset-react": "7.22.5",
36
37
  "@babel/preset-typescript": "7.22.5",
37
38
  "@types/react": "17.0.39",
38
- "@webiny/cli": "5.39.0-beta.0",
39
- "@webiny/project-utils": "5.39.0-beta.0",
39
+ "@webiny/cli": "5.39.0-beta.2",
40
+ "@webiny/project-utils": "5.39.0-beta.2",
40
41
  "babel-plugin-emotion": "9.2.11",
41
42
  "rimraf": "3.0.2",
42
43
  "ttypescript": "1.5.15",
@@ -55,5 +56,5 @@
55
56
  "removeViewBox": false
56
57
  }
57
58
  },
58
- "gitHead": "df94742fba6658ed3507e1e17ab53dc77bb66330"
59
+ "gitHead": "193039382160557448f23f43685f29136f58f87a"
59
60
  }
@@ -1,2 +1,2 @@
1
- import React from "react";
2
- export declare const Module: React.FC;
1
+ /// <reference types="react" />
2
+ export declare const Module: () => JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard3","require","_appAdmin","_appSecurity","_AdminLayout","_reactHelmet","_interopRequireDefault","_usePermission2","_Progress","_excluded","Settings","lazy","Promise","resolve","then","_interopRequireWildcard2","default","Loader","_ref","children","props","_objectWithoutProperties2","createElement","Suspense","fallback","CircularProgress","React","cloneElement","MailerSettings","_usePermission","usePermission","canChangeSettings","changeSettings","Fragment","AddMenu","name","label","path","AddRoute","exact","render","SecureRoute","permission","AdminLayout","title","Module","Plugins","exports"],"sources":["Module.tsx"],"sourcesContent":["import React, { lazy, Suspense } from \"react\";\nimport { AddMenu as Menu, AddRoute, Plugins } 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\nconst MailerSettings: 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\nexport const Module: React.FC = () => {\n return (\n <Plugins>\n <MailerSettings />\n </Plugins>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard3","require","_appAdmin","_appSecurity","_AdminLayout","_reactHelmet","_interopRequireDefault","_usePermission2","_Progress","_excluded","Settings","lazy","Promise","resolve","then","_interopRequireWildcard2","default","Loader","_ref","children","props","_objectWithoutProperties2","createElement","Suspense","fallback","CircularProgress","React","cloneElement","MailerSettings","_usePermission","usePermission","canChangeSettings","changeSettings","Fragment","AddMenu","name","label","path","AddRoute","exact","render","SecureRoute","permission","AdminLayout","title","Module","Plugins","exports"],"sources":["Module.tsx"],"sourcesContent":["import React, { lazy, Suspense } from \"react\";\nimport { AddMenu as Menu, AddRoute, Plugins } 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 = ({ 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 <>\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\nexport const Module = () => {\n return (\n <Plugins>\n <MailerSettings />\n </Plugins>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,wBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AAAuD,IAAAQ,SAAA;AAEvD,IAAMC,QAAQ,gBAAG,IAAAC,WAAI,EAAC;EAAA,OAAAC,OAAA,CAAAC,OAAA,GAAAC,IAAA;IAAA,WAAAC,wBAAA,CAAAC,OAAA,EAAAf,OAAA;EAAA;AAAA,CAAgC,CAAC;AAKvD,IAAMgB,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA;EAAA,IAAMC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAKC,KAAK,OAAAC,yBAAA,CAAAL,OAAA,EAAAE,IAAA,EAAAT,SAAA;EAAA,oBAChCV,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAACvB,MAAA,CAAAwB,QAAQ;IAACC,QAAQ,eAAEzB,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAACd,SAAA,CAAAiB,gBAAgB,MAAE;EAAE,gBAAEC,cAAK,CAACC,YAAY,CAACR,QAAQ,EAAEC,KAAK,CAAY,CAAC;AAAA,CAC7F;AAED,IAAMQ,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;EACzB,IAAAC,cAAA,GAA8B,IAAAC,6BAAa,EAAC,CAAC;IAArCC,iBAAiB,GAAAF,cAAA,CAAjBE,iBAAiB;EAEzB,IAAMC,cAAc,GAAGD,iBAAiB,CAAC,CAAC;EAE1C,IAAI,CAACC,cAAc,EAAE;IACjB,OAAO,IAAI;EACf;EAEA,oBACIjC,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAAAvB,MAAA,CAAAiB,OAAA,CAAAiB,QAAA,qBACIlC,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAACpB,SAAA,CAAAgC,OAAI;IAACC,IAAI,EAAE;EAAW,gBACnBpC,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAACpB,SAAA,CAAAgC,OAAI;IAACC,IAAI,EAAE,iBAAkB;IAACC,KAAK,EAAE;EAAS,gBAC3CrC,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAACpB,SAAA,CAAAgC,OAAI;IACDC,IAAI,EAAE,0BAA2B;IACjCC,KAAK,EAAE,UAAW;IAClBC,IAAI,EAAE;EAAmB,CAC5B,CACC,CACJ,CAAC,eACPtC,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAACpB,SAAA,CAAAoC,QAAQ;IACLC,KAAK;IACLF,IAAI,EAAE,kBAAmB;IACzBG,MAAM,EAAE,SAAAA,OAAA;MAAA,oBACJzC,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAACnB,YAAA,CAAAsC,WAAW;QAACC,UAAU,EAAE;MAAkB,gBACvC3C,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAAClB,YAAA,CAAAuC,WAAW,qBACR5C,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAACjB,YAAA,CAAAW,OAAM;QAAC4B,KAAK,EAAE;MAAoB,CAAE,CAAC,eACtC7C,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAACL,MAAM,qBACHlB,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAACZ,QAAQ,MAAE,CACP,CACC,CACJ,CAAC;IAAA;EAChB,CACL,CACH,CAAC;AAEX,CAAC;AAEM,IAAMmC,MAAM,GAAG,SAATA,MAAMA,CAAA,EAAS;EACxB,oBACI9C,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAACpB,SAAA,CAAA4C,OAAO,qBACJ/C,MAAA,CAAAiB,OAAA,CAAAM,aAAA,CAACM,cAAc,MAAE,CACZ,CAAC;AAElB,CAAC;AAACmB,OAAA,CAAAF,MAAA,GAAAA,MAAA"}
@@ -1,2 +1,2 @@
1
- import React from "react";
2
- export declare const Settings: React.FC;
1
+ /// <reference types="react" />
2
+ export declare const Settings: () => JSX.Element;
@@ -6,9 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.Settings = void 0;
9
- var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
10
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
11
  var _react = _interopRequireWildcard(require("react"));
14
12
  var _appAdmin = require("@webiny/app-admin");
@@ -22,6 +20,7 @@ var _validation = require("@webiny/validation");
22
20
  var _Button = require("@webiny/ui/Button");
23
21
  var _graphql = require("./graphql");
24
22
  var _Alert = require("@webiny/ui/Alert");
23
+ var _dotPropImmutable = _interopRequireDefault(require("dot-prop-immutable"));
25
24
  var displayErrors = function displayErrors(errors) {
26
25
  if (!errors) {
27
26
  return null;
@@ -65,55 +64,38 @@ var Settings = function Settings() {
65
64
  return /*#__PURE__*/_react.default.createElement(_reactComponents.Mutation, {
66
65
  mutation: _graphql.SAVE_SETTINGS_MUTATION
67
66
  }, function (update, result) {
68
- var _ref2 = (response === null || response === void 0 ? void 0 : response.mailer.settings) || {},
67
+ var _ref2 = response?.mailer.settings || {},
69
68
  settingsData = _ref2.data,
70
69
  settingsError = _ref2.error;
71
70
  var mutationInProgress = result.loading;
72
- var _onSubmit = /*#__PURE__*/function () {
73
- var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(data) {
74
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
75
- while (1) switch (_context.prev = _context.next) {
76
- case 0:
77
- setErrors([]);
78
- _context.next = 3;
79
- return update({
80
- variables: {
81
- data: data
82
- },
83
- update: function update(cache, result) {
84
- var _result$data;
85
- var data = structuredClone(cache.readQuery({
86
- query: _graphql.GET_SETTINGS_QUERY
87
- }));
88
- var _ref4 = ((_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.mailer.settings) || {},
89
- updateData = _ref4.data,
90
- updateError = _ref4.error;
91
- var errors = updateError === null || updateError === void 0 ? void 0 : updateError.data.errors;
92
- if (errors) {
93
- setErrors(errors);
94
- showSnackbar("Settings not updated! Please check your network and console logs for detailed information.");
95
- return;
96
- }
97
- data.mailer.settings.data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, settingsData), updateData);
98
- cache.writeQuery({
99
- query: _graphql.GET_SETTINGS_QUERY,
100
- data: data
101
- });
102
- showSnackbar("Settings updated successfully.");
103
- }
104
- });
105
- case 3:
106
- case "end":
107
- return _context.stop();
71
+ var _onSubmit = async function onSubmit(data) {
72
+ setErrors([]);
73
+ await update({
74
+ variables: {
75
+ data: data
76
+ },
77
+ update: function update(cache, result) {
78
+ var data = structuredClone(cache.readQuery({
79
+ query: _graphql.GET_SETTINGS_QUERY
80
+ }));
81
+ var _ref3 = result.data?.mailer.settings || {},
82
+ updateData = _ref3.data,
83
+ updateError = _ref3.error;
84
+ var errors = updateError?.data.errors;
85
+ if (errors) {
86
+ setErrors(errors);
87
+ showSnackbar("Settings not updated! Please check your network and console logs for detailed information.");
88
+ return;
108
89
  }
109
- }, _callee);
110
- }));
111
- return function onSubmit(_x) {
112
- return _ref3.apply(this, arguments);
113
- };
114
- }();
90
+ cache.writeQuery({
91
+ query: _graphql.GET_SETTINGS_QUERY,
92
+ data: _dotPropImmutable.default.set(data, "mailer.settings.data", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, settingsData), updateData))
93
+ });
94
+ showSnackbar("Settings updated successfully.");
95
+ }
96
+ });
97
+ };
115
98
  if (settingsError) {
116
- var _settingsError$data;
117
99
  return /*#__PURE__*/_react.default.createElement(_appAdmin.CenteredView, null, /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormHeader, {
118
100
  title: "Mailer Settings"
119
101
  }), /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
@@ -125,10 +107,10 @@ var Settings = function Settings() {
125
107
  }, /*#__PURE__*/_react.default.createElement(_Alert.Alert, {
126
108
  title: settingsError.message,
127
109
  type: "danger"
128
- }), ((_settingsError$data = settingsError.data) === null || _settingsError$data === void 0 ? void 0 : _settingsError$data.description) && /*#__PURE__*/_react.default.createElement("p", null, settingsError.data.description))));
110
+ }), settingsError.data?.description && /*#__PURE__*/_react.default.createElement("p", null, settingsError.data.description))));
129
111
  }
130
112
  var passwordValidators = [];
131
- if (!(settingsData !== null && settingsData !== void 0 && settingsData.user)) {
113
+ if (!settingsData?.user) {
132
114
  passwordValidators.push(_validation.validation.create("required,minLength:5"));
133
115
  }
134
116
  return /*#__PURE__*/_react.default.createElement(_appAdmin.CenteredView, null, /*#__PURE__*/_react.default.createElement(_form.Form, {
@@ -139,9 +121,9 @@ var Settings = function Settings() {
139
121
  */
140
122
  _onSubmit(data);
141
123
  }
142
- }, function (_ref5) {
143
- var Bind = _ref5.Bind,
144
- form = _ref5.form;
124
+ }, function (_ref4) {
125
+ var Bind = _ref4.Bind,
126
+ form = _ref4.form;
145
127
  return /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleForm, null, (queryInProgress || mutationInProgress) && /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, null), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormHeader, {
146
128
  title: "Mailer Settings"
147
129
  }), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormContent, null, displayErrors(errors), /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
@@ -178,7 +160,7 @@ var Settings = function Settings() {
178
160
  type: "password",
179
161
  autoComplete: "new-password",
180
162
  value: ""
181
- // @ts-ignore
163
+ // @ts-expect-error
182
164
  ,
183
165
  inputRef: password
184
166
  }))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_appAdmin","_reactComponents","_form","_SimpleForm","_Progress","_Grid","_Input","_validation","_Button","_graphql","_Alert","displayErrors","errors","default","createElement","Fragment","map","error","field","path","Alert","key","concat","title","message","type","Settings","_useSnackbar","useSnackbar","showSnackbar","password","useRef","_useState","useState","_useState2","_slicedToArray2","setErrors","useEffect","t","setTimeout","current","value","clearTimeout","Query","query","GET_SETTINGS_QUERY","_ref","response","data","queryInProgress","loading","Mutation","mutation","SAVE_SETTINGS_MUTATION","update","result","_ref2","mailer","settings","settingsData","settingsError","mutationInProgress","onSubmit","_ref3","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","wrap","_callee$","_context","prev","next","variables","cache","_result$data","structuredClone","readQuery","_ref4","updateData","updateError","_objectSpread2","writeQuery","stop","_x","apply","arguments","_settingsError$data","CenteredView","SimpleFormHeader","Grid","style","backgroundColor","Cell","span","description","passwordValidators","user","push","validation","create","Form","_ref5","Bind","form","SimpleForm","CircularProgress","SimpleFormContent","name","validators","Input","label","autoComplete","inputRef","SimpleFormFooter","ButtonPrimary","onClick","ev","submit","exports"],"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","_interopRequireWildcard","require","_appAdmin","_reactComponents","_form","_SimpleForm","_Progress","_Grid","_Input","_validation","_Button","_graphql","_Alert","_dotPropImmutable","_interopRequireDefault","displayErrors","errors","default","createElement","Fragment","map","error","field","path","Alert","key","concat","title","message","type","Settings","_useSnackbar","useSnackbar","showSnackbar","password","useRef","_useState","useState","_useState2","_slicedToArray2","setErrors","useEffect","t","setTimeout","current","value","clearTimeout","Query","query","GET_SETTINGS_QUERY","_ref","response","data","queryInProgress","loading","Mutation","mutation","SAVE_SETTINGS_MUTATION","update","result","_ref2","mailer","settings","settingsData","settingsError","mutationInProgress","onSubmit","variables","cache","structuredClone","readQuery","_ref3","updateData","updateError","writeQuery","dotPropImmutable","set","_objectSpread2","CenteredView","SimpleFormHeader","Grid","style","backgroundColor","Cell","span","description","passwordValidators","user","push","validation","create","Form","_ref4","Bind","form","SimpleForm","CircularProgress","SimpleFormContent","name","validators","Input","label","autoComplete","inputRef","SimpleFormFooter","ButtonPrimary","onClick","ev","submit","exports"],"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 SAVE_SETTINGS_MUTATION,\n SaveSettingsMutationResponse,\n SaveSettingsMutationVariables,\n SettingsQueryResponse\n} from \"./graphql\";\nimport { TransportSettings, ValidationError } from \"~/types\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { Validator } from \"@webiny/validation/types\";\nimport dotPropImmutable from \"dot-prop-immutable\";\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 = () => {\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 <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-expect-error\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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"}