@gisce/react-ooui 1.2.0-rc.71 → 1.2.0-rc.73

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 +1 @@
1
- {"version":3,"file":"ActionErrorDialog.d.ts","sourceRoot":"","sources":["ActionErrorDialog.tsx"],"names":[],"mappings":"AAMA,QAAA,MAAM,UAAU,QAAS,MAAM,SAgC9B,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ActionErrorDialog.d.ts","sourceRoot":"","sources":["ActionErrorDialog.tsx"],"names":[],"mappings":"AAOA,QAAA,MAAM,UAAU,QAAS,MAAM,SAc9B,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export declare const ErrorAlert: ({ error, className, }: {
3
+ error: any;
4
+ className: string;
5
+ }) => JSX.Element;
6
+ //# sourceMappingURL=ErrorAlert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorAlert.d.ts","sourceRoot":"","sources":["ErrorAlert.tsx"],"names":[],"mappings":";AAKA,eAAO,MAAM,UAAU;WAId,GAAG;eACC,MAAM;iBA0BlB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetFactory.d.ts","sourceRoot":"","sources":["WidgetFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAuH1B,QAAA,MAAM,iBAAiB,UAAW,GAAG,+DAWpC,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"WidgetFactory.d.ts","sourceRoot":"","sources":["WidgetFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA0H1B,QAAA,MAAM,iBAAiB,UAAW,GAAG,+DAWpC,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { WidgetProps } from '../../types';
3
+ export declare const Markdown: (props: WidgetProps) => JSX.Element;
4
+ export declare const MarkdownInput: (props: any) => JSX.Element;
5
+ //# sourceMappingURL=Markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["Markdown.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEpC,eAAQ,MAAM,QAAQ,UAAW,WAAW,gBAM3C,CAAC;AAEF,eAAO,MAAM,aAAa,UAAW,GAAG,gBAKvC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["Form.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAkCf,OAAO,EAAE,QAAQ,EAAgB,MAAM,SAAS,CAAC;AAkBjD,oBAAY,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC9B,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACxE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB,CAAC;;AAq+BF,wBAAgC"}
1
+ {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["Form.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAkCf,OAAO,EAAE,QAAQ,EAAgB,MAAM,SAAS,CAAC;AAmBjD,oBAAY,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC9B,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACxE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB,CAAC;;AA+9BF,wBAAgC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gisce/react-ooui",
3
- "version": "1.2.0-rc.71",
3
+ "version": "1.2.0-rc.73",
4
4
  "files": [
5
5
  "dist",
6
6
  "src",
@@ -50,6 +50,7 @@
50
50
  "react-dom": "^17.0.1",
51
51
  "react-grid-layout": "^1.3.4",
52
52
  "react-hotkeys-hook": "^3.4.4",
53
+ "react-markdown": "^8.0.7",
53
54
  "react-measure": "^2.5.2",
54
55
  "use-deep-compare-effect": "^1.8.1",
55
56
  "validator": "^13.6.0"
@@ -78,15 +78,6 @@ function FormActionBar({ toolbar }: { toolbar: any }) {
78
78
  TabManagerContext
79
79
  ) as TabManagerContextType;
80
80
  const { openRelate, openDefaultActionForModel } = tabManagerContext || {};
81
- const prevFormIsSavingRef = useRef<boolean>(false);
82
-
83
- useEffect(() => {
84
- if (!formIsSaving && prevFormIsSavingRef.current) {
85
- message.success(t("savedRegisters"));
86
- }
87
-
88
- prevFormIsSavingRef.current = formIsSaving || false;
89
- }, [formIsSaving]);
90
81
 
91
82
  function tryRefresh(callback: any) {
92
83
  if (formHasChanges) {
@@ -0,0 +1,27 @@
1
+ export const parseError = (errorResponse: string) => {
2
+ let message;
3
+ let type;
4
+ let title;
5
+
6
+ if (
7
+ typeof errorResponse === "string" &&
8
+ errorResponse.indexOf(" -- ") !== -1 &&
9
+ errorResponse.indexOf("\n\n") !== -1
10
+ ) {
11
+ const splitted = errorResponse.split("\n\n");
12
+ message = splitted[1].replace(/\n/g, "<br />");
13
+ const args = splitted[0].split(" -- ");
14
+ type = args[0];
15
+ title = args[1];
16
+ } else {
17
+ message = errorResponse;
18
+ type = "error";
19
+ title = "Error";
20
+ }
21
+
22
+ return {
23
+ type,
24
+ message,
25
+ title,
26
+ };
27
+ };
package/src/index.ts CHANGED
@@ -39,6 +39,7 @@ import Dashboard from "@/widgets/views/Dashboard/Dashboard";
39
39
  import { Tags } from "@/widgets/custom/Tags";
40
40
  import { Tag } from "@/widgets/custom/Tag";
41
41
  import { MultiCheckbox } from "./widgets/custom/MultiCheckbox";
42
+ import { Markdown } from "@/widgets/custom/Markdown";
42
43
  import { Radio } from "@/widgets/custom/Radio";
43
44
  import { Switch } from "@/widgets/custom/Switch";
44
45
  import { Steps } from "@/widgets/custom/Steps";
@@ -148,6 +149,7 @@ export {
148
149
  Tags,
149
150
  Tag,
150
151
  MultiCheckbox,
152
+ Markdown,
151
153
  Radio,
152
154
  Switch,
153
155
  Steps,
@@ -0,0 +1,39 @@
1
+ import React from "react";
2
+ import { Markdown as MarkdownOOui } from "@gisce/ooui";
3
+ import "antd/dist/antd.css";
4
+ import LocaleProvider from "../../context/LocaleContext";
5
+ import { MarkdownInput } from "../../widgets/custom/Markdown";
6
+
7
+ export default {
8
+ title: "Components/Widgets/Custom/Markdown",
9
+ };
10
+
11
+
12
+ export const Default = (): React.ReactElement => {
13
+ const ooui = new MarkdownOOui({
14
+ name: "enabled",
15
+ string: "Lorem ipsum",
16
+ });
17
+
18
+ const markdown = `A paragraph with *emphasis* and **strong importance**.
19
+
20
+ > A block quote with ~strikethrough~ and a URL: https://reactjs.org.
21
+
22
+ ## Header 2
23
+
24
+ * Lists
25
+ * [ ] todo
26
+ * [x] done
27
+
28
+ A table:
29
+
30
+ | a | b |
31
+ | - | - |
32
+ `
33
+
34
+ return (
35
+ <LocaleProvider lang="en_US">
36
+ <MarkdownInput ooui={ooui} value={markdown} />
37
+ </LocaleProvider>
38
+ );
39
+ };
@@ -11,7 +11,7 @@ export default {
11
11
  "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\n2Q==\n",
12
12
  name: "GISCE-TI",
13
13
  overdue_msg:
14
- "Would your payment have been carried out after this mail was sent, please consider the present one as void. Do not hesitate to contact our accounting department",
14
+ "# Title\n **Would your payment have been carried** out after this mail was sent, please consider the present one as void. Do not hesitate to contact our accounting department",
15
15
  parent_id: false,
16
16
  partner_id: [1, "Tiny sprl"],
17
17
  rml_footer1:
@@ -27,7 +27,7 @@ export default {
27
27
  tree: {},
28
28
  form: {
29
29
  arch:
30
- '<form string="Company">\n <field colspan="4" name="name" select="1"/>\n <field name="partner_id" select="1"/>\n <field name="parent_id" select="1"/>\n <notebook colspan="4">\n <page string="General Information">\n <field name="rml_header1"/>\n <field name="rml_footer1"/>\n <field name="rml_footer2"/>\n <field name="currency_id"/>\n <separator colspan="4" string="Your Logo - Use a size of about 450x150 pixels."/>\n <field colspan="4" name="logo" widget="image"/>\n </page>\n <page string="Header/Footer">\n <field colspan="4" name="rml_header" nolabel="1"/>\n </page>\n <page string="Internal Header/Footer">\n <field colspan="4" name="rml_header2" nolabel="1"/>\n </page>\n <page string="Configuration">\n </page>\n <page string="Overdue Payments" position="inside">\n <separator string="Overdue Payments Message" colspan="4"/>\n <field name="overdue_msg" nolabel="1" colspan="4"/>\n </page>\n <page string="webkit Headers">\n <field name="lib_path" colspan="4"/>\n <separator string="Images"/>\n <field name="header_image" colspan="4" nolabel="1"/>\n <separator string="Headers"/>\n <field name="header_webkit" colspan="4" nolabel="1"/>\n </page>\n </notebook>\n <field name="codi_r2"/>\n <field name="codi_r2"/>\n </form>',
30
+ '<form string="Company">\n <field colspan="4" name="name" select="1"/>\n <field name="partner_id" select="1"/>\n <field name="parent_id" select="1"/>\n <notebook colspan="4">\n <page string="General Information">\n <field name="rml_header1"/>\n <field name="rml_footer1"/>\n <field name="rml_footer2"/>\n <field name="currency_id"/>\n <separator colspan="4" string="Your Logo - Use a size of about 450x150 pixels."/>\n <field colspan="4" name="logo" widget="image"/>\n </page>\n <page string="Header/Footer">\n <field colspan="4" name="rml_header" nolabel="1"/>\n </page>\n <page string="Internal Header/Footer">\n <field colspan="4" name="rml_header2" nolabel="1"/>\n </page>\n <page string="Configuration">\n </page>\n <page string="Overdue Payments" position="inside">\n <separator string="Overdue Payments Message" colspan="4"/>\n <field name="overdue_msg" nolabel="1" colspan="4" widget="markdown"/>\n </page>\n <page string="webkit Headers">\n <field name="lib_path" colspan="4"/>\n <separator string="Images"/>\n <field name="header_image" colspan="4" nolabel="1"/>\n <separator string="Headers"/>\n <field name="header_webkit" colspan="4" nolabel="1"/>\n </page>\n </notebook>\n <field name="codi_r2"/>\n <field name="codi_r2"/>\n </form>',
31
31
  field_parent: false,
32
32
  fields: {
33
33
  codi_r2: {
@@ -1,38 +1,21 @@
1
1
  import React from "react";
2
2
  import { Modal } from "antd";
3
3
  import { ExclamationCircleOutlined, WarningOutlined } from "@ant-design/icons";
4
+ import { parseError } from "@/helpers/errorHelper";
4
5
 
5
6
  const { error, warning } = Modal;
6
7
 
7
8
  const showDialog = (err: string) => {
8
- let message;
9
- let type;
10
- let title;
9
+ const { message, type, title } = parseError(err);
11
10
 
12
- if (
13
- typeof err === "string" &&
14
- err.indexOf(" -- ") !== -1 &&
15
- err.indexOf("\n\n") !== -1
16
- ) {
17
- const splitted = err.split("\n\n");
18
- message = splitted[1];
19
- const args = splitted[0].split(" -- ");
20
- type = args[0];
21
- title = args[1];
22
- } else {
23
- message = err;
24
- type = "error";
25
- title = "Error";
26
- }
27
-
28
- const icon =
11
+ const iconComponent =
29
12
  type === "error" ? <ExclamationCircleOutlined /> : <WarningOutlined />;
30
13
 
31
14
  const modalType = type === "error" ? error : warning;
32
15
 
33
16
  modalType({
34
17
  title,
35
- icon,
18
+ icon: iconComponent,
36
19
  centered: true,
37
20
  content: message,
38
21
  });
@@ -0,0 +1,37 @@
1
+ import { parseError } from "@/helpers/errorHelper";
2
+ import { Alert } from "antd";
3
+ import React from "react";
4
+ import { Interweave } from "interweave";
5
+
6
+ export const ErrorAlert = ({
7
+ error,
8
+ className,
9
+ }: {
10
+ error: any;
11
+ className: string;
12
+ }) => {
13
+ let messageContent;
14
+ let messageType = "error";
15
+
16
+ if (
17
+ typeof error === "string" &&
18
+ error.indexOf(" -- ") !== -1 &&
19
+ error.indexOf("\n\n") !== -1
20
+ ) {
21
+ const { message, type, title } = parseError(error);
22
+ messageContent = <Interweave content={`${title}<br />${message}`} />;
23
+ messageType = type;
24
+ } else {
25
+ messageContent = error.message
26
+ ? JSON.stringify(error.message)
27
+ : JSON.stringify(error);
28
+ }
29
+ return (
30
+ <Alert
31
+ className={className}
32
+ message={messageContent}
33
+ type={messageType as any}
34
+ banner
35
+ />
36
+ );
37
+ };
@@ -26,6 +26,7 @@ import {
26
26
  FloatTime,
27
27
  ProgressBar,
28
28
  MultiCheckbox,
29
+ Markdown,
29
30
  Radio,
30
31
  Switch,
31
32
  Steps,
@@ -104,6 +105,8 @@ const getWidgetType = (type: string) => {
104
105
  return Tag;
105
106
  case "multicheckbox":
106
107
  return MultiCheckbox;
108
+ case "markdown":
109
+ return Markdown;
107
110
  case "radio":
108
111
  return Radio;
109
112
  case "switch":
@@ -0,0 +1,19 @@
1
+ import Field from "@/common/Field";
2
+ import ReactMarkdown from "react-markdown";
3
+ import React from "react";
4
+ import {WidgetProps} from "@/types";
5
+
6
+ export const Markdown = (props: WidgetProps) => {
7
+ return (
8
+ <Field {...props}>
9
+ <MarkdownInput {...props} />
10
+ </Field>
11
+ );
12
+ };
13
+
14
+ export const MarkdownInput = (props: any) => {
15
+ const {value} = props;
16
+ return (
17
+ <ReactMarkdown children={value}/>
18
+ )
19
+ }
@@ -56,6 +56,7 @@ import {
56
56
  } from "@/context/ContentRootContext";
57
57
  import { LocaleContext, LocaleContextType } from "@/context/LocaleContext";
58
58
  import { convertToPlain2ManyValues } from "@/helpers/one2manyHelper";
59
+ import { ErrorAlert } from "@/ui/ErrorAlert";
59
60
 
60
61
  export type FormProps = {
61
62
  model: string;
@@ -632,6 +633,7 @@ function Form(props: FormProps, ref: any) {
632
633
 
633
634
  await fetchValues();
634
635
  submitSucceed = true;
636
+ message.success(t("savedRegisters"));
635
637
  } catch (err) {
636
638
  formSubmitting.current = false;
637
639
  setIsSubmitting(false);
@@ -1060,14 +1062,7 @@ function Form(props: FormProps, ref: any) {
1060
1062
  >
1061
1063
  {({ measureRef }) => (
1062
1064
  <div className="pb-2" ref={measureRef}>
1063
- {error && (
1064
- <Alert
1065
- className="mt-10 mb-20"
1066
- message={JSON.stringify(error)}
1067
- type="error"
1068
- banner
1069
- />
1070
- )}
1065
+ {error && <ErrorAlert className="mt-10 mb-20" error={error} />}
1071
1066
  {content()}
1072
1067
  {showFooter && footer()}
1073
1068
  </div>