@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 +1 -1
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.d.mts +5 -1
- package/dist/main.d.ts +5 -1
- package/dist/main.esm.js +1 -1
- package/dist/main.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/api.tsx +24 -4
- package/src/index.tsx +26 -8
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
|
|
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
|
package/dist/main.cjs.js.map
CHANGED
|
@@ -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":"AAAA,6KAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CCC7iB,gGAAe,4EACW,4BACkC,2IACE,0CACd,IAc1CA,CAAAA,CAAa,yBAAA,CACbC,CAAAA,CAAU,CACd,OAAA,CAAS,CACPC,MAAAA,CAAQ,cAAA,CACRC,IAAAA,CAAM,cACR,CAAA,CACA,OAAA,CAAS,CACPD,MAAAA,CAAQ,QAAA,CACRC,IAAAA,CAAM,MACR,CACF,CAAA,CAEMC,CAAAA,CAAe,CACnBC,IAAAA,CAAM,OACR,CAAA,CAEMC,CAAAA,CAAsDC,CAAAA,CAACC,CAAAA,EAAAA,CAC3D,IAcIC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CACCN,CAAAA,CAAAA,CACAI,CAAAA,CAAAA,CAfHG,CAAAA,SAAAA,CAAAA,CAAAA,CACAC,IAAAA,CAAAA,CAAAA,CACAC,QAAAA,CAAAA,CAAAA,CACAR,IAAAA,CAAAA,CAAAA,CACAS,KAAAA,CAAAA,CAAAA,CACAC,OAAAA,CAAAA,CAAAA,CACAC,KAAAA,CAAAA,CAAAA,CACAC,IAAAA,CAAAA,CAAAA,CACAC,MAAAA,CAAAA,CAAAA,CACAC,QAAAA,CAAAA,CAAAA,CACAC,OAAAA,CAAAA,CAAAA,CACAC,SAAAA,CAAAA,CAhDJ,CAAA,CAkDMZ,CAAAA,CADCa,CAAAA,CAAAA,CAAAA,CACDb,CAAAA,CADCa,CAZHX,WAAAA,CACAC,MAAAA,CACAC,UAAAA,CACAR,MAAAA,CACAS,OAAAA,CACAC,SAAAA,CACAC,OAAAA,CACAC,MAAAA,CACAC,QAAAA,CACAC,UAAAA,CACAC,SAAAA,CACAC,WAAAA,CAAAA,CAAAA,CAMIE,CAAAA,CAAIhB,CAAAA,CAACiB,CAAAA,EAAgBvB,CAAAA,CAAQI,CAAAA,CAAAA,CAAMmB,CAAAA,CAAAA,CAA/B,GAAA,CAAA,CACJC,CAAAA,CAAalB,CAAAA,CAAA,CAAA,CAAA,EAAMmB,OAAAA,CAAQvB,IAAAA,CAAI,CAAA,CAAlB,YAAA,CAAA,CACbwB,CAAAA,CAASX,CAAAA,EACbY,eAAAA,CAAA,aAAA,CAACC,YAAAA,CAAAA,CAAAA,CAAAA,CAAOZ,IAAAA,CAAK,OAAA,CAAQa,IAAAA,CAAMF,eAAAA,CAAA,aAAA,CAACG,wBAAAA,CAAAA,IAAAA,CAAAA,CAAsBC,OAAAA,CAASP,CAAAA,CAAAA,CAAgBJ,CAAAA,CAAAA,CACxEF,CAAAA,EAAYI,CAAAA,CAAE,MAAA,CAAA,CAAA,CAGbU,CAAAA,CAAYpB,CAAAA,EAChBe,eAAAA,CAAA,aAAA,CAACM,WAAAA,CAAAA,IAAAA,CACCN,eAAAA,CAAA,aAAA,CAACC,YAAAA,CAAAA,CAAAA,CAAAA,CAAOM,QAAAA,CAAS,QAAA,CAASC,IAAAA,CAAK,SAAA,CAAUN,IAAAA,CAAMF,eAAAA,CAAA,aAAA,CAACS,mBAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAqBjB,CAAAA,CAAAA,CAClEF,CAAAA,EAAUK,CAAAA,CAAE,QAAA,CAAA,CAAA,CAEfK,eAAAA,CAAA,aAAA,CAACC,YAAAA,CAAAA,CAAAA,CAAAA,CAAOC,IAAAA,CAAMF,eAAAA,CAAA,aAAA,CAACG,wBAAAA,CAAAA,IAAAA,CAAAA,CAAsBC,OAAAA,CAASP,CAAAA,CAAAA,CAAgBJ,CAAAA,CAAAA,CAC3DF,CAAAA,EAAYI,CAAAA,CAAE,MAAA,CAAA,CAAA,CAAA,CAKrB,OACEK,eAAAA,CAAA,aAAA,CAACU,UAAAA,CAAAA,CACCxB,KAAAA,CAAOA,CAAAA,CACPG,IAAAA,CAAMA,CAAAA,CACNF,OAAAA,CAASA,CAAAA,CACTwB,gBAAAA,CAAgBvC,CAAAA,CAChBW,SAAAA,CAAW6B,kCAAAA,CAAGxC,CAAYW,CAAAA,CAAAA,CAC1BK,KAAAA,CAAOW,CAAAA,CAAAA,CACPC,eAAAA,CAAA,aAAA,CAACa,4BAAAA,CAAAA,CAAAA,CAAAA,CAAoB7B,IAAAA,CAAMA,CAAAA,CAAAA,CAAUU,CAAAA,CAAAA,CAClCW,CAAAA,CAAAA,CAIT,CAAA,CAlD4D,sBAAA,CAAA,CAoD5DS,CAAAA,gCAAepC,CAAAA,CCvFf,gFAGe,IAyBTL,CAAAA,CAAU,CACd,OAAA,CAAS,CACP0C,MAAAA,CAAQ,cAAA,CACRC,MAAAA,CAAQ,cAAA,CACRC,YAAAA,CAAc,cAAA,CACdC,YAAAA,CAAc,cAAA,CACdC,cAAAA,CAAgB,0BAAA,CAChBC,cAAAA,CAAgB,0BAClB,CAAA,CACA,OAAA,CAAS,CACPL,MAAAA,CAAQ,QAAA,CACRC,MAAAA,CAAQ,MAAA,CACRC,YAAAA,CAAc,QAAA,CACdC,YAAAA,CAAc,QAAA,CACdC,cAAAA,CAAgB,gBAAA,CAChBC,cAAAA,CAAgB,gBAClB,CACF,CAAA,CAEM5C,CAAAA,CAAe,CACnBC,IAAAA,CAAM,OACR,CAAA,CAEM4C,EAAAA,CAA4D1C,CAAAA,CAACC,CAAAA,EAAAA,CACjE,IAA+DC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAC1DN,CAAAA,CAAAA,CACAI,CAAAA,CAAAA,CAFG0C,CAAAA,IAAAA,CAAAA,CAAAA,CAAMC,MAAAA,CAAAA,CAAAA,CAAQ9C,IAAAA,CAAAA,CAAAA,CAAM+C,SAAAA,CAAAA,CAAAA,CAAWC,UAAAA,CAAAA,CApDzC,CAAA,CAoDiE5C,CAAAA,CAATa,CAAAA,CAAAA,CAAAA,CAASb,CAAAA,CAATa,CAA9C4B,MAAAA,CAAMC,QAAAA,CAAQ9C,MAAAA,CAAM+C,WAAAA,CAAWC,YAAAA,CAAAA,CAAAA,CAKjCC,CAAAA,CAAe,CAAA,EAAA","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
|
|
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
|
package/dist/main.esm.js.map
CHANGED
|
@@ -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
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 = (
|
|
65
|
+
const handleStateRequest = (stagePayload: StagePayload) => {
|
|
58
66
|
setLoading(true);
|
|
59
|
-
return onRequest?.(
|
|
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: '
|
|
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
|
-
|
|
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 {
|
|
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
|
);
|