Linting
This commit is contained in:
parent
25340429ee
commit
79753de78f
@ -23,7 +23,7 @@ const REPLHistory: NextPage<REPLHistoryParams> = ({history, inputRef}) => {
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
};
|
||||||
|
|
||||||
const makeLinks = (line: string) => {
|
const makeLinks = (line: string) => {
|
||||||
let idxStart = line.indexOf("#{");
|
let idxStart = line.indexOf("#{");
|
||||||
@ -31,7 +31,7 @@ const REPLHistory: NextPage<REPLHistoryParams> = ({history, inputRef}) => {
|
|||||||
let idxEnd = line.indexOf("}", idxSep);
|
let idxEnd = line.indexOf("}", idxSep);
|
||||||
if (idxStart === -1 || idxSep === -1 || idxEnd === -1) return [line];
|
if (idxStart === -1 || idxSep === -1 || idxEnd === -1) return [line];
|
||||||
|
|
||||||
const result = []
|
const result = [];
|
||||||
|
|
||||||
while (idxStart !== -1 && idxSep !== -1 && idxEnd !== -1) {
|
while (idxStart !== -1 && idxSep !== -1 && idxEnd !== -1) {
|
||||||
const linkText = line.substring(idxStart+2, idxSep);
|
const linkText = line.substring(idxStart+2, idxSep);
|
||||||
@ -40,14 +40,14 @@ const REPLHistory: NextPage<REPLHistoryParams> = ({history, inputRef}) => {
|
|||||||
result.push(line.substring(0, idxStart));
|
result.push(line.substring(0, idxStart));
|
||||||
result.push(<Link href={linkHref}><a className={styles.link}>{linkText}</a></Link>);
|
result.push(<Link href={linkHref}><a className={styles.link}>{linkText}</a></Link>);
|
||||||
|
|
||||||
line = line.substring(idxEnd+1)
|
line = line.substring(idxEnd+1);
|
||||||
idxStart = line.indexOf("#{");
|
idxStart = line.indexOf("#{");
|
||||||
idxSep = line.indexOf("|", idxStart);
|
idxSep = line.indexOf("|", idxStart);
|
||||||
idxEnd = line.indexOf("}", idxSep);
|
idxEnd = line.indexOf("}", idxSep);
|
||||||
}
|
}
|
||||||
result.push(line.substring(idxEnd+1))
|
result.push(line.substring(idxEnd+1));
|
||||||
return result;
|
return result;
|
||||||
}
|
};
|
||||||
|
|
||||||
const makeCommands = (line: string|JSX.Element, indexKey: number) => {
|
const makeCommands = (line: string|JSX.Element, indexKey: number) => {
|
||||||
if (typeof line !== "string") return line;
|
if (typeof line !== "string") return line;
|
||||||
@ -56,7 +56,7 @@ const REPLHistory: NextPage<REPLHistoryParams> = ({history, inputRef}) => {
|
|||||||
let idxEnd = line.indexOf("}", idxStart);
|
let idxEnd = line.indexOf("}", idxStart);
|
||||||
if (idxStart === -1 || idxEnd === -1) return line;
|
if (idxStart === -1 || idxEnd === -1) return line;
|
||||||
|
|
||||||
const result = []
|
const result = [];
|
||||||
|
|
||||||
while (idxStart !== -1 && idxEnd !== -1) {
|
while (idxStart !== -1 && idxEnd !== -1) {
|
||||||
const cmdText = line.substring(idxStart+2, idxEnd);
|
const cmdText = line.substring(idxStart+2, idxEnd);
|
||||||
@ -65,27 +65,27 @@ const REPLHistory: NextPage<REPLHistoryParams> = ({history, inputRef}) => {
|
|||||||
result.push(<span className={styles.cmd} onClick={forceInput} key={`${indexKey}${line.length}${cmdText}`}>{cmdText}</span>);
|
result.push(<span className={styles.cmd} onClick={forceInput} key={`${indexKey}${line.length}${cmdText}`}>{cmdText}</span>);
|
||||||
|
|
||||||
|
|
||||||
line = line.substring(idxEnd+1)
|
line = line.substring(idxEnd+1);
|
||||||
idxStart = line.indexOf("%{");
|
idxStart = line.indexOf("%{");
|
||||||
idxEnd = line.indexOf("}", idxStart);
|
idxEnd = line.indexOf("}", idxStart);
|
||||||
}
|
}
|
||||||
result.push(line.substring(idxEnd+1))
|
result.push(line.substring(idxEnd+1));
|
||||||
return result;
|
return result;
|
||||||
}
|
};
|
||||||
|
|
||||||
const parseLine = (line: string) => {
|
const parseLine = (line: string) => {
|
||||||
if (line === "") return "\u00A0";
|
if (line === "") return "\u00A0";
|
||||||
|
|
||||||
const resultLinks = makeLinks(line);
|
const resultLinks = makeLinks(line);
|
||||||
const resultAll = resultLinks.map(makeCommands)
|
const resultAll = resultLinks.map(makeCommands);
|
||||||
return resultAll.flat()
|
return resultAll.flat();
|
||||||
}
|
};
|
||||||
|
|
||||||
return <div className={styles.container} onClick={focusInput}>
|
return <div className={styles.container} onClick={focusInput}>
|
||||||
{ history.map((value, idx) => {
|
{ history.map((value, idx) => {
|
||||||
return <div className={styles.line} key={idx}>
|
return <div className={styles.line} key={idx}>
|
||||||
{parseLine(value)}
|
{parseLine(value)}
|
||||||
</div>}
|
</div>;}
|
||||||
)}
|
)}
|
||||||
</div>;
|
</div>;
|
||||||
};
|
};
|
||||||
|
@ -19,7 +19,7 @@ const REPLInput: NextPage<REPLInputParams> = ({historyCallback, historyClear, in
|
|||||||
inputRef.value = "";
|
inputRef.value = "";
|
||||||
if(typed.current) typed.current.innerHTML = "";
|
if(typed.current) typed.current.innerHTML = "";
|
||||||
if(completion.current) completion.current.innerHTML = "";
|
if(completion.current) completion.current.innerHTML = "";
|
||||||
}
|
};
|
||||||
|
|
||||||
const replinOnChange = (e: React.FormEvent<HTMLInputElement>) => {
|
const replinOnChange = (e: React.FormEvent<HTMLInputElement>) => {
|
||||||
const input = (e.target as HTMLInputElement);
|
const input = (e.target as HTMLInputElement);
|
||||||
@ -58,7 +58,7 @@ const REPLInput: NextPage<REPLInputParams> = ({historyCallback, historyClear, in
|
|||||||
|
|
||||||
if (e.key === "Enter") {
|
if (e.key === "Enter") {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
const command = (e.target as HTMLInputElement).value
|
const command = (e.target as HTMLInputElement).value;
|
||||||
if (command === "clear") {
|
if (command === "clear") {
|
||||||
clearInput(input);
|
clearInput(input);
|
||||||
historyClear();
|
historyClear();
|
||||||
|
@ -11,7 +11,7 @@ const REPL: NextPage<{inputRef: MutableRefObject<HTMLInputElement|undefined>}> =
|
|||||||
|
|
||||||
const focusInput = () => {
|
const focusInput = () => {
|
||||||
if (inputRef.current) inputRef.current.focus();
|
if (inputRef.current) inputRef.current.focus();
|
||||||
}
|
};
|
||||||
|
|
||||||
return (<div className={styles.container}>
|
return (<div className={styles.container}>
|
||||||
<REPLHistory history={history} inputRef={inputRef} />
|
<REPLHistory history={history} inputRef={inputRef} />
|
||||||
|
@ -184,21 +184,21 @@ const exitCmd: Command = {
|
|||||||
execute: () => {
|
execute: () => {
|
||||||
if (typeof window !== undefined) {
|
if (typeof window !== undefined) {
|
||||||
window.opener = null;
|
window.opener = null;
|
||||||
window.open('', '_self');
|
window.open("", "_self");
|
||||||
window.close();
|
window.close();
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
"If you can read this, closing the window did not work.",
|
"If you can read this, closing the window did not work.",
|
||||||
"This is most likely because of a restriction in JavaScript.",
|
"This is most likely because of a restriction in JavaScript.",
|
||||||
"#{Read more here|https://developer.mozilla.org/en-US/docs/Web/API/Window/close}."
|
"#{Read more here|https://developer.mozilla.org/en-US/docs/Web/API/Window/close}."
|
||||||
]
|
];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const clear: Command = {
|
const clear: Command = {
|
||||||
name: "clear",
|
name: "clear",
|
||||||
desc: "Clears the output on screen.",
|
desc: "Clears the output on screen.",
|
||||||
execute: () => []
|
execute: () => []
|
||||||
}
|
};
|
||||||
|
|
||||||
export const commandList = [about, help, man, project, exitCmd, clear];
|
export const commandList = [about, help, man, project, exitCmd, clear];
|
@ -9,9 +9,7 @@ import styles from "../styles/Home.module.css";
|
|||||||
const Home: NextPage = () => {
|
const Home: NextPage = () => {
|
||||||
const inputRef = useRef<HTMLInputElement>();
|
const inputRef = useRef<HTMLInputElement>();
|
||||||
|
|
||||||
const focusInput = () => {
|
const focusInput = () => {if (inputRef.current) inputRef.current.focus();};
|
||||||
console.log("Focus")
|
|
||||||
if (inputRef.current) inputRef.current.focus();};
|
|
||||||
|
|
||||||
return (<>
|
return (<>
|
||||||
<Head>
|
<Head>
|
||||||
|
Loading…
Reference in New Issue
Block a user