@jswork/react-ant-resource-form 1.0.1 → 1.0.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/dist/main.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var w=Object.defineProperty;var _=Object.getOwnPropertySymbols;var B=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable;var $=(t,a,e)=>a in t?w(t,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[a]=e,o=(t,a)=>{for(var e in a||(a={}))B.call(a,e)&&$(t,e,a[e]);if(_)for(var e of _(a))L.call(a,e)&&$(t,e,a[e]);return t};var n=(t,a)=>w(t,"name",{value:a,configurable:!0});var E=(t,a)=>{var e={};for(var s in t)B.call(t,s)&&a.indexOf(s)<0&&(e[s]=t[s]);if(t!=null&&_)for(var s of _(t))a.indexOf(s)<0&&L.call(t,s)&&(e[s]=t[s]);return e};var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);var _react = require('react'); var _react2 = _interopRequireDefault(_react);var _antd = require('antd');var _reactantformschema = require('@jswork/react-ant-form-schema'); var _reactantformschema2 = _interopRequireDefault(_reactantformschema);var _icons = require('@ant-design/icons');var O="react-ant-resource-form",D={"zh-CN":{submit:"\u63D0\u4EA4",back:"\u8FD4\u56DE"},"en-US":{submit:"Submit",back:"Back"}},G={lang:"zh-CN"},H=n(t=>{let l=o(o({},G),t),{className:a,meta:e,children:s,lang:d,title:p,loading:R,extra:y,size:S}=l,A=E(l,["className","meta","children","lang","title","loading","extra","size"]),i=n(f=>D[d][f],"t"),m=n(()=>history.back(),"handleBack"),g=y||_react2.default.createElement(_antd.Button,{size:"small",icon:_react2.default.createElement(_icons.ArrowLeftOutlined,null),onClick:m},i("back")),F=s||_react2.default.createElement(_antd.Space,null,_react2.default.createElement(_antd.Button,{htmlType:"submit",type:"primary",icon:_react2.default.createElement(_icons.SaveOutlined,null)},i("submit")),_react2.default.createElement(_antd.Button,{icon:_react2.default.createElement(_icons.ArrowLeftOutlined,null),onClick:m},i("back")));return _react2.default.createElement(_antd.Card,{title:p,size:S,loading:R,"data-component":O,className:_classnames2.default.call(void 0, O,a),extra:g},_react2.default.createElement(_reactantformschema2.default,o({meta:e},A),F))},"ReactAntResourceForm"),x= exports.ReactAntResourceForm =H;var _next = require('@jswork/next'); var _next2 = _interopRequireDefault(_next);var W={"zh-CN":{create_success:"\u521B\u5EFA\u6210\u529F",update_success:"\u66F4\u65B0\u6210\u529F"},"en-US":{create_success:"Create success",update_success:"Update success"}},X={lang:"zh-CN"},Y=n(t=>{let N=o(o({},X),t),{name:a,params:e,lang:s,onRequest:d,onResponse:p}=N,R=E(N,["name","params","lang","onRequest","onResponse"]),y=`${a}_update`,S=`${a}_create`,A=`${a}_show`,[i]=_antd.Form.useForm(),m=!!(e!=null&&e.id),g=n(c=>W[s][c],"t"),[F,l]=_react.useState.call(void 0, !1),f=n(c=>(l(!0),(d==null?void 0:d(c))||c),"handleStateRequest"),b=n(c=>{p==null||p(c),l(!1)},"handleStateResponse"),M=n(c=>{if(m){let h=o({id:e.id},c),u=f({stage:"update",payload:h});_next2.default.$api[y](u).then(C=>{_antd.message.success(g("update_success")),b({stage:"update",data:C})}).finally(()=>l(!1))}else{let h=o({},c),u=f({stage:"create",payload:h});_next2.default.$api[S](u).then(C=>{_antd.message.success(g("create_success")),b({stage:"create",data:C})}).finally(()=>l(!1))}},"handleFinish");return _react.useEffect.call(void 0, ()=>{if(m){let c={id:e.id},h=f({stage:"update",payload:c});_next2.default.$api[A](h).then(u=>{i.setFieldsValue(u),b({stage:"show",data:u})}).finally(()=>l(!1))}},[m]),_react2.default.createElement(x,o({loading:F,form:i,onFinish:M},R))},"ReactAntResourceFormApi"),Z= exports.ReactAntResourceFormApi =Y;exports.ReactAntResourceForm = x; exports.ReactAntResourceFormApi = Z;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var U=Object.defineProperty;var E=Object.getOwnPropertySymbols;var L=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var B=(t,a,e)=>a in t?U(t,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[a]=e,s=(t,a)=>{for(var e in a||(a={}))L.call(a,e)&&B(t,e,a[e]);if(E)for(var e of E(a))P.call(a,e)&&B(t,e,a[e]);return t};var r=(t,a)=>U(t,"name",{value:a,configurable:!0});var y=(t,a)=>{var e={};for(var c in t)L.call(t,c)&&a.indexOf(c)<0&&(e[c]=t[c]);if(t!=null&&E)for(var c of E(t))a.indexOf(c)<0&&P.call(t,c)&&(e[c]=t[c]);return e};var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);var _react = require('react'); var _react2 = _interopRequireDefault(_react);var _antd = require('antd');var _reactantformschema = require('@jswork/react-ant-form-schema'); var _reactantformschema2 = _interopRequireDefault(_reactantformschema);var _icons = require('@ant-design/icons');var v="react-ant-resource-form",H={"zh-CN":{submit:"\u63D0\u4EA4",back:"\u8FD4\u56DE"},"en-US":{submit:"Submit",back:"Back"}},I={lang:"zh-CN"},J=r(t=>{let k=s(s({},I),t),{className:a,meta:e,children:c,lang:p,title:f,loading:R,extra:S,size:b,okText:x,backText:h,okProps:m,backProps:n}=k,C=y(k,["className","meta","children","lang","title","loading","extra","size","okText","backText","okProps","backProps"]),l=r(F=>H[p][F],"t"),u=r(()=>history.back(),"handleBack"),_=S||_react2.default.createElement(_antd.Button,s({size:"small",icon:_react2.default.createElement(_icons.ArrowLeftOutlined,null),onClick:u},n),h||l("back")),A=c||_react2.default.createElement(_antd.Space,null,_react2.default.createElement(_antd.Button,s({htmlType:"submit",type:"primary",icon:_react2.default.createElement(_icons.SaveOutlined,null)},m),x||l("submit")),_react2.default.createElement(_antd.Button,s({icon:_react2.default.createElement(_icons.ArrowLeftOutlined,null),onClick:u},n),h||l("back")));return _react2.default.createElement(_antd.Card,{title:f,size:b,loading:R,"data-component":v,className:_classnames2.default.call(void 0, v,a),extra:_},_react2.default.createElement(_reactantformschema2.default,s({meta:e},C),A))},"ReactAntResourceForm"),$= exports.ReactAntResourceForm =J;var _next = require('@jswork/next'); var _next2 = _interopRequireDefault(_next);var Y={"zh-CN":{create:"\u521B\u5EFA",update:"\u4FDD\u5B58",create_title:"\u521B\u5EFA",update_title:"\u66F4\u65B0",create_success:"\u521B\u5EFA\u6210\u529F",update_success:"\u66F4\u65B0\u6210\u529F"},"en-US":{create:"Create",update:"Save",create_title:"Create",update_title:"Update",create_success:"Create success",update_success:"Update success"}},Z={lang:"zh-CN"},ee=r(t=>{let T=s(s({},Z),t),{name:a,params:e,lang:c,onRequest:p,onResponse:f}=T,R=y(T,["name","params","lang","onRequest","onResponse"]),S=`${a}_update`,b=`${a}_create`,x=`${a}_show`,[h]=_antd.Form.useForm(),m=!!(e!=null&&e.id),n=r(o=>Y[c][o],"t"),[C,l]=_react.useState.call(void 0, !1),u=r(o=>(l(!0),(p==null?void 0:p(o))||o.payload),"handleStateRequest"),_=r(o=>{f==null||f(o),l(!1)},"handleStateResponse"),A=r(o=>{if(m){let g=s({id:e.id},o),d=u({stage:"update",payload:g});_next2.default.$api[S](d).then(z=>{_antd.message.success(n("update_success")),_({stage:"update",data:z})}).finally(()=>l(!1))}else{let g=s({},o),d=u({stage:"create",payload:g});_next2.default.$api[b](d).then(z=>{_antd.message.success(n("create_success")),_({stage:"create",data:z})}).finally(()=>l(!1))}},"handleFinish");_react.useEffect.call(void 0, ()=>{if(m){let o={id:e.id},g=u({stage:"show",payload:o});_next2.default.$api[x](g).then(d=>{h.setFieldsValue(d),_({stage:"show",data:d})}).finally(()=>l(!1))}},[m]);let k=n(m?"update":"create"),F=n(m?"update_title":"create_title");return _react2.default.createElement($,s({loading:C,form:h,onFinish:A,okText:k,title:F},R))},"ReactAntResourceFormApi"),te= exports.ReactAntResourceFormApi =ee;exports.ReactAntResourceForm = $; exports.ReactAntResourceFormApi = te;
2
2
  //# sourceMappingURL=main.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/ap7/github/react-ant-resource-form/packages/lib/dist/main.cjs.js","../src/index.tsx","../src/api.tsx"],"names":["CLASS_NAME","locales","submit","back","defaultProps","lang","ReactAntResourceForm","__name","props","_a","__spreadValues","className","meta","children","title","loading","extra","size","rest","t","key","handleBack","history","_extra","React","Button","icon","ArrowLeftOutlined","onClick","_children","Space","htmlType","type","SaveOutlined","Card","data-component","cx","ReactAntdFormSchema","index_default","create_success","update_success","ReactAntResourceFormApi","name","params","onRequest","onResponse","resourceEdit"],"mappings":"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","file":"/Users/ap7/github/react-ant-resource-form/packages/lib/dist/main.cjs.js","sourcesContent":[null,"// import noop from '@jswork/noop';\nimport cx from 'classnames';\nimport React, { FC } from 'react';\nimport { Button, Card, CardProps, Space } from 'antd';\nimport ReactAntdFormSchema, { ReactAntdFormSchemaProps } from '@jswork/react-ant-form-schema';\nimport { ArrowLeftOutlined, SaveOutlined } from '@ant-design/icons';\n\nexport type ReactAntResourceFormProps = {\n lang?: string;\n loading?: boolean;\n size?: CardProps['size'];\n extra?: CardProps['extra'];\n title?: CardProps['title'];\n} & ReactAntdFormSchemaProps;\n\nconst CLASS_NAME = 'react-ant-resource-form';\nconst locales = {\n 'zh-CN': {\n submit: '提交',\n back: '返回',\n },\n 'en-US': {\n submit: 'Submit',\n back: 'Back',\n },\n};\n\nconst defaultProps = {\n lang: 'zh-CN',\n};\n\nconst ReactAntResourceForm: FC<ReactAntResourceFormProps> = (props) => {\n const { className, meta, children, lang, title, loading, extra, size, ...rest } = {\n ...defaultProps,\n ...props,\n };\n const t = (key: string) => locales[lang][key];\n const handleBack = () => history.back();\n const _extra = extra || (\n <Button size=\"small\" icon={<ArrowLeftOutlined />} onClick={handleBack}>\n {t('back')}\n </Button>\n );\n const _children = children || (\n <Space>\n <Button htmlType=\"submit\" type=\"primary\" icon={<SaveOutlined />}>\n {t('submit')}\n </Button>\n <Button icon={<ArrowLeftOutlined />} onClick={handleBack}>\n {t('back')}\n </Button>\n </Space>\n );\n\n return (\n <Card\n title={title}\n size={size}\n loading={loading}\n data-component={CLASS_NAME}\n className={cx(CLASS_NAME, className)}\n extra={_extra}>\n <ReactAntdFormSchema meta={meta} {...rest}>\n {_children}\n </ReactAntdFormSchema>\n </Card>\n );\n};\n\nexport default ReactAntResourceForm;\n","import React, { FC, useEffect, useState } from 'react';\nimport ReactAntResourceForm, { ReactAntResourceFormProps } from '.';\nimport { Form, message } from 'antd';\nimport nx from '@jswork/next';\n\ndeclare global {\n interface NxStatic {\n $api: Record<string, any>;\n }\n}\n\ntype StagePayload = {\n stage: 'show' | 'create' | 'update';\n payload: any;\n};\n\ntype StageData = {\n stage: 'show' | 'create' | 'update';\n data: any;\n};\n\nexport type ReactAntResourceFormApiProps = ReactAntResourceFormProps & {\n lang?: string;\n params?: Record<string, any>;\n onRequest?: (payload: StagePayload) => any;\n onResponse?: (res: StageData) => void;\n};\n\nconst locales = {\n 'zh-CN': {\n create_success: '创建成功',\n update_success: '更新成功',\n },\n 'en-US': {\n create_success: 'Create success',\n update_success: 'Update success',\n },\n};\n\nconst defaultProps = {\n lang: 'zh-CN',\n};\n\nconst ReactAntResourceFormApi: FC<ReactAntResourceFormApiProps> = (props) => {\n const { name, params, lang, onRequest, onResponse, ...rest } = {\n ...defaultProps,\n ...props,\n };\n\n const resourceEdit = `${name}_update`;\n const resourceCreate = `${name}_create`;\n const resourceShow = `${name}_show`;\n const [form] = Form.useForm();\n const isEdit = Boolean(params?.id);\n const t = (key: string) => locales[lang!][key];\n const [loading, setLoading] = useState(false);\n const handleStateRequest = (payload: StagePayload) => {\n setLoading(true);\n return onRequest?.(payload) || payload;\n };\n const handleStateResponse = (res: StageData) => {\n onResponse?.(res);\n setLoading(false);\n };\n\n const handleFinish = (values) => {\n if (isEdit) {\n const payload = { id: params!.id, ...values };\n const _payload = handleStateRequest({ stage: 'update', payload });\n\n nx.$api[resourceEdit](_payload)\n .then((res) => {\n message.success(t('update_success'));\n handleStateResponse({ stage: 'update', data: res });\n })\n .finally(() => setLoading(false));\n } else {\n const payload = { ...values };\n const _payload = handleStateRequest({ stage: 'create', payload });\n\n nx.$api[resourceCreate](_payload)\n .then((res) => {\n message.success(t('create_success'));\n handleStateResponse({ stage: 'create', data: res });\n })\n .finally(() => setLoading(false));\n }\n };\n\n // init detail\n useEffect(() => {\n if (isEdit) {\n const payload = { id: params!.id };\n const _payload = handleStateRequest({ stage: 'update', payload });\n nx.$api[resourceShow](_payload)\n .then((res) => {\n form.setFieldsValue(res);\n handleStateResponse({ stage: 'show', data: res });\n })\n .finally(() => setLoading(false));\n }\n }, [isEdit]);\n\n return <ReactAntResourceForm loading={loading} form={form} onFinish={handleFinish} {...rest} />;\n};\n\nexport default ReactAntResourceFormApi;\n"]}
