67 lines
1.8 KiB
TypeScript
67 lines
1.8 KiB
TypeScript
|
import React from 'react';
|
||
|
import {PickerContainer, Button, Form, Controller, InputBox} from 'amis-ui';
|
||
|
|
||
|
export default function () {
|
||
|
const body = React.createRef<any>();
|
||
|
const beforeConfirm = React.useCallback(() => {
|
||
|
return body.current?.submit();
|
||
|
}, []);
|
||
|
const handleConfirm = React.useCallback((data: any) => {
|
||
|
console.log('confirmed', data);
|
||
|
}, []);
|
||
|
|
||
|
return (
|
||
|
<div className="wrapper">
|
||
|
<PickerContainer
|
||
|
beforeConfirm={beforeConfirm}
|
||
|
onConfirm={handleConfirm}
|
||
|
bodyRender={() => (
|
||
|
<Form ref={body}>
|
||
|
{({control}) => (
|
||
|
<>
|
||
|
<Controller
|
||
|
mode="horizontal"
|
||
|
label="A"
|
||
|
name="a"
|
||
|
control={control}
|
||
|
rules={{maxLength: 20}}
|
||
|
isRequired
|
||
|
render={({field, fieldState}) => (
|
||
|
<InputBox
|
||
|
{...field}
|
||
|
hasError={!!fieldState.error}
|
||
|
disabled={false}
|
||
|
/>
|
||
|
)}
|
||
|
/>
|
||
|
|
||
|
<Controller
|
||
|
mode="horizontal"
|
||
|
label="B"
|
||
|
name="b"
|
||
|
control={control}
|
||
|
rules={{maxLength: 20}}
|
||
|
isRequired
|
||
|
render={({field, fieldState}) => (
|
||
|
<InputBox
|
||
|
{...field}
|
||
|
hasError={!!fieldState.error}
|
||
|
disabled={false}
|
||
|
/>
|
||
|
)}
|
||
|
/>
|
||
|
</>
|
||
|
)}
|
||
|
</Form>
|
||
|
)}
|
||
|
>
|
||
|
{({isOpened, onClick}) => (
|
||
|
<Button active={isOpened} onClick={onClick}>
|
||
|
Open
|
||
|
</Button>
|
||
|
)}
|
||
|
</PickerContainer>
|
||
|
</div>
|
||
|
);
|
||
|
}
|