diff --git a/packages/client/src/block-provider/hooks/index.ts b/packages/client/src/block-provider/hooks/index.ts index f538a945d..30cd1ebcd 100644 --- a/packages/client/src/block-provider/hooks/index.ts +++ b/packages/client/src/block-provider/hooks/index.ts @@ -1,5 +1,6 @@ import { useForm } from '@formily/react'; import { Modal } from 'antd'; +import { useTranslation } from 'react-i18next'; import { useHistory } from 'react-router-dom'; import { useActionContext } from '../../schema-component'; import { useBlockRequestContext, useFilterByTk } from '../BlockProvider'; @@ -29,9 +30,10 @@ function isURL(string) { export const useCreateActionProps = () => { const form = useForm(); const { resource, __parent } = useBlockRequestContext(); - const { setVisible } = useActionContext(); + const { visible, setVisible } = useActionContext(); const { field } = useFormBlockContext(); const history = useHistory(); + const { t } = useTranslation(); return { async onClick() { await form.submit(); @@ -46,12 +48,12 @@ export const useCreateActionProps = () => { } if (typeof onSuccess === 'function') { onSuccess({ form }); - } else if (typeof onSuccess === 'object') { + } else if (visible === undefined) { Modal.success({ - title: onSuccess.successMessage, + title: onSuccess?.successMessage || t('Submitted successfully!'), onOk: async () => { await form.reset(); - if (onSuccess.redirecting && onSuccess.redirectTo) { + if (onSuccess?.redirecting && onSuccess?.redirectTo) { if (isURL(onSuccess.redirectTo)) { window.location.href = onSuccess.redirectTo; } else { diff --git a/packages/client/src/schema-component/antd/form-v2/Form.Designer.tsx b/packages/client/src/schema-component/antd/form-v2/Form.Designer.tsx index 669561041..82841c5e5 100644 --- a/packages/client/src/schema-component/antd/form-v2/Form.Designer.tsx +++ b/packages/client/src/schema-component/antd/form-v2/Form.Designer.tsx @@ -6,6 +6,7 @@ import { useCollection } from '../../../collection-manager'; import { GeneralSchemaDesigner, SchemaSettings } from '../../../schema-settings'; import { useSchemaTemplate } from '../../../schema-templates'; import { useDesignable } from '../../hooks'; +import { useActionContext } from '../action'; export const FormDesigner = () => { const { name, title } = useCollection(); @@ -15,9 +16,11 @@ export const FormDesigner = () => { const fieldSchema = useFieldSchema(); const { dn } = useDesignable(); const { t } = useTranslation(); + const { visible } = useActionContext(); return (