Add program context

This commit is contained in:
Werner
2023-06-08 17:26:49 -03:00
parent bd3ac873b3
commit 5f56f11324
4 changed files with 36 additions and 4 deletions

View File

@ -1,5 +1,6 @@
import '@/styles/globals.css' import '@/styles/globals.css'
import { ProgramContextProvider } from '../src/ProgramContext';
export default function App({ Component, pageProps }) { export default function App({ Component, pageProps }) {
return <Component {...pageProps} /> return <ProgramContextProvider><Component {...pageProps} /></ProgramContextProvider>
} }

View File

@ -11,8 +11,20 @@ import NavDropdown from 'react-bootstrap/NavDropdown'
import Row from 'react-bootstrap/Row' import Row from 'react-bootstrap/Row'
import Col from 'react-bootstrap/Col' import Col from 'react-bootstrap/Col'
import Button from 'react-bootstrap/Button'; import Button from 'react-bootstrap/Button';
import { useRouter } from 'next/router';
import { useContext } from 'react';
import { ProgramContext } from '../src/ProgramContext';
export default function Home() { export default function Home() {
const router = useRouter();
const { updateProgram } = useContext(ProgramContext);
const handleClick = () => {
const program = { name: 'John', age: 25 };
updateProgram(program);
router.push('/runner');
};
const [instructionStatus, setInstructionStatus] = useState([]); const [instructionStatus, setInstructionStatus] = useState([]);
const geraTabelaParaInserirInstrucoes = (nInst) => { const geraTabelaParaInserirInstrucoes = (nInst) => {
@ -109,9 +121,7 @@ export default function Home() {
<h3>Instructions</h3> <h3>Instructions</h3>
</Col> </Col>
<Col className="text-end"> <Col className="text-end">
<Link href="/runner"> <Button className="ms-4" variant="primary" onClick={handleClick}>Execute</Button>
<Button className="ms-4" variant="primary">Execute</Button>
</Link>
</Col> </Col>
</Row> </Row>
<Row className="mb-3"> <Row className="mb-3">

View File

@ -9,8 +9,12 @@ import Row from 'react-bootstrap/Row'
import Col from 'react-bootstrap/Col' import Col from 'react-bootstrap/Col'
import { useState } from 'react'; import { useState } from 'react';
import Button from 'react-bootstrap/Button'; import Button from 'react-bootstrap/Button';
import { useContext } from 'react';
import { ProgramContext } from '../src/ProgramContext';
export default function Home() { export default function Home() {
const { program } = useContext(ProgramContext);
let baseI = { let baseI = {
issue: null, issue: null,
exeCompleta: null, exeCompleta: null,

17
src/ProgramContext.js Normal file
View File

@ -0,0 +1,17 @@
import { createContext, useState } from 'react';
export const ProgramContext = createContext(null);
export const ProgramContextProvider = ({ children }) => {
const [program, setProgram] = useState({});
const updateProgram = (newObject) => {
setProgram(newObject);
};
return (
<ProgramContext.Provider value={{ program, updateProgram }}>
{children}
</ProgramContext.Provider>
);
};