Bulk action bar

Playground

Usage

선택 수를 전달하고 작업 및 선택 해제 슬롯을 연결합니다. 선택 상태와 데이터 변경은 앱에서 관리합니다.

'use client';
import { useRef, useState } from 'react';
import { BulkActionBar, Button, Checkbox } from '@mbsw/ui';

export default function Example({ onComplete }: { onComplete: () => void }) {
  const [selected, setSelected] = useState(true);
  const checkbox = useRef<HTMLButtonElement>(null);
  const bar = useRef<HTMLDivElement>(null);
  const clear = () => {
    if (bar.current?.contains(document.activeElement))
      checkbox.current?.focus();
    setSelected(false);
  };
  return (
    <>
      <label>
        <Checkbox
          ref={checkbox}
          checked={selected}
          onCheckedChange={(value) => setSelected(value === true)}
        />{' '}
        {"항목 1"}
      </label>
      {selected && (
        <BulkActionBar
          ref={bar}
          selectionLabel={"1개 선택됨"}
          actions={
            <Button
              size="sm"
              onClick={() => {
                clear();
                onComplete();
              }}
            >
              {"완료"}
            </Button>
          }
          clearAction={
            <Button size="sm" onClick={clear}>
              {"선택 해제"}
            </Button>
          }
        />
      )}
    </>
  );
}

Playground의 Code 탭에서 현재 설정과 동작이 포함된 예제 전체를 복사할 수 있습니다. 공통 CSS 설치는 설치하기를 확인하세요.

Composition