File tree Expand file tree Collapse file tree 5 files changed +59
-1
lines changed
components/WebSocketProvider Expand file tree Collapse file tree 5 files changed +59
-1
lines changed Original file line number Diff line number Diff line change 1
1
import React from "react" ;
2
2
import { AntdRegistry } from "@ant-design/nextjs-registry" ;
3
3
import { ConfigProvider } from "antd" ;
4
+ import WebSocketProvider from "@/components/WebSocketProvider/websocketprovider" ;
4
5
5
6
const RootLayout = ( {
6
7
children,
@@ -23,7 +24,11 @@ const RootLayout = ({
23
24
} ,
24
25
} }
25
26
>
26
- < AntdRegistry > { children } </ AntdRegistry >
27
+ < AntdRegistry >
28
+ < WebSocketProvider >
29
+ { children }
30
+ </ WebSocketProvider >
31
+ </ AntdRegistry >
27
32
</ ConfigProvider >
28
33
</ body >
29
34
</ html >
Original file line number Diff line number Diff line change
1
+ "use client" ;
2
+ import {
3
+ Button ,
4
+ Layout ,
5
+ } from "antd" ;
6
+ import { Content } from "antd/es/layout/layout" ;
7
+ import Header from "@/components/Header/header"
8
+ import "./styles.scss" ;
9
+ import { useContext } from "react" ;
10
+ import { WebSocketContext } from "@/contexts/websocketcontext" ;
11
+
12
+ export default function ProfilePage ( ) : JSX . Element {
13
+ const { open, toggle} = useContext ( WebSocketContext ) ! // ! is a null-check
14
+ return (
15
+ < Layout className = "layout" >
16
+ < Header selectedKey = { [ "0" ] } />
17
+ < Content className = "content" >
18
+ < Button onClick = { toggle } > Toggle me</ Button >
19
+ < p > { open ? "OPEN" : "CLOSE" } </ p >
20
+ </ Content >
21
+ </ Layout >
22
+ )
23
+ }
Original file line number Diff line number Diff line change
1
+ @use " ../styles.scss"
Original file line number Diff line number Diff line change
1
+ "use client"
2
+
3
+ import { ReactNode , useState } from "react"
4
+ import { WebSocketContext } from "@/contexts/websocketcontext" ;
5
+
6
+ export default function WebSocketProvider ( { children} : { children : ReactNode } ) {
7
+ const [ open , setOpen ] = useState ( false )
8
+ function toggle ( ) {
9
+ if ( open ) {
10
+ setOpen ( false )
11
+ } else {
12
+ setOpen ( true )
13
+ }
14
+ }
15
+
16
+ return < WebSocketContext . Provider value = { { toggle, open} } >
17
+ { children }
18
+ </ WebSocketContext . Provider >
19
+ }
Original file line number Diff line number Diff line change
1
+ "use client" ;
2
+ import { createContext } from "react" ;
3
+
4
+ type SocketState = {
5
+ toggle : ( ) => void ;
6
+ open : boolean ;
7
+ } ;
8
+
9
+ export const WebSocketContext = createContext < SocketState | null > ( null ) ;
10
+
You can’t perform that action at this time.
0 commit comments