mirror of
https://github.com/guilhermewerner/tomasulo-simulator
synced 2025-06-14 21:04:21 +00:00
Add program context
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
import '@/styles/globals.css'
|
||||
import { ProgramContextProvider } from '../src/ProgramContext';
|
||||
|
||||
export default function App({ Component, pageProps }) {
|
||||
return <Component {...pageProps} />
|
||||
return <ProgramContextProvider><Component {...pageProps} /></ProgramContextProvider>
|
||||
}
|
||||
|
@ -11,8 +11,20 @@ import NavDropdown from 'react-bootstrap/NavDropdown'
|
||||
import Row from 'react-bootstrap/Row'
|
||||
import Col from 'react-bootstrap/Col'
|
||||
import Button from 'react-bootstrap/Button';
|
||||
import { useRouter } from 'next/router';
|
||||
import { useContext } from 'react';
|
||||
import { ProgramContext } from '../src/ProgramContext';
|
||||
|
||||
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 geraTabelaParaInserirInstrucoes = (nInst) => {
|
||||
@ -109,9 +121,7 @@ export default function Home() {
|
||||
<h3>Instructions</h3>
|
||||
</Col>
|
||||
<Col className="text-end">
|
||||
<Link href="/runner">
|
||||
<Button className="ms-4" variant="primary">Execute</Button>
|
||||
</Link>
|
||||
<Button className="ms-4" variant="primary" onClick={handleClick}>Execute</Button>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row className="mb-3">
|
||||
|
@ -9,8 +9,12 @@ import Row from 'react-bootstrap/Row'
|
||||
import Col from 'react-bootstrap/Col'
|
||||
import { useState } from 'react';
|
||||
import Button from 'react-bootstrap/Button';
|
||||
import { useContext } from 'react';
|
||||
import { ProgramContext } from '../src/ProgramContext';
|
||||
|
||||
export default function Home() {
|
||||
const { program } = useContext(ProgramContext);
|
||||
|
||||
let baseI = {
|
||||
issue: null,
|
||||
exeCompleta: null,
|
||||
|
17
src/ProgramContext.js
Normal file
17
src/ProgramContext.js
Normal 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>
|
||||
);
|
||||
};
|
Reference in New Issue
Block a user