Remove badge

Playground

Properties

Size

Usage

제거할 항목 옆에 배치하고 onClick에서 실제 제거를 처리합니다.

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

export default function Example() {
  const [visible, setVisible] = useState(true);
  const transferFocus = useRef(false);
  const changeVisibility = (next: boolean, button: HTMLButtonElement) => {
    transferFocus.current = button === button.ownerDocument.activeElement;
    setVisible(next);
  };
  const restoreFocus = (button: HTMLButtonElement | null) => {
    if (button && transferFocus.current) {
      transferFocus.current = false;
      button.focus();
    }
  };
  return visible ? (
    <span style={{ display: 'inline-flex', alignItems: 'center', gap: 8 }}>
      {"항목 1"}
      <RemoveBadge
        ref={restoreFocus}
        aria-label={"항목 1 제거"}
        onClick={(event) => changeVisibility(false, event.currentTarget)}
      />
    </span>
  ) : (
    <Button
      ref={restoreFocus}
      onClick={(event) => changeVisibility(true, event.currentTarget)}
    >
      {"다시 추가"}
    </Button>
  );
}

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

Composition