parent
3823cf35ce
commit
2c71e74919
@ -0,0 +1,6 @@ |
||||
import {Dispatch} from 'react' |
||||
import {Action} from '../types' |
||||
|
||||
export const dispatchCheckRemixd = (status: boolean) => (dispatch: Dispatch<Action<'SET_REMIXD_CONNECTION_STATUS'>>) => { |
||||
dispatch({type: 'SET_REMIXD_CONNECTION_STATUS', payload: status}) |
||||
} |
@ -0,0 +1 @@ |
||||
import {Dispatch} from 'react' |
@ -0,0 +1,4 @@ |
||||
import {createContext} from 'react' |
||||
import {IAppContext} from '../types' |
||||
|
||||
export const AppContext = createContext<IAppContext>({} as IAppContext) |
@ -0,0 +1,18 @@ |
||||
import {Actions, AppState} from '../types' |
||||
|
||||
export const appInitialState: AppState = { |
||||
isRemixdConnected: null |
||||
} |
||||
|
||||
export const appReducer = (state = appInitialState, action: Actions): AppState => { |
||||
switch (action.type) { |
||||
case 'SET_REMIXD_CONNECTION_STATUS': |
||||
return { |
||||
...state, |
||||
isRemixdConnected: action.payload |
||||
} |
||||
|
||||
default: |
||||
throw new Error() |
||||
} |
||||
} |
@ -0,0 +1,21 @@ |
||||
import {Dispatch} from 'react' |
||||
|
||||
export interface IAppContext { |
||||
appState: AppState |
||||
dispatch: Dispatch<any> |
||||
} |
||||
|
||||
export interface ActionPayloadTypes { |
||||
SET_REMIXD_CONNECTION_STATUS: boolean |
||||
} |
||||
|
||||
export interface Action<T extends keyof ActionPayloadTypes> { |
||||
type: T |
||||
payload: ActionPayloadTypes[T] |
||||
} |
||||
|
||||
export type Actions = {[A in keyof ActionPayloadTypes]: Action<A>}[keyof ActionPayloadTypes] |
||||
|
||||
export interface AppState { |
||||
isRemixdConnected: boolean |
||||
} |
Loading…
Reference in new issue