fix passing of options

This commit is contained in:
Pavel Prichodko 2022-08-23 14:59:55 +02:00
parent 450a096ebe
commit 689a6796e0
No known key found for this signature in database
GPG Key ID: 0EB8D75C775AB6F1
3 changed files with 15 additions and 10 deletions

View File

@ -33,11 +33,11 @@ const initialState: State = {
interface Props { interface Props {
children: React.ReactNode children: React.ReactNode
config: Config options: Config['options']
} }
export const AppProvider = (props: Props) => { export const AppProvider = (props: Props) => {
const { children, config } = props const { children, options } = props
const [state, dispatch] = useReducer(reducer, initialState) const [state, dispatch] = useReducer(reducer, initialState)
@ -46,13 +46,12 @@ export const AppProvider = (props: Props) => {
state, state,
dispatch, dispatch,
options: { options: {
enableSidebar: true, enableSidebar: options?.enableSidebar ?? true,
enableMembers: true, enableMembers: options?.enableMembers ?? true,
...config.options,
}, },
}), }),
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
[state, config.options] [state, options]
) )
return <AppContext.Provider value={value}>{children}</AppContext.Provider> return <AppContext.Provider value={value}>{children}</AppContext.Provider>

View File

@ -65,7 +65,7 @@ export const ProtocolProvider = (props: Props) => {
useEffect(() => { useEffect(() => {
const loadClient = async () => { const loadClient = async () => {
const client = await createClient({ publicKey: options.publicKey }) const client = await createClient(options)
dispatch({ type: 'INIT', client }) dispatch({ type: 'INIT', client })
} }

View File

@ -42,14 +42,20 @@ const Gate = (props: { children: JSX.Element }) => {
} }
export const Community = (props: Props) => { export const Community = (props: Props) => {
const { theme, router: Router = BrowserRouter } = props const {
theme,
router: Router = BrowserRouter,
publicKey,
environment,
options,
} = props
useTheme(theme) useTheme(theme)
return ( return (
<Router> <Router>
<ProtocolProvider options={{ publicKey: props.publicKey }}> <ProtocolProvider options={{ publicKey, environment }}>
<AppProvider config={props}> <AppProvider options={options}>
<DialogProvider> <DialogProvider>
<GlobalStyle /> <GlobalStyle />
<Wrapper> <Wrapper>