import { Tooltip } from '@mui/material'; import { Popup, Type } from 'browndash-components'; import { observable } from 'mobx'; import { observer } from 'mobx-react'; import * as React from 'react'; import { StrCast } from '../../fields/Types'; import { SettingsManager } from '../util/SettingsManager'; import { UndoManager } from '../util/UndoManager'; import './UndoStack.scss'; interface UndoStackProps { width?: number; height?: number; inline?: boolean; } @observer export class UndoStack extends React.Component { @observable static HideInline: boolean; @observable static Expand: boolean; render() { const background = UndoManager.batchCounter.get() ? 'yellow' : SettingsManager.userVariantColor; const color = UndoManager.batchCounter.get() ? 'black' : SettingsManager.userColor; return this.props.inline && UndoStack.HideInline ? null : (
r?.scroll({ behavior: 'auto', top: r?.scrollHeight + 20 })} style={{ background, color, }}> {Array.from(UndoManager.undoStackNames).map((name, i) => (
{ const size = UndoManager.undoStackNames.length; for (let n = 0; n < size-i; n++ ) UndoManager.Undo(); } } >
{StrCast(name).replace(/[^\.]*\./, '')}
))} {Array.from(UndoManager.redoStackNames) .reverse() .map((name, i) => (
{ for (let n = 0; n <= i; n++ ) UndoManager.Redo() }}>
{StrCast(name).replace(/[^\.]*\./, '')}
))}
} />
); } }