-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontext.js
More file actions
40 lines (34 loc) · 821 Bytes
/
context.js
File metadata and controls
40 lines (34 loc) · 821 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import React, { Component } from 'react'
import { AsyncStorage } from 'react-native'
export const AppContext = React.createContext()
export const AppConsumer = AppContext.Consumer
export class AppProvider extends Component {
constructor () {
super()
this.state = {
userId: null,
communityMode: false
}
this._bootstrapAsync()
}
setGlobalState = (obj) => {
this.setState(obj)
}
async _bootstrapAsync () {
this.setState({
userId: await AsyncStorage.getItem('userId')
})
}
render () {
return (
<AppContext.Provider
value={{
userId: this.state.userId,
communityMode: this.state.communityMode,
setGlobalState: this.setGlobalState
}}>
{this.props.children}
</AppContext.Provider>
)
}
}