1
+ {"version":3,"sources":["/Users/aric/github/react-ant-resource-form/packages/lib/dist/main.cjs.js","../src/index.tsx","../src/api.tsx"],"names":["CLASS_NAME","locales","submit","back","defaultProps","lang","ReactAntResourceForm","__name","props","_a","__spreadValues","className","meta","children","title","loading","extra","size","okText","backText","okProps","backProps","rest","t","key","handleBack","history","_extra","React","Button","icon","ArrowLeftOutlined","onClick","_children","Space","htmlType","type","SaveOutlined","Card","data-component","cx","ReactAntdFormSchema","index_default","create","update","create_title","update_title","create_success","update_success","ReactAntResourceFormApi","name","params","onRequest","onResponse","resourceEdit"],"mappings":"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","file":"/Users/aric/github/react-ant-resource-form/packages/lib/dist/main.cjs.js","sourcesContent":[null,"// import noop from '@jswork/noop';\nimport cx from 'classnames';\nimport React, { FC } from 'react';\nimport { Button, ButtonProps, Card, CardProps, Space } from 'antd';\nimport ReactAntdFormSchema, { ReactAntdFormSchemaProps } from '@jswork/react-ant-form-schema';\nimport { ArrowLeftOutlined, SaveOutlined } from '@ant-design/icons';\n\nexport type ReactAntResourceFormProps = {\n lang?: string;\n loading?: boolean;\n okText?: string;\n backText?: string;\n okProps?: ButtonProps;\n backProps?: ButtonProps;\n size?: CardProps['size'];\n extra?: CardProps['extra'];\n title?: CardProps['title'];\n} & ReactAntdFormSchemaProps;\n\nconst CLASS_NAME = 'react-ant-resource-form';\nconst locales = {\n 'zh-CN': {\n submit: '提交',\n back: '返回',\n },\n 'en-US': {\n submit: 'Submit',\n back: 'Back',\n },\n};\n\nconst defaultProps = {\n lang: 'zh-CN',\n};\n\nconst ReactAntResourceForm: FC<ReactAntResourceFormProps> = (props) => {\n const {\n className,\n meta,\n children,\n lang,\n title,\n loading,\n extra,\n size,\n okText,\n backText,\n okProps,\n backProps,\n ...rest\n } = {\n ...defaultProps,\n ...props,\n };\n const t = (key: string) => locales[lang][key];\n const handleBack = () => history.back();\n const _extra = extra || (\n <Button size=\"small\" icon={<ArrowLeftOutlined />} onClick={handleBack} {...backProps}>\n {backText || t('back')}\n </Button>\n );\n const _children = children || (\n <Space>\n <Button htmlType=\"submit\" type=\"primary\" icon={<SaveOutlined />} {...okProps}>\n {okText || t('submit')}\n </Button>\n <Button icon={<ArrowLeftOutlined />} onClick={handleBack} {...backProps}>\n {backText || t('back')}\n </Button>\n </Space>\n );\n\n return (\n <Card\n title={title}\n size={size}\n loading={loading}\n data-component={CLASS_NAME}\n className={cx(CLASS_NAME, className)}\n extra={_extra}>\n <ReactAntdFormSchema meta={meta} {...rest}>\n {_children}\n </ReactAntdFormSchema>\n </Card>\n );\n};\n\nexport default ReactAntResourceForm;\n","import React, { FC, useEffect, useState } from 'react';\nimport ReactAntResourceForm, { ReactAntResourceFormProps } from '.';\nimport { Form, message } from 'antd';\nimport nx from '@jswork/next';\n\ndeclare global {\n interface NxStatic {\n $api: Record<string, any>;\n }\n}\n\ntype StagePayload = {\n stage: 'show' | 'create' | 'update';\n payload: any;\n};\n\ntype StageData = {\n stage: 'show' | 'create' | 'update';\n data: any;\n};\n\nexport type ReactAntResourceFormApiProps = ReactAntResourceFormProps & {\n lang?: string;\n params?: Record<string, any>;\n onRequest?: (payload: StagePayload) => any;\n onResponse?: (res: StageData) => void;\n};\n\nconst locales = {\n 'zh-CN': {\n create: '创建',\n update: '保存',\n create_title: '创建',\n update_title: '更新',\n create_success: '创建成功',\n update_success: '更新成功',\n },\n 'en-US': {\n create: 'Create',\n update: 'Save',\n create_title: 'Create',\n update_title: 'Update',\n create_success: 'Create success',\n update_success: 'Update success',\n },\n};\n\nconst defaultProps = {\n lang: 'zh-CN',\n};\n\nconst ReactAntResourceFormApi: FC<ReactAntResourceFormApiProps> = (props) => {\n const { name, params, lang, onRequest, onResponse, ...rest } = {\n ...defaultProps,\n ...props,\n };\n\n const resourceEdit = `${name}_update`;\n const resourceCreate = `${name}_create`;\n const resourceShow = `${name}_show`;\n const [form] = Form.useForm();\n const isEdit = Boolean(params?.id);\n const t = (key: string) => locales[lang!][key];\n const [loading, setLoading] = useState(false);\n const handleStateRequest = (stagePayload: StagePayload) => {\n setLoading(true);\n return onRequest?.(stagePayload) || stagePayload.payload;\n };\n const handleStateResponse = (res: StageData) => {\n onResponse?.(res);\n setLoading(false);\n };\n\n const handleFinish = (values) => {\n if (isEdit) {\n const payload = { id: params!.id, ...values };\n const _payload = handleStateRequest({ stage: 'update', payload });\n\n nx.$api[resourceEdit](_payload)\n .then((res) => {\n message.success(t('update_success'));\n handleStateResponse({ stage: 'update', data: res });\n })\n .finally(() => setLoading(false));\n } else {\n const payload = { ...values };\n const _payload = handleStateRequest({ stage: 'create', payload });\n\n nx.$api[resourceCreate](_payload)\n .then((res) => {\n message.success(t('create_success'));\n handleStateResponse({ stage: 'create', data: res });\n })\n .finally(() => setLoading(false));\n }\n };\n\n // init detail\n useEffect(() => {\n if (isEdit) {\n const payload = { id: params!.id };\n const _payload = handleStateRequest({ stage: 'show', payload });\n nx.$api[resourceShow](_payload)\n .then((res) => {\n form.setFieldsValue(res);\n handleStateResponse({ stage: 'show', data: res });\n })\n .finally(() => setLoading(false));\n }\n }, [isEdit]);\n\n const okText = isEdit ? t('update') : t('create');\n const title = isEdit ? t('update_title') : t('create_title');\n\n return (\n <ReactAntResourceForm\n loading={loading}\n form={form}\n onFinish={handleFinish}\n okText={okText}\n title={title}\n {...rest}\n />\n );\n};\n\nexport default ReactAntResourceFormApi;\n"]}
package/dist/main.d.mts CHANGED
@@ -1,10 +1,14 @@
1
1
  import { FC } from 'react';
