UNPKG

@chief-editor/editor

Version:

FlowEditor Editor

1 lines 2.25 kB
import{BindType}from"@chief-editor/types";import{FormContainer,Input,RadioGroup,Switch,TextArea}from"@chief-editor/ui";import React,{Fragment,useCallback}from"react";export function useBuildInDatasourceRender(){return{buildInDatasourceRenderBind:function(e,a){return React.createElement(BindRender,{datasource:e,onDataChange:a})},buildInDatasourceRenderFunc:function(e,a){return React.createElement(FuncRender,{datasource:e,onDataChange:a})}}}function BindRender(e){var a=e.datasource,n=a.bindJs,t=a.bindKey,r=a.bindType,l=e.onDataChange,c=useCallback((function(e){return l({bindType:e})}),[]),o=useCallback((function(e){return l({bindKey:e})}),[]),u=useCallback((function(e){return l({bindJs:e})}),[]);return React.createElement(Fragment,null,React.createElement(FormContainer,{label:"绑定类型",level:4},React.createElement(RadioGroup,{value:r,onValueChange:c},React.createElement(RadioGroup.Radio,{value:BindType.VAR},"变量"),React.createElement(RadioGroup.Radio,{value:BindType.EXPRESSION},"表达式"))),r!==BindType.EXPRESSION&&React.createElement(FormContainer,{label:"变量名",level:4},React.createElement(Input,{placeholder:"请输入变量名",value:t,onValueChange:o})),r===BindType.EXPRESSION&&React.createElement(FormContainer,{label:"表达式",level:4},React.createElement(TextArea,{value:n,onValueChange:u})))}function FuncRender(e){var a=e.datasource,n=a.hook,t=a.isWatch,r=a.watchKeys,l=a.lazy,c=e.onDataChange,o=useCallback((function(e){return c({hook:e})}),[]),u=useCallback((function(e){return c({isWatch:e})}),[]),i=useCallback((function(e){return c({watchKeys:e})}),[]),d=useCallback((function(e){return c({lazy:e})}),[]);return React.createElement(Fragment,null,React.createElement(FormContainer,{label:"钩子函数名",level:4},React.createElement(Input,{placeholder:"请输入钩子名",value:n,onValueChange:o})),React.createElement(FormContainer,{label:"是否监控",level:4},React.createElement(Switch,{checked:t,onValueChange:u})),t&&React.createElement(FormContainer,{label:"监控字段",level:4},React.createElement(TextArea,{placeholder:"一行一个",value:r,onValueChange:i})),t&&React.createElement(FormContainer,{label:"是否惰性函数",level:4},React.createElement(Switch,{checked:l,onValueChange:d})))}