Nhảy tới nội dung
Phiên bản: 1.8.0

Cho phép tạo giao diện cho phép người dùng chọn một lựa chọn trên từng cột dữ liệu

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
defaultOpenbooleanMặc định mở picker modal hay không
disabledbooleanVô hiệu hoá Picker input
onChange(value: {[name: string]: PickerColumnOption}) => voidThêm event handler khi thay đổi lựa chọn
onVisibilityChange(visibilityState: boolean) => voidThêm event handler khi picker modal thay đổi trạng thái mở/đóng
formatPickedValueDisplay(value: {[name: string]: PickerColumnOption}) => stringFormat 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
labelstringThêm Label hiển thị phía trên Input
helperTextstringHelper text hiển thị phía dưới của field input.
errorTextstringText hiển thị khi status của field input là error
statusInputStatusTrạng thái của field input. Nhận các giá trị: success | error
namestringThêm name cho input field
placeholderstringThê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;