formily/next/playground/widgets/ActionsWidget.tsx (53 lines of code) (raw):

import React, { useEffect } from 'react' import { Space, Button, Radio } from 'antd' import { GithubOutlined } from '@ant-design/icons' import { useDesigner, TextWidget } from '@designable/react' import { GlobalRegistry } from '@designable/core' import { observer } from '@formily/react' import { loadInitialSchema, saveSchema } from '../service' export const ActionsWidget = observer(() => { const designer = useDesigner() useEffect(() => { loadInitialSchema(designer) }, []) const supportLocales = ['zh-cn', 'en-us', 'ko-kr'] useEffect(() => { if (!supportLocales.includes(GlobalRegistry.getDesignerLanguage())) { GlobalRegistry.setDesignerLanguage('zh-cn') } }, []) return ( <Space style={{ marginRight: 10 }}> <Button href="https://designable-antd.formilyjs.org">Ant Design</Button> <Radio.Group value={GlobalRegistry.getDesignerLanguage()} optionType="button" options={[ { label: 'English', value: 'en-us' }, { label: '简体中文', value: 'zh-cn' }, { label: '한국어', value: 'ko-kr' }, ]} onChange={(e) => { GlobalRegistry.setDesignerLanguage(e.target.value) }} /> <Button href="https://github.com/alibaba/designable" target="_blank"> <GithubOutlined /> Github </Button> <Button onClick={() => { saveSchema(designer) }} > <TextWidget>Save</TextWidget> </Button> <Button type="primary" onClick={() => { saveSchema(designer) }} > <TextWidget>Publish</TextWidget> </Button> </Space> ) })