Merge pull request #3493 from Snarling/autocompleteFix

UI: FIX #3457 autocomplete suggestions no longer require hovering terminal input
This commit is contained in:
hydroflame
2022-04-18 11:01:19 -04:00
committed by GitHub
+13 -18
View File
@@ -3,8 +3,9 @@ import Typography from "@mui/material/Typography";
import { Theme } from "@mui/material/styles"; import { Theme } from "@mui/material/styles";
import makeStyles from "@mui/styles/makeStyles"; import makeStyles from "@mui/styles/makeStyles";
import createStyles from "@mui/styles/createStyles"; import createStyles from "@mui/styles/createStyles";
import Paper from "@mui/material/Paper";
import Popper from "@mui/material/Popper";
import TextField from "@mui/material/TextField"; import TextField from "@mui/material/TextField";
import Tooltip from "@mui/material/Tooltip";
import { KEY } from "../../utils/helpers/keyCodes"; import { KEY } from "../../utils/helpers/keyCodes";
import { ITerminal } from "../ITerminal"; import { ITerminal } from "../ITerminal";
@@ -376,22 +377,6 @@ export function TerminalInput({ terminal, router, player }: IProps): React.React
return ( return (
<> <>
<Tooltip
title={
possibilities.length > 0 ? (
<>
<Typography classes={{ root: classes.preformatted }} color={"primary"} paragraph={false}>
Possible autocomplete candidate:
</Typography>
<Typography classes={{ root: classes.preformatted }} color={"primary"} paragraph={false}>
{possibilities.join(" ")}
</Typography>
</>
) : (
""
)
}
>
<TextField <TextField
fullWidth fullWidth
color={terminal.action === null ? "primary" : "secondary"} color={terminal.action === null ? "primary" : "secondary"}
@@ -412,10 +397,20 @@ export function TerminalInput({ terminal, router, player }: IProps): React.React
</Typography> </Typography>
), ),
spellCheck: false, spellCheck: false,
onBlur: () => setPossibilities([]),
onKeyDown: onKeyDown, onKeyDown: onKeyDown,
}} }}
></TextField> ></TextField>
</Tooltip> <Popper open={possibilities.length > 0} anchorEl={terminalInput.current} placement={"top-end"}>
<Paper sx={{ m: 1, p: 2 }}>
<Typography classes={{ root: classes.preformatted }} color={"primary"} paragraph={false}>
Possible autocomplete candidates:
</Typography>
<Typography classes={{ root: classes.preformatted }} color={"primary"} paragraph={false}>
{possibilities.join(" ")}
</Typography>
</Paper>
</Popper>
</> </>
); );
} }