TimeGrid
TimeGrid
미리 정의된 시간 옵션 집합으로 사용자로부터 시간 값을 입력받는 컴포넌트예요.
출처: 문서
본문
사용법 (Usage)
TimeGrid 컴포넌트를 사용해 미리 정의된 시간 슬롯 집합으로 시간 값을 입력받아요.
import { getTimeRange, TimeGrid } from '@mantine/dates';
function Demo() {
return <TimeGrid data={getTimeRange('10:00', '21:00', '01:00')} format="24h" />;
}
제어 컴포넌트 (Controlled)
import { useState } from 'react';
import { TimeGrid } from '@mantine/dates';
function Demo() {
const [value, setValue] = useState('10:00');
return <TimeGrid data={['10:00', '11:00']} value={value} onChange={setValue} />;
}
data prop
data prop은 24시간 형식의 시간 값 배열을 받아요. 값은 고유해야 해요. 시간 범위를 생성하려면 @mantine/dates 패키지에서 내보내는 getTimeRange 함수를 사용해요.
import { TimeGrid, getTimeRange } from '@mantine/dates';
function WithArray() {
return <TimeGrid data={['10:00', '11:00', '12:00']} />;
}
function WithRange() {
// 이 예시에서는 10:00부터 14:00까지 1시간 스텝으로 시간 범위를 생성해요:
// ['10:00', '11:00', '12:00', '13:00', '14:00']
return <TimeGrid data={getTimeRange('10:00', '14:00', '01:00')} />;
}
최소·최대 시간 (Min and max time)
minTime과 maxTime props로 사용 가능한 시간 범위를 제한할 수 있어요. 두 props 모두 24시간 형식의 시간 값을 받아요.
import { getTimeRange, TimeGrid } from '@mantine/dates';
function Demo() {
return <TimeGrid data={getTimeRange('09:00', '22:00', '01:00')} minTime="10:00" maxTime="18:00" />;
}
특정 컨트롤 비활성화 (Disable specific controls)
disableTime prop에 비활성화할 값의 배열을 제공해 특정 시간 값을 비활성화할 수 있어요.
import { getTimeRange, TimeGrid } from '@mantine/dates';
function Demo() {
return <TimeGrid data={getTimeRange('09:00', '11:45', '00:15')} disableTime={['09:30', '10:30']} />;
}
선택 해제 허용 (Allow deselect)
allowDeselect prop을 설정하면 선택된 값을 가진 컨트롤을 클릭해 시간 값을 선택 해제할 수 있어요.
import { getTimeRange, TimeGrid } from '@mantine/dates';
function Demo() {
return <TimeGrid data={getTimeRange('09:00', '14:00', '01:00')} allowDeselect />;
}
AM/PM 라벨 변경 (Change AM/PM labels)
import { getTimeRange, TimeGrid } from '@mantine/dates';
function Demo() {
return <TimeGrid format="12h" data={getTimeRange('09:00', '22:00', '01:00')} amPmLabels={['पूर्वाह्न', 'अपराह्न']} />;
}
비활성 (Disabled)
disabled prop으로 모든 컨트롤을 비활성화할 수 있어요.
import { getTimeRange, TimeGrid } from '@mantine/dates';
function Demo() {
return <TimeGrid data={getTimeRange('09:00', '22:00', '01:00')} disabled />;
}