react-mosaic-component2
Version:
A React Tiling Window Manager
60 lines (57 loc) • 2.58 kB
TypeScript
import React__default, { ReactElement } from 'react';
import { ConnectDragSource, ConnectDragPreview, ConnectDropTarget } from 'react-dnd';
import { MosaicContext } from './contextTypes.js';
import { MosaicKey, MosaicBranch, CreateNode } from './types.js';
import 'immutability-helper';
interface MosaicWindowProps<T extends MosaicKey> {
title: string;
path: MosaicBranch[];
children?: React__default.ReactNode;
className?: string;
toolbarControls?: React__default.ReactNode;
additionalControls?: React__default.ReactNode;
additionalControlButtonText?: string;
onAdditionalControlsToggle?: (toggle: boolean) => void;
disableAdditionalControlsOverlay?: boolean;
draggable?: boolean;
createNode?: CreateNode<T>;
renderPreview?: (props: MosaicWindowProps<T>) => ReactElement;
renderToolbar?: ((props: MosaicWindowProps<T>, draggable: boolean | undefined) => ReactElement) | null;
onDragStart?: () => void;
onDragEnd?: (type: 'drop' | 'reset') => void;
}
interface InternalDragSourceProps {
connectDragSource: ConnectDragSource;
connectDragPreview: ConnectDragPreview;
}
interface InternalDropTargetProps {
connectDropTarget: ConnectDropTarget;
isOver: boolean;
draggedMosaicId: string | undefined;
}
type InternalMosaicWindowProps<T extends MosaicKey> = MosaicWindowProps<T> & InternalDropTargetProps & InternalDragSourceProps;
interface InternalMosaicWindowState {
additionalControlsOpen: boolean;
}
declare class InternalMosaicWindow<T extends MosaicKey> extends React__default.Component<InternalMosaicWindowProps<T>, InternalMosaicWindowState> {
static defaultProps: Partial<InternalMosaicWindowProps<any>>;
static contextType: React__default.Context<MosaicContext<MosaicKey>>;
context: React__default.ContextType<typeof MosaicContext>;
state: InternalMosaicWindowState;
private rootElement;
render(): React__default.JSX.Element;
private getToolbarControls;
private renderToolbar;
private renderDropTarget;
private checkCreateNode;
private split;
private swap;
private setAdditionalControlsOpen;
private getPath;
private connectDragSource;
private readonly childContext;
}
declare class MosaicWindow<T extends MosaicKey = string> extends React__default.PureComponent<MosaicWindowProps<T>> {
render(): React__default.JSX.Element;
}
export { type InternalDragSourceProps, type InternalDropTargetProps, InternalMosaicWindow, type InternalMosaicWindowProps, type InternalMosaicWindowState, MosaicWindow, type MosaicWindowProps };