import RedoIcon from '@mui/icons-material/Redo';
import UndoIcon from '@mui/icons-material/Undo';
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
import { mergeRegister } from '@lexical/utils';
import {
CAN_REDO_COMMAND,
CAN_UNDO_COMMAND,
REDO_COMMAND,
UNDO_COMMAND
} from 'lexical';
import { useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { IconButton } from '../../..';
import { labelRedo, labelUndo } from '../../translatedLabels';
import { useStyles } from './ToolbarPlugin.styles';
const LowPriority = 1;
interface Props {
disabled: boolean;
}
const UndoRedoButtons = ({ disabled }: Props): JSX.Element => {
const { classes } = useStyles();
const { t } = useTranslation();
const [canUndo, setCanUndo] = useState(false);
const [canRedo, setCanRedo] = useState(false);
const [editor] = useLexicalComposerContext();
useEffect(() => {
return mergeRegister(
editor.registerCommand(
CAN_UNDO_COMMAND,
(payload) => {
setCanUndo(payload);
return false;
},
LowPriority
),
editor.registerCommand(
CAN_REDO_COMMAND,
(payload) => {
setCanRedo(payload);
return false;
},
LowPriority
)
);
}, [editor.registerCommand]);
const undo = (): void => {
editor.dispatchCommand(UNDO_COMMAND, undefined);
};
const redo = (): void => {
editor.dispatchCommand(REDO_COMMAND, undefined);
};
const translatedUndo = t(labelUndo);
const translatedRedo = t(labelRedo);
return (
<>
>
);
};
export default UndoRedoButtons;