parent
7b17e83092
commit
bb28855001
@ -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