formily/antd/playground/widgets/ActionsWidget.tsx (55 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-fusion.formilyjs.org">
Alibaba Fusion
</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>
)
})