Skip to content

Commit 9546d9d

Browse files
authored
useContext added
1 parent 1ed08f4 commit 9546d9d

File tree

4 files changed

+46
-1
lines changed

4 files changed

+46
-1
lines changed

src/App.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ import { Click } from './components/Events/click';
77
import { Input } from './components/Events/Input';
88
import { Login } from './components/Hooks/Login';
99
import { User } from './components/Hooks/User';
10-
import {Counter} from './components/Hooks/Counter'
10+
import {Counter} from './components/Hooks/Counter';
11+
12+
import { Box } from './context/Box';
13+
import { ThemeContextProvider } from './context/ThemeContext';
1114
const App =() => {
1215
return (
1316
<>
@@ -27,6 +30,10 @@ const App =() => {
2730
<User />
2831
<h1>Reducer Hook</h1>
2932
<Counter />
33+
<h1>useContextHook</h1>
34+
<ThemeContextProvider>
35+
<Box />
36+
</ThemeContextProvider>
3037
</>
3138
);
3239
}

src/context/Box.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import {useContext} from 'react'
2+
import { ThemeContext } from './ThemeContext'
3+
export const Box = () => {
4+
const theme = useContext(ThemeContext);
5+
return (
6+
<>
7+
<div style={{ backgroundColor: theme.primary.main,color: theme.primary.text}}>
8+
Theme context
9+
</div>
10+
</>
11+
)
12+
}

src/context/ThemeContext.tsx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { createContext } from "react";
2+
import {theme} from './Theme'
3+
4+
type ThemeContextProviderProps = {
5+
children: React.ReactNode
6+
}
7+
8+
export const ThemeContext = createContext(theme);
9+
10+
export const ThemeContextProvider = ({children}:ThemeContextProviderProps) => {
11+
return (
12+
<ThemeContext.Provider value={theme}>
13+
{children}
14+
</ThemeContext.Provider>
15+
)
16+
}

src/context/theme.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export const theme = {
2+
primary: {
3+
main: '#3f51b5',
4+
text: '#fff',
5+
},
6+
secondary: {
7+
main: '#f50057',
8+
text: '#fff',
9+
}
10+
}

0 commit comments

Comments
 (0)