Toggle
Playground
TSX
'use client';
import { useEffect, useRef, useState } from 'react';
import { Toggle, type ToggleSize, type ToggleShape } from '@mbsw/ui';
import { Plus, ChevronDown } from 'lucide-react';
import { Icon } from '@mbsw/ui';
export default function Demo() {
const settings = {
"leadingIcon": false,
"trailingIcon": false,
"pressed": true,
"label": "텍스트",
"size": "md",
"shape": "square",
"disabled": false
};
const [pressed, setPressed] = useState(settings.pressed);
const previousSetting = useRef(settings.pressed);
useEffect(() => {
if (previousSetting.current === settings.pressed) return;
previousSetting.current = settings.pressed;
setPressed(settings.pressed);
}, [settings.pressed]);
return (
<Toggle
leading={
settings.leadingIcon ? (
<Icon icon={Plus} size="sm" decorative />
) : undefined
}
trailing={
settings.trailingIcon ? (
<Icon icon={ChevronDown} size="sm" decorative />
) : undefined
}
pressed={pressed}
onPressedChange={(next) => {
setPressed(next);
}}
size={settings.size as ToggleSize}
shape={settings.shape as ToggleShape}
disabled={settings.disabled}
>
{settings.label}
</Toggle>
);
}
Usage
Toggle은 pressed 상태를 전환합니다. ToggleLink는 href로 이동하며 selected로 현재 위치를 표시합니다.
TSX
'use client';
import { Toggle } from '@mbsw/ui';
export default function Example() {
return <Toggle defaultPressed>{"텍스트"}</Toggle>;
}
Playground의 Code 탭에서 현재 설정과 동작이 포함된 예제 전체를 복사할 수 있습니다. 공통 CSS 설치는 설치하기를 확인하세요.