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

Component hiển thị user avatar

Properties

Avatar

NameTypeDefaultDescription
backgroundColor'BLUE-BLUELIGHT' | 'PURPLE-BLUE' | 'SKYBLUE-GREEN' | 'GREEN-GREENLIGHT'

Màu nền của avatar. Các giá trị hợp lệ bao gồm:

  • BLUE-BLUELIGHT: Màu xanh dương đậm
  • PURPLE-BLUE: Màu tím-xanh dương
  • SKYBLUE-GREEN: Màu xanh da trời nhạt-xanh lá cây
  • GREEN-GREENLIGHT: Màu xanh lá cây đậm-xanh lá cây nhạt

Nếu không được chỉ định trước và Avatar là string thì giá trị sẽ được tính toán trước dựa trên nội dung Avatar.

blockedbooleanfalse

Trạng thái block của avatar. Nếu có giá trị là true, avatar sẽ hiển thị trạng thái bị khóa.

onlinebooleanfalse

Hiển thị trạng thái online của Avatar

sizenumber

Kích thước avatar

srcstring

src cho thẻ img của avatar

storyStoryStatus

Nhận các giá trị: default, seen

onClickReact.MouseEventHandler

Callback được gọi khi người dùng nhấn chuột vào avatar.

Avatar.Group

NameTypeDefaultDescription
horizontalbooleanfalse

Hiển thị các avatar dưới dạng ngang. Mặc định các avatar trong group sẽ được hiển thị dưới dạng lưới, trừ khi số lượng nhiều hơn 4 avatar.

maxCounternumber3

Số lượng avatar tối đa có thể hiển thị trong group. Nếu như số lượng avatar trong group nhiều hơn maxCounter, phần tử cuối cùng trong group sẽ được hiển thị với nội dung +x (với x là số lượng avatar còn lại).

totalnumberchildren.length

Giả lập số lượng avatar trong group. Ví dụ: bạn cần hiển thị 3 avatar đầu tiên, sau đó là +997, bạn có thể truyền vào <Group total={1000} /> thay vì thật sự render 1000 <Avatar> để tối ưu performance.

onCounterClickReact.MouseEventHandler

Callback được gọi khi người dùng nhấn chuột vào counter. Counter là phần tử cuối cùng trong group được hiển thị với nội dung+x (với x là số lượng avatar không thể hiển thị hết trong group).

Example

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

const { Group } = Avatar;
function AvatarPage() {
  return (
    <>
      <Page className="section-container">
        <Text.Title size="small">Size</Text.Title>
        <Box flex mt={6} className="avatar-scroll-sections">
          <Box mt={6} mr={6} flex flexDirection="column" alignItems="center">
            <Box>
              <Text size="xxSmall">16px</Text>
            </Box>
            <Box mt={2}>
              <Avatar size={16} />
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column" alignItems="center">
            <Box>
              <Text size="xxSmall">24px</Text>
            </Box>
            <Box mt={2}>
              <Avatar size={24} />
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column" alignItems="center">
            <Box>
              <Text size="xxSmall">32x</Text>
            </Box>
            <Box mt={2}>
              <Avatar size={32} />
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column" alignItems="center">
            <Box>
              <Text size="xxSmall">40px</Text>
            </Box>
            <Box mt={2}>
              <Avatar size={40} />
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column" alignItems="center">
            <Box>
              <Text size="xxSmall">48px</Text>
            </Box>
            <Box mt={2}>
              <Avatar size={48} />
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column" alignItems="center">
            <Box>
              <Text size="xxSmall">64px</Text>
            </Box>
            <Box mt={2}>
              <Avatar size={64} />
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column" alignItems="center">
            <Box>
              <Text size="xxSmall">80px</Text>
            </Box>
            <Box mt={2}>
              <Avatar size={80} />
            </Box>
          </Box>
        </Box>
      </Page>
      <Page className="section-container">
        <Text.Title size="small">Variation</Text.Title>
        <Box flex flexWrap>
          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">Group 1</Text>
            </Box>
            <Box mt={2}>
              <Group maxCounter={1}>
                <Avatar />
                <Avatar />
              </Group>
            </Box>
          </Box>

          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">Group 2</Text>
            </Box>
            <Box mt={2}>
              <Group maxCounter={2}>
                <Avatar />
                <Avatar />
              </Group>
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">Group 3</Text>
            </Box>
            <Box mt={2}>
              <Group maxCounter={3}>
                <Avatar />
                <Avatar />
                <Avatar />
              </Group>
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">Group 4</Text>
            </Box>
            <Box mt={2}>
              <Group>
                <Avatar />
                <Avatar />
                <Avatar />
                <Avatar />
              </Group>
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">Group 4+</Text>
            </Box>
            <Box mt={2}>
              <Group>
                <Avatar />
                <Avatar />
                <Avatar />
                <Avatar />
                <Avatar />
                <Avatar />
                <Avatar />
                <Avatar />
              </Group>
            </Box>
          </Box>
        </Box>
        <Box flex flexWrap>
          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">
                Group 2
                <br />
                Horizontal
              </Text>
            </Box>
            <Box mt={2}>
              <Group maxCounter={2} horizontal>
                <Avatar />
                <Avatar />
              </Group>
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">
                Group 3
                <br />
                Horizontal
              </Text>
            </Box>
            <Box mt={2}>
              <Group maxCounter={3} horizontal>
                <Avatar />
                <Avatar />
                <Avatar />
              </Group>
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">
                Group 4
                <br />
                Horizontal
              </Text>
            </Box>
            <Box mt={2}>
              <Group horizontal>
                <Avatar />
                <Avatar />
                <Avatar />
                <Avatar />
              </Group>
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">
                Group 4+
                <br />
                Horizontal
              </Text>
            </Box>
            <Box mt={2}>
              <Group horizontal>
                <Avatar />
                <Avatar />
                <Avatar />
                <Avatar />
                <Avatar />
                <Avatar />
                <Avatar />
                <Avatar />
              </Group>
            </Box>
          </Box>
        </Box>
      </Page>
      <Page className="section-container">
        <Text.Title size="small">Add-on</Text.Title>
        <Box flex mt={6} flexWrap>
          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">Online</Text>
            </Box>
            <Box mt={2}>
              <Avatar online />
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">Online + Story</Text>
            </Box>
            <Box mt={2}>
              <Avatar online story="default" />
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">Online + Story Seen</Text>
            </Box>
            <Box mt={2}>
              <Avatar online story="seen" />
            </Box>
          </Box>
          <Box mt={6} mr={6} flex flexDirection="column">
            <Box>
              <Text size="xxSmall">Blocked</Text>
            </Box>
            <Box mt={2}>
              <Avatar blocked />
            </Box>
          </Box>
        </Box>
      </Page>
    </>
  );
}

export default AvatarPage;