Me gustaría realizar una ventana de consola como la ventana de consola en VS Code.
En VS Code, cuando hacemos clic en Shift + Command + Y , se abre una ventana de consola debajo de la ventana de código. Hay varias características:
Traté de crear un codesandbox . Pero no tiene la función 2 y la función 3.
¿Alguien podría ayudar?
import { useState } from "react"; import { Button } from "@material-ui/core"; import "./styles.css"; export default function App() { const [textState, setTextState] = useState("off"); const toggleText = () => { setTextState((state) => (state === "On" ? "Off" : "On")); }; return ( <> <Button variant="contained" color="primary" onClick={toggleText}> Toggle </Button> <div style={{ overflowY: "scroll", height: "300px", fontSize: "30px" }}> <h1>code 1</h1> <h1>code 2</h1> <h1>code 3</h1> </div> <div> {textState === "On" && ( <div style={{ overflowY: "scroll", height: "200px", fontSize: "30px" }} > <h1>console 1</h1> <h1>console 2</h1> <h1>console 3</h1> </div> )} </div> </> ); }Para la segunda pregunta, puede configurar la altura del área del code a la altura completa cuando la vista de la console está oculta.
height: `${textState === "On" ? 500 - consoleAreaHeight : 500}px` Para la tercera pregunta, podría lograrse usando una ref y un controlador de movimiento del mouse.
const consoleRef = useRef(null); const mouseMoveHandler = (e) => { e.preventDefault(); if (resizing) { const delta = consoleRef.current.getBoundingClientRect().top - e.clientY; setConsoleAreaHeight( (prevConsoleAreaHeight) => prevConsoleAreaHeight + delta ); } };Caja de arena de código => https://codesandbox.io/s/react-material-togglebuttonexample-forked-dk7lu?file=/src/App.jsx
