Field AutoComplete
show code
- componennt
import { Button, MenuItem, Stack } from "@mui/material";
import PropsTable from "@site/src/components/PropsTable";
import { FieldSelect, FormProvider, notify, useFormRef } from "../components";
export const FieldTextProps = () => {
let params = {
name: {
type: "string",
defaultValue: "",
desc: "form item name",
},
label: {
type: "number",
defaultValue: "",
desc: "form item label",
},
defaultValue: {
type: "any",
defaultValue: "",
desc: "The default value. Use when the component is not controlled.",
},
value: {
type: "any",
defaultValue: "",
desc: "The value of the input element, required for a controlled component.",
},
type: {
type: "string",
defaultValue: "",
desc: "Type of the input element. It should be a valid HTML5 input type.",
},
required: {
type: "boolean",
defaultValue: "false",
desc: "If true, the label is displayed as required and the input element is required.",
},
};
return <PropsTable params={params} />;
};
const Demo = () => {
const formRef = useFormRef({});
const { handleSubmit } = formRef;
const onSubmit = handleSubmit(() => {
notify.success(JSON.stringify(formRef.getValues()));
});
const options = ["1", "2"];
return (
<FormProvider formRef={formRef} onSubmit={onSubmit}>
<FieldSelect label="Field" name="Field">
{options?.map((item: any) => {
return (
<MenuItem
key={typeof item == "string" ? item : item.key}
value={typeof item == "string" ? item : item.value}>
{typeof item == "string" ? item : item.label}
</MenuItem>
);
})}
</FieldSelect>
<Stack
direction="row"
sx={{
justifyContent: "end",
}}>
<Button
sx={{
marginTop: "10px",
}}
variant="contained"
type="submit">
Submit
</Button>
</Stack>
</FormProvider>
);
};
export default Demo;
Props
tip
- Type: any, can be customized as needed.
- Default value:
- Not specified: optional.
- Specified as "require": mandatory.
- Type link: Click to navigate to the details below.
Type
name | type | defaultValue | desc |
---|---|---|---|
name | string | form item name | |
label | number | form item label | |
defaultValue | any | The default value. Use when the component is not controlled. | |
value | any | The value of the input element, required for a controlled component. | |
type | string | Type of the input element. It should be a valid HTML5 input type. | |
required | boolean | false | If true, the label is displayed as required and the input element is required. |