UNPKG

react-drag-panel

Version:
68 lines (64 loc) 1.87 kB
import React, { JSX } from 'react'; interface Panel { id?: string; x?: number; y?: number; w?: number; h?: number; content?: string; } interface PanelGridProps { /** * 렌더링할 패널 배열 * 각 패널은 위치(x, y), 크기(w, h), 고유 id 등을 포함함 */ panels?: Panel[]; /** * 한 줄에 배치할 컬럼 수 * 기본값은 12 */ cols?: number; /** * 한 grid row 당 높이 (px 단위) * 패널 높이 계산에 사용됨 */ rowHeight?: number; /** * 전체 grid 컨테이너의 너비 (px 단위) */ width?: number; /** * 각 패널 사이의 간격: [수평(px), 수직(px)] * 기본값은 [0, 0] */ margin?: [number, number]; /** * grid 컨테이너의 안쪽 여백: [좌우(px), 상하(px)] * 기본값은 [0, 0] */ padding?: [number, number]; /** * 드래그 앤 드롭 기능 활성화 여부 * 기본값은 true */ isDraggable?: boolean; /** * 드래그 앤 드롭 시 패널 간 충돌 방지 여부 * 기본값은 true */ preventCollision?: boolean; /** * 패널 위치가 변경될 때 호출되는 콜백 함수 */ onLayoutChange?: (layout: Panel[]) => void; /** * 각 패널에 대응되는 자식 React 요소들 */ children?: React.ReactNode; } /** * PanelGrid는 주어진 패널 데이터를 기반으로 고정된 컬럼 수와 행 높이에 따라 * 격자 형태로 자식 컴포넌트를 배치하고, 드래그 앤 드롭을 통해 순서를 재배치할 수 있는 컴포넌트입니다. */ declare const PanelGrid: ({ panels, cols, rowHeight, width, margin, padding, isDraggable, preventCollision, onLayoutChange, children, }: PanelGridProps) => JSX.Element; export { PanelGrid };