Nhảy tới nội dung

Picker

Properties

Picker

NameTypeDefaultDescription
value{ [columnName: string]: string | number }

Giá trị của Picker

defaultValue{ [columnName: string]: string | number }

Giá trị mặc định của Picker

titlestring

Đặt title cho picker modal

dataPickerDataType[]

Data cho Picker ứng với từng column

defaultOpenboolean

Mặc định mở picker modal hay không

disabledboolean

Vô hiệu hoá Picker input

onChange(value: {[name: string]: PickerColumnOption}) => void

Thêm event handler khi thay đổi lựa chọn

onVisibilityChange(visibilityState: boolean) => void

Thêm event handler khi picker modal thay đổi trạng thái mở/đóng

formatPickedValueDisplay(value: {[name: string]: PickerColumnOption}) => string

Format value lựa chọn hiển thị trên Input

maskbooleanBật/tắt lớp overlay khi mở picker modal
maskCloseablebooleanClick ra ngoài lớp overlay để đóng
actionPickerActionTypeThêm action button cho picker modal
prefixReactNodePrefix icon cho Input
suffixReactNodeSuffix icon cho Input
inputClassstringthêm class cho Input
labelstring

Thêm Label hiển thị phía trên Input

helperTextstring

Helper text hiển thị phía dưới của field input.

errorTextstring

Text hiển thị khi status của field input là error

statusInputStatus

Trạng thái của field input. Nhận các giá trị: success | error

namestring

Thêm name cho input field

placeholderstring

Thêm placeholder cho input trong trường hợp không có option nào đã được chọn

Type

PickerDataType

NameTypeDefaultDescription
namestringTên column
onChange(value: PickerColumnOption, name: string) => voidThêm event handler khi thay đổi lựa chọn trên column
optionsPickerColumnOption[]các options của column

PickerColumnOption

NameTypeDefaultDescription
keystringunique key
valuestring|numbergiá trị của option
displayNamestringPhần nội dung hiển thị cho option

PickerActionType

NameTypeDefaultDescription
textstringAction button text
onClickThêm event handler cho sự kiện click button
closebooleanClick vào button để đóng picker modal

Example

import React from "react";
import { Box, Text, Picker, Page } from "zmp-ui";

function PagePicker() {
const genTestData = (name, number, prefix = "Option") => {
const data = [];
// eslint-disable-next-line no-plusplus
for (let i = 0; i < number; i++) {
data.push({
value: i + 1,
displayName: `${prefix} ${i + 1}`,
});
}
return data;
};
return (
<Page className="page">
<div className="section-container">
<Text.Title size="small">Type</Text.Title>
<Box mt={6}>
<Picker
label="Single Column"
helperText="Helper text"
placeholder="Placeholder"
mask
maskClosable
title="Single Column"
action={{
text: "Close",
close: true,
}}
// disabled
data={[
{
options: genTestData("key1", 100, "Option"),
name: "option",
},
]}
/>
</Box>
<Box mt={6}>
<Picker
label="Multiple Columns"
helperText="Helper text"
placeholder="Placeholder"
mask
maskClosable
title="Multiple Columns"
action={{
text: "Close",
close: true,
}}
// disabled
data={[
{
options: genTestData("key1", 5, "Col 1 - "),
name: "otp1",
},
{
options: genTestData("key2", 10, "Col 2 - "),
name: "otp2",
},
{
options: genTestData("key3", 15, "Col 3 - "),
name: "otp3",
},
]}
/>
</Box>
</div>
</Page>
);
}

export default PagePicker;