diff --git a/web-chat/src/App.tsx b/web-chat/src/App.tsx index 5fc3d668b3..2a2d8fad91 100644 --- a/web-chat/src/App.tsx +++ b/web-chat/src/App.tsx @@ -2,15 +2,19 @@ import React from 'react'; import './App.css'; import Room from './Room'; import WakuMock from './WakuMock'; +import { WakuContext } from './WakuContext'; interface Props { } interface State { - messages: string[] + messages: string[], + waku?: WakuMock } class App extends React.Component { + waku?: WakuMock; + constructor(props: Props) { super(props); @@ -18,20 +22,25 @@ class App extends React.Component { messages: [] }; - WakuMock.create().then((wakuMock) => { - wakuMock.on('message',(message)=>{ - const messages = this.state.messages.slice(); - messages.push(message.message); - this.setState({messages}); - }) - }); + WakuMock.create().then((wakuMock) => { + + this.setState({ waku: wakuMock, messages: this.state.messages }); + + wakuMock.on('message', (message) => { + const messages = this.state.messages.slice(); + messages.push(message.message); + this.setState({ messages }); + }); + }); } render() { return (
- + + +
); diff --git a/web-chat/src/Room.tsx b/web-chat/src/Room.tsx index 731aa74821..ca077222e6 100644 --- a/web-chat/src/Room.tsx +++ b/web-chat/src/Room.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import Send from './Send'; interface Props { lines: string[] @@ -7,11 +8,15 @@ interface Props { interface State { } + export default class Room extends React.Component { render() { return ( -
- {this.renderLines(this.props.lines)} +
+ +
+ {this.renderLines(this.props.lines)} +
); } diff --git a/web-chat/src/Send.tsx b/web-chat/src/Send.tsx new file mode 100644 index 0000000000..02c32e13a8 --- /dev/null +++ b/web-chat/src/Send.tsx @@ -0,0 +1,21 @@ +import React from 'react'; +import { useWaku } from './WakuContext'; + +interface Props { +} + +interface State { +} + +const Send = () => { + const { waku } = useWaku(); + + return ( + + ); +}; + +export default Send; diff --git a/web-chat/src/WakuContext.ts b/web-chat/src/WakuContext.ts new file mode 100644 index 0000000000..0d75705240 --- /dev/null +++ b/web-chat/src/WakuContext.ts @@ -0,0 +1,10 @@ +import { createContext, useContext } from 'react'; +import WakuMock from './WakuMock'; + +export type WakuContextType = { + waku?: WakuMock; + // setWaku: (waku: WakuMock) => void; +} + +export const WakuContext = createContext({ waku: undefined }); +export const useWaku = () => useContext(WakuContext);