import React, { useState } from "react"; import { Options } from "./Options"; import { Modal } from "../../ui/React/Modal"; import Button from "@mui/material/Button"; import Box from "@mui/material/Box"; import Typography from "@mui/material/Typography"; import Select from "@mui/material/Select"; import Switch from "@mui/material/Switch"; import MenuItem from "@mui/material/MenuItem"; import TextField from "@mui/material/TextField"; interface IProps { options: Options; save: (options: Options) => void; onClose: () => void; open: boolean; } export function OptionsModal(props: IProps): React.ReactElement { const [theme, setTheme] = useState(props.options.theme); const [insertSpaces, setInsertSpaces] = useState(props.options.insertSpaces); const [fontSize, setFontSize] = useState(props.options.fontSize); const [vim, setVim] = useState(props.options.vim); function save(): void { props.save({ theme, insertSpaces, fontSize, vim, }); props.onClose(); } function onFontChange(event: React.ChangeEvent): void { const f = parseFloat(event.target.value); if (isNaN(f)) return; setFontSize(f); } return ( Theme: Use whitespace over tabs: setInsertSpaces(event.target.checked)} checked={insertSpaces} /> Enable vim mode: setVim(event.target.checked)} checked={vim} />
); }