2
- import { CardProps } from 'antd';
2
+ import { ButtonProps, CardProps } from 'antd';
3
3
  import { ReactAntdFormSchemaProps } from '@jswork/react-ant-form-schema';
4
4
 
5
5
  type ReactAntResourceFormProps = {
6
6
  lang?: string;
7
7
  loading?: boolean;
8
+ okText?: string;
9
+ backText?: string;
10
+ okProps?: ButtonProps;
11
+ backProps?: ButtonProps;
8
12
  size?: CardProps['size'];
9
13
  extra?: CardProps['extra'];
10
14
  title?: CardProps['title'];
package/dist/main.d.ts CHANGED
@@ -1,10 +1,14 @@
1
1
  import { FC } from 'react';
2
- import { CardProps } from 'antd';
2
+ import { ButtonProps, CardProps } from 'antd';
3
3
  import { ReactAntdFormSchemaProps } from '@jswork/react-ant-form-schema';
4
4
 
5
5
  type ReactAntResourceFormProps = {
6
6
  lang?: string;
7
7
  loading?: boolean;
8
+ okText?: string;
9
+ backText?: string;
10
+ okProps?: ButtonProps;
11
+ backProps?: ButtonProps;
8
12
  size?: CardProps['size'];
9
13
  extra?: CardProps['extra'];
10
14
  title?: CardProps['title'];
package/dist/main.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- var w=Object.defineProperty;var _=Object.getOwnPropertySymbols;var B=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable;var $=(t,a,e)=>a in t?w(t,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[a]=e,o=(t,a)=>{for(var e in a||(a={}))B.call(a,e)&&$(t,e,a[e]);if(_)for(var e of _(a))L.call(a,e)&&$(t,e,a[e]);return t};var n=(t,a)=>w(t,"name",{value:a,configurable:!0});var E=(t,a)=>{var e={};for(var s in t)B.call(t,s)&&a.indexOf(s)<0&&(e[s]=t[s]);if(t!=null&&_)for(var s of _(t))a.indexOf(s)<0&&L.call(t,s)&&(e[s]=t[s]);return e};import T from"classnames";import r from"react";import{Button as k,Card as V,Space as j}from"antd";import q from"@jswork/react-ant-form-schema";import{ArrowLeftOutlined as U,SaveOutlined as v}from"@ant-design/icons";var O="react-ant-resource-form",D={"zh-CN":{submit:"\u63D0\u4EA4",back:"\u8FD4\u56DE"},"en-US":{submit:"Submit",back:"Back"}},G={lang:"zh-CN"},H=n(t=>{let l=o(o({},G),t),{className:a,meta:e,children:s,lang:d,title:p,loading:R,extra:y,size:S}=l,A=E(l,["className","meta","children","lang","title","loading","extra","size"]),i=n(f=>D[d][f],"t"),m=n(()=>history.back(),"handleBack"),g=y||r.createElement(k,{size:"small",icon:r.createElement(U,null),onClick:m},i("back")),F=s||r.createElement(j,null,r.createElement(k,{htmlType:"submit",type:"primary",icon:r.createElement(v,null)},i("submit")),r.createElement(k,{icon:r.createElement(U,null),onClick:m},i("back")));return r.createElement(V,{title:p,size:S,loading:R,"data-component":O,className:T(O,a),extra:g},r.createElement(q,o({meta:e},A),F))},"ReactAntResourceForm"),x=H;import I,{useEffect as J,useState as K}from"react";import{Form as Q,message as P}from"antd";import z from"@jswork/next";var W={"zh-CN":{create_success:"\u521B\u5EFA\u6210\u529F",update_success:"\u66F4\u65B0\u6210\u529F"},"en-US":{create_success:"Create success",update_success:"Update success"}},X={lang:"zh-CN"},Y=n(t=>{let N=o(o({},X),t),{name:a,params:e,lang:s,onRequest:d,onResponse:p}=N,R=E(N,["name","params","lang","onRequest","onResponse"]),y=`${a}_update`,S=`${a}_create`,A=`${a}_show`,[i]=Q.useForm(),m=!!(e!=null&&e.id),g=n(c=>W[s][c],"t"),[F,l]=K(!1),f=n(c=>(l(!0),(d==null?void 0:d(c))||c),"handleStateRequest"),b=n(c=>{p==null||p(c),l(!1)},"handleStateResponse"),M=n(c=>{if(m){let h=o({id:e.id},c),u=f({stage:"update",payload:h});z.$api[y](u).then(C=>{P.success(g("update_success")),b({stage:"update",data:C})}).finally(()=>l(!1))}else{let h=o({},c),u=f({stage:"create",payload:h});z.$api[S](u).then(C=>{P.success(g("create_success")),b({stage:"create",data:C})}).finally(()=>l(!1))}},"handleFinish");return J(()=>{if(m){let c={id:e.id},h=f({stage:"update",payload:c});z.$api[A](h).then(u=>{i.setFieldsValue(u),b({stage:"show",data:u})}).finally(()=>l(!1))}},[m]),I.createElement(x,o({loading:F,form:i,onFinish:M},R))},"ReactAntResourceFormApi"),Z=Y;export{x as ReactAntResourceForm,Z as ReactAntResourceFormApi};
1
+ var U=Object.defineProperty;var E=Object.getOwnPropertySymbols;var L=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var B=(t,a,e)=>a in t?U(t,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[a]=e,s=(t,a)=>{for(var e in a||(a={}))L.call(a,e)&&B(t,e,a[e]);if(E)for(var e of E(a))P.call(a,e)&&B(t,e,a[e]);return t};var r=(t,a)=>U(t,"name",{value:a,configurable:!0});var y=(t,a)=>{var e={};for(var c in t)L.call(t,c)&&a.indexOf(c)<0&&(e[c]=t[c]);if(t!=null&&E)for(var c of E(t))a.indexOf(c)<0&&P.call(t,c)&&(e[c]=t[c]);return e};import V from"classnames";import i from"react";import{Button as N,Card as j,Space as q}from"antd";import D from"@jswork/react-ant-form-schema";import{ArrowLeftOutlined as O,SaveOutlined as G}from"@ant-design/icons";var v="react-ant-resource-form",H={"zh-CN":{submit:"\u63D0\u4EA4",back:"\u8FD4\u56DE"},"en-US":{submit:"Submit",back:"Back"}},I={lang:"zh-CN"},J=r(t=>{let k=s(s({},I),t),{className:a,meta:e,children:c,lang:p,title:f,loading:R,extra:S,size:b,okText:x,backText:h,okProps:m,backProps:n}=k,C=y(k,["className","meta","children","lang","title","loading","extra","size","okText","backText","okProps","backProps"]),l=r(F=>H[p][F],"t"),u=r(()=>history.back(),"handleBack"),_=S||i.createElement(N,s({size:"small",icon:i.createElement(O,null),onClick:u},n),h||l("back")),A=c||i.createElement(q,null,i.createElement(N,s({htmlType:"submit",type:"primary",icon:i.createElement(G,null)},m),x||l("submit")),i.createElement(N,s({icon:i.createElement(O,null),onClick:u},n),h||l("back")));return i.createElement(j,{title:f,size:b,loading:R,"data-component":v,className:V(v,a),extra:_},i.createElement(D,s({meta:e},C),A))},"ReactAntResourceForm"),$=J;import K,{useEffect as Q,useState as W}from"react";import{Form as X,message as M}from"antd";import w from"@jswork/next";var Y={"zh-CN":{create:"\u521B\u5EFA",update:"\u4FDD\u5B58",create_title:"\u521B\u5EFA",update_title:"\u66F4\u65B0",create_success:"\u521B\u5EFA\u6210\u529F",update_success:"\u66F4\u65B0\u6210\u529F"},"en-US":{create:"Create",update:"Save",create_title:"Create",update_title:"Update",create_success:"Create success",update_success:"Update success"}},Z={lang:"zh-CN"},ee=r(t=>{let T=s(s({},Z),t),{name:a,params:e,lang:c,onRequest:p,onResponse:f}=T,R=y(T,["name","params","lang","onRequest","onResponse"]),S=`${a}_update`,b=`${a}_create`,x=`${a}_show`,[h]=X.useForm(),m=!!(e!=null&&e.id),n=r(o=>Y[c][o],"t"),[C,l]=W(!1),u=r(o=>(l(!0),(p==null?void 0:p(o))||o.payload),"handleStateRequest"),_=r(o=>{f==null||f(o),l(!1)},"handleStateResponse"),A=r(o=>{if(m){let g=s({id:e.id},o),d=u({stage:"update",payload:g});w.$api[S](d).then(z=>{M.success(n("update_success")),_({stage:"update",data:z})}).finally(()=>l(!1))}else{let g=s({},o),d=u({stage:"create",payload:g});w.$api[b](d).then(z=>{M.success(n("create_success")),_({stage:"create",data:z})}).finally(()=>l(!1))}},"handleFinish");Q(()=>{if(m){let o={id:e.id},g=u({stage:"show",payload:o});w.$api[x](g).then(d=>{h.setFieldsValue(d),_({stage:"show",data:d})}).finally(()=>l(!1))}},[m]);let k=n(m?"update":"create"),F=n(m?"update_title":"create_title");return K.createElement($,s({loading:C,form:h,onFinish:A,okText:k,title:F},R))},"ReactAntResourceFormApi"),te=ee;export{$ as ReactAntResourceForm,te as ReactAntResourceFormApi};
2
2
  //# sourceMappingURL=main.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx","../src/api.tsx"],"sourcesContent":["// import noop from '@jswork/noop';\nimport cx from 'classnames';\nimport React, { FC } from 'react';\nimport { Button, Card, CardProps, Space } from 'antd';\nimport ReactAntdFormSchema, { ReactAntdFormSchemaProps } from '@jswork/react-ant-form-schema';\nimport { ArrowLeftOutlined, SaveOutlined } from '@ant-design/icons';\n\nexport type ReactAntResourceFormProps = {\n lang?: string;\n loading?: boolean;\n size?: CardProps['size'];\n extra?: CardProps['extra'];\n title?: CardProps['title'];\n} & ReactAntdFormSchemaProps;\n\nconst CLASS_NAME = 'react-ant-resource-form';\nconst locales = {\n 'zh-CN': {\n submit: '提交',\n back: '返回',\n },\n 'en-US': {\n submit: 'Submit',\n back: 'Back',\n },\n};\n\nconst defaultProps = {\n lang: 'zh-CN',\n};\n\nconst ReactAntResourceForm: FC<ReactAntResourceFormProps> = (props) => {\n const { className, meta, children, lang, title, loading, extra, size, ...rest } = {\n ...defaultProps,\n ...props,\n };\n const t = (key: string) => locales[lang][key];\n const handleBack = () => history.back();\n const _extra = extra || (\n <Button size=\"small\" icon={<ArrowLeftOutlined />} onClick={handleBack}>\n {t('back')}\n </Button>\n );\n const _children = children || (\n <Space>\n <Button htmlType=\"submit\" type=\"primary\" icon={<SaveOutlined />}>\n {t('submit')}\n </Button>\n <Button icon={<ArrowLeftOutlined />} onClick={handleBack}>\n {t('back')}\n </Button>\n </Space>\n );\n\n return (\n <Card\n title={title}\n size={size}\n loading={loading}\n data-component={CLASS_NAME}\n className={cx(CLASS_NAME, className)}\n extra={_extra}>\n <ReactAntdFormSchema meta={meta} {...rest}>\n {_children}\n </ReactAntdFormSchema>\n </Card>\n );\n};\n\nexport default ReactAntResourceForm;\n","import React, { FC, useEffect, useState } from 'react';\nimport ReactAntResourceForm, { ReactAntResourceFormProps } from '.';\nimport { Form, message } from 'antd';\nimport nx from '@jswork/next';\n\ndeclare global {\n interface NxStatic {\n $api: Record<string, any>;\n }\n}\n\ntype StagePayload = {\n stage: 'show' | 'create' | 'update';\n payload: any;\n};\n\ntype StageData = {\n stage: 'show' | 'create' | 'update';\n data: any;\n};\n\nexport type ReactAntResourceFormApiProps = ReactAntResourceFormProps & {\n lang?: string;\n params?: Record<string, any>;\n onRequest?: (payload: StagePayload) => any;\n onResponse?: (res: StageData) => void;\n};\n\nconst locales = {\n 'zh-CN': {\n create_success: '创建成功',\n update_success: '更新成功',\n },\n 'en-US': {\n create_success: 'Create success',\n update_success: 'Update success',\n },\n};\n\nconst defaultProps = {\n lang: 'zh-CN',\n};\n\nconst ReactAntResourceFormApi: FC<ReactAntResourceFormApiProps> = (props) => {\n const { name, params, lang, onRequest, onResponse, ...rest } = {\n ...defaultProps,\n ...props,\n };\n\n const resourceEdit = `${name}_update`;\n const resourceCreate = `${name}_create`;\n const resourceShow = `${name}_show`;\n const [form] = Form.useForm();\n const isEdit = Boolean(params?.id);\n const t = (key: string) => locales[lang!][key];\n const [loading, setLoading] = useState(false);\n const handleStateRequest = (payload: StagePayload) => {\n setLoading(true);\n return onRequest?.(payload) || payload;\n };\n const handleStateResponse = (res: StageData) => {\n onResponse?.(res);\n setLoading(false);\n };\n\n const handleFinish = (values) => {\n if (isEdit) {\n const payload = { id: params!.id, ...values };\n const _payload = handleStateRequest({ stage: 'update', payload });\n\n nx.$api[resourceEdit](_payload)\n .then((res) => {\n message.success(t('update_success'));\n handleStateResponse({ stage: 'update', data: res });\n })\n .finally(() => setLoading(false));\n } else {\n const payload = { ...values };\n const _payload = handleStateRequest({ stage: 'create', payload });\n\n nx.$api[resourceCreate](_payload)\n .then((res) => {\n message.success(t('create_success'));\n handleStateResponse({ stage: 'create', data: res });\n })\n .finally(() => setLoading(false));\n }\n };\n\n // init detail\n useEffect(() => {\n if (isEdit) {\n const payload = { id: params!.id };\n const _payload = handleStateRequest({ stage: 'update', payload });\n nx.$api[resourceShow](_payload)\n .then((res) => {\n form.setFieldsValue(res);\n handleStateResponse({ stage: 'show', data: res });\n })\n .finally(() => setLoading(false));\n }\n }, [isEdit]);\n\n return <ReactAntResourceForm loading={loading} form={form} onFinish={handleFinish} {...rest} />;\n};\n\nexport default ReactAntResourceFormApi;\n"],"mappings":"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","names":["cx","React","Button","Card","Space","ReactAntdFormSchema","ArrowLeftOutlined","SaveOutlined","CLASS_NAME","locales","submit","back","defaultProps","lang","ReactAntResourceForm","__name","props","_a","__spreadValues","className","meta","children","title","loading","extra","size","rest","t","key","handleBack","history","_extra","React","Button","icon","ArrowLeftOutlined","onClick","_children","Space","htmlType","type","SaveOutlined","Card","data-component","cx","ReactAntdFormSchema","index_default","React","useEffect","useState","Form","message","nx","locales","create_success","update_success","defaultProps","lang","ReactAntResourceFormApi","__name","props","_a","__spreadValues","name","params","onRequest","onResponse","rest","resourceEdit","resourceCreate","resourceShow","form","Form","useForm","isEdit","Boolean","id","t","key","loading","setLoading","useState","handleStateRequest","payload","handleStateResponse","res","handleFinish","values","_payload","stage","nx","$api","then","message","success","data","finally","useEffect","setFieldsValue","React","ReactAntResourceForm","onFinish","api_default"]}
1
+ {"version":3,"sources":["../src/index.tsx","../src/api.tsx"],"sourcesContent":["// import noop from '@jswork/noop';\nimport cx from 'classnames';\nimport React, { FC } from 'react';\nimport { Button, ButtonProps, Card, CardProps, Space } from 'antd';\nimport ReactAntdFormSchema, { ReactAntdFormSchemaProps } from '@jswork/react-ant-form-schema';\nimport { ArrowLeftOutlined, SaveOutlined } from '@ant-design/icons';\n\nexport type ReactAntResourceFormProps = {\n lang?: string;\n loading?: boolean;\n okText?: string;\n backText?: string;\n okProps?: ButtonProps;\n backProps?: ButtonProps;\n size?: CardProps['size'];\n extra?: CardProps['extra'];\n title?: CardProps['title'];\n} & ReactAntdFormSchemaProps;\n\nconst CLASS_NAME = 'react-ant-resource-form';\nconst locales = {\n 'zh-CN': {\n submit: '提交',\n back: '返回',\n },\n 'en-US': {\n submit: 'Submit',\n back: 'Back',\n },\n};\n\nconst defaultProps = {\n lang: 'zh-CN',\n};\n\nconst ReactAntResourceForm: FC<ReactAntResourceFormProps> = (props) => {\n const {\n className,\n meta,\n children,\n lang,\n title,\n loading,\n extra,\n size,\n okText,\n backText,\n okProps,\n backProps,\n ...rest\n } = {\n ...defaultProps,\n ...props,\n };\n const t = (key: string) => locales[lang][key];\n const handleBack = () => history.back();\n const _extra = extra || (\n <Button size=\"small\" icon={<ArrowLeftOutlined />} onClick={handleBack} {...backProps}>\n {backText || t('back')}\n </Button>\n );\n const _children = children || (\n <Space>\n <Button htmlType=\"submit\" type=\"primary\" icon={<SaveOutlined />} {...okProps}>\n {okText || t('submit')}\n </Button>\n <Button icon={<ArrowLeftOutlined />} onClick={handleBack} {...backProps}>\n {backText || t('back')}\n </Button>\n </Space>\n );\n\n return (\n <Card\n title={title}\n size={size}\n loading={loading}\n data-component={CLASS_NAME}\n className={cx(CLASS_NAME, className)}\n extra={_extra}>\n <ReactAntdFormSchema meta={meta} {...rest}>\n {_children}\n </ReactAntdFormSchema>\n </Card>\n );\n};\n\nexport default ReactAntResourceForm;\n","import React, { FC, useEffect, useState } from 'react';\nimport ReactAntResourceForm, { ReactAntResourceFormProps } from '.';\nimport { Form, message } from 'antd';\nimport nx from '@jswork/next';\n\ndeclare global {\n interface NxStatic {\n $api: Record<string, any>;\n }\n}\n\ntype StagePayload = {\n stage: 'show' | 'create' | 'update';\n payload: any;\n};\n\ntype StageData = {\n stage: 'show' | 'create' | 'update';\n data: any;\n};\n\nexport type ReactAntResourceFormApiProps = ReactAntResourceFormProps & {\n lang?: string;\n params?: Record<string, any>;\n onRequest?: (payload: StagePayload) => any;\n onResponse?: (res: StageData) => void;\n};\n\nconst locales = {\n 'zh-CN': {\n create: '创建',\n update: '保存',\n create_title: '创建',\n update_title: '更新',\n create_success: '创建成功',\n update_success: '更新成功',\n },\n 'en-US': {\n create: 'Create',\n update: 'Save',\n create_title: 'Create',\n update_title: 'Update',\n create_success: 'Create success',\n update_success: 'Update success',\n },\n};\n\nconst defaultProps = {\n lang: 'zh-CN',\n};\n\nconst ReactAntResourceFormApi: FC<ReactAntResourceFormApiProps> = (props) => {\n const { name, params, lang, onRequest, onResponse, ...rest } = {\n ...defaultProps,\n ...props,\n };\n\n const resourceEdit = `${name}_update`;\n const resourceCreate = `${name}_create`;\n const resourceShow = `${name}_show`;\n const [form] = Form.useForm();\n const isEdit = Boolean(params?.id);\n const t = (key: string) => locales[lang!][key];\n const [loading, setLoading] = useState(false);\n const handleStateRequest = (stagePayload: StagePayload) => {\n setLoading(true);\n return onRequest?.(stagePayload) || stagePayload.payload;\n };\n const handleStateResponse = (res: StageData) => {\n onResponse?.(res);\n setLoading(false);\n };\n\n const handleFinish = (values) => {\n if (isEdit) {\n const payload = { id: params!.id, ...values };\n const _payload = handleStateRequest({ stage: 'update', payload });\n\n nx.$api[resourceEdit](_payload)\n .then((res) => {\n message.success(t('update_success'));\n handleStateResponse({ stage: 'update', data: res });\n })\n .finally(() => setLoading(false));\n } else {\n const payload = { ...values };\n const _payload = handleStateRequest({ stage: 'create', payload });\n\n nx.$api[resourceCreate](_payload)\n .then((res) => {\n message.success(t('create_success'));\n handleStateResponse({ stage: 'create', data: res });\n })\n .finally(() => setLoading(false));\n }\n };\n\n // init detail\n useEffect(() => {\n if (isEdit) {\n const payload = { id: params!.id };\n const _payload = handleStateRequest({ stage: 'show', payload });\n nx.$api[resourceShow](_payload)\n .then((res) => {\n form.setFieldsValue(res);\n handleStateResponse({ stage: 'show', data: res });\n })\n .finally(() => setLoading(false));\n }\n }, [isEdit]);\n\n const okText = isEdit ? t('update') : t('create');\n const title = isEdit ? t('update_title') : t('create_title');\n\n return (\n <ReactAntResourceForm\n loading={loading}\n form={form}\n onFinish={handleFinish}\n okText={okText}\n title={title}\n {...rest}\n />\n );\n};\n\nexport default ReactAntResourceFormApi;\n"],"mappings":"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","names":["cx","React","Button","Card","Space","ReactAntdFormSchema","ArrowLeftOutlined","SaveOutlined","CLASS_NAME","locales","submit","back","defaultProps","lang","ReactAntResourceForm","__name","props","_a","__spreadValues","className","meta","children","title","loading","extra","size","okText","backText","okProps","backProps","rest","t","key","handleBack","history","_extra","React","Button","icon","ArrowLeftOutlined","onClick","_children","Space","htmlType","type","SaveOutlined","Card","data-component","cx","ReactAntdFormSchema","index_default","React","useEffect","useState","Form","message","nx","locales","create","update","create_title","update_title","create_success","update_success","defaultProps","lang","ReactAntResourceFormApi","__name","props","_a","__spreadValues","name","params","onRequest","onResponse","rest","resourceEdit","resourceCreate","resourceShow","form","Form","useForm","isEdit","Boolean","id","t","key","loading","setLoading","useState","handleStateRequest","stagePayload","payload","handleStateResponse","res","handleFinish","values","_payload","stage","nx","$api","then","message","success","data","finally","useEffect","setFieldsValue","okText","title","React","ReactAntResourceForm","onFinish","api_default"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jswork/react-ant-resource-form",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "main": "dist/main.cjs.js",
5
5
  "module": "dist/main.esm.js",
6
6
  "types": "dist/main.d.ts",
package/src/api.tsx CHANGED
@@ -28,10 +28,18 @@ export type ReactAntResourceFormApiProps = ReactAntResourceFormProps & {
28
28
 
29
29
  const locales = {
30
30
  'zh-CN': {
31
+ create: '创建',
32
+ update: '保存',
33
+ create_title: '创建',
34
+ update_title: '更新',
31
35
  create_success: '创建成功',
32
36
  update_success: '更新成功',
33
37
  },
34
38
  'en-US': {
39
+ create: 'Create',
40
+ update: 'Save',
41
+ create_title: 'Create',
42
+ update_title: 'Update',
35
43
  create_success: 'Create success',
36
44
  update_success: 'Update success',
37
45
  },
@@ -54,9 +62,9 @@ const ReactAntResourceFormApi: FC<ReactAntResourceFormApiProps> = (props) => {
54
62
  const isEdit = Boolean(params?.id);
55
63
  const t = (key: string) => locales[lang!][key];
56
64
  const [loading, setLoading] = useState(false);
57
- const handleStateRequest = (payload: StagePayload) => {
65
+ const handleStateRequest = (stagePayload: StagePayload) => {
58
66
  setLoading(true);
59
- return onRequest?.(payload) || payload;
67
+ return onRequest?.(stagePayload) || stagePayload.payload;
60
68
  };
61
69
  const handleStateResponse = (res: StageData) => {
62
70
  onResponse?.(res);
@@ -91,7 +99,7 @@ const ReactAntResourceFormApi: FC<ReactAntResourceFormApiProps> = (props) => {
91
99
  useEffect(() => {
92
100
  if (isEdit) {
93
101
  const payload = { id: params!.id };
94
- const _payload = handleStateRequest({ stage: 'update', payload });
102
+ const _payload = handleStateRequest({ stage: 'show', payload });
95
103
  nx.$api[resourceShow](_payload)
96
104
  .then((res) => {
97
105
  form.setFieldsValue(res);
@@ -101,7 +109,19 @@ const ReactAntResourceFormApi: FC<ReactAntResourceFormApiProps> = (props) => {
101
109
  }
102
110
  }, [isEdit]);
103
111
 
104
- return <ReactAntResourceForm loading={loading} form={form} onFinish={handleFinish} {...rest} />;
112
+ const okText = isEdit ? t('update') : t('create');
113
+ const title = isEdit ? t('update_title') : t('create_title');
114
+
115
+ return (
116
+ <ReactAntResourceForm
117
+ loading={loading}
118
+ form={form}
119
+ onFinish={handleFinish}
120
+ okText={okText}
121
+ title={title}
122
+ {...rest}
123
+ />
124
+ );
105
125
  };
106
126
 
107
127
  export default ReactAntResourceFormApi;
package/src/index.tsx CHANGED
@@ -1,13 +1,17 @@
1
1
  // import noop from '@jswork/noop';
2
2
  import cx from 'classnames';
3
3
  import React, { FC } from 'react';
4
- import { Button, Card, CardProps, Space } from 'antd';
4
+ import { Button, ButtonProps, Card, CardProps, Space } from 'antd';
5
5
  import ReactAntdFormSchema, { ReactAntdFormSchemaProps } from '@jswork/react-ant-form-schema';
6
6
  import { ArrowLeftOutlined, SaveOutlined } from '@ant-design/icons';
7
7
 
8
8
  export type ReactAntResourceFormProps = {
9
9
  lang?: string;
10
10
  loading?: boolean;
11
+ okText?: string;
12
+ backText?: string;
13
+ okProps?: ButtonProps;
14
+ backProps?: ButtonProps;
11
15
  size?: CardProps['size'];
12
16
  extra?: CardProps['extra'];
13
17
  title?: CardProps['title'];
@@ -30,24 +34,38 @@ const defaultProps = {
30
34
  };
31
35
 
32
36
  const ReactAntResourceForm: FC<ReactAntResourceFormProps> = (props) => {
33
- const { className, meta, children, lang, title, loading, extra, size, ...rest } = {
37
+ const {
38
+ className,
39
+ meta,
40
+ children,
41
+ lang,
42
+ title,
43
+ loading,
44
+ extra,
45
+ size,
46
+ okText,
47
+ backText,
48
+ okProps,
49
+ backProps,
50
+ ...rest
51
+ } = {
34
52
  ...defaultProps,
35
53
  ...props,
36
54
  };
37
55
  const t = (key: string) => locales[lang][key];
38
56
  const handleBack = () => history.back();
39
57
  const _extra = extra || (
40
- <Button size="small" icon={<ArrowLeftOutlined />} onClick={handleBack}>
41
- {t('back')}
58
+ <Button size="small" icon={<ArrowLeftOutlined />} onClick={handleBack} {...backProps}>
59
+ {backText || t('back')}
42
60
  </Button>
43
61
  );
44
62
  const _children = children || (
45
63
  <Space>
46
- <Button htmlType="submit" type="primary" icon={<SaveOutlined />}>
47
- {t('submit')}
64
+ <Button htmlType="submit" type="primary" icon={<SaveOutlined />} {...okProps}>
65
+ {okText || t('submit')}
48
66
  </Button>
49
- <Button icon={<ArrowLeftOutlined />} onClick={handleBack}>
50
- {t('back')}
67
+ <Button icon={<ArrowLeftOutlined />} onClick={handleBack} {...backProps}>
68
+ {backText || t('back')}
51
69
  </Button>
52
70
  </Space>
53
71
  );