import { IReactionDisposer, observable, reaction } from 'mobx'; import { observer } from 'mobx-react'; import * as React from 'react'; import { Doc } from '../../fields/Doc'; import { NumCast } from '../../fields/Types'; import { emptyFunction, returnEmptyDoclist, returnEmptyFilter, returnEmptyString, returnFalse, returnTrue, emptyPath } from '../../Utils'; import { Transform } from '../util/Transform'; import { DocumentView } from './nodes/DocumentView'; import './Palette.scss'; export interface PaletteProps { x: number; y: number; thumb: number[]; thumbDoc: Doc; } @observer export default class Palette extends React.Component { private _selectedDisposer?: IReactionDisposer; @observable private _selectedIndex: number = 0; componentDidMount = () => { this._selectedDisposer = reaction( () => NumCast(this.props.thumbDoc.selectedIndex), i => (this._selectedIndex = i), { fireImmediately: true } ); }; componentWillUnmount = () => { this._selectedDisposer?.(); }; render() { return (
window.screen.width} PanelHeight={() => window.screen.height} renderDepth={0} isDocumentActive={returnTrue} isContentActive={emptyFunction} focus={emptyFunction} docViewPath={returnEmptyDoclist} styleProvider={returnEmptyString} whenChildContentsActiveChanged={emptyFunction} bringToFront={emptyFunction} childFilters={returnEmptyFilter} childFiltersByRanges={returnEmptyFilter} searchFilterDocs={returnEmptyDoclist} />
); } }