jiti-meet/react/features/whiteboard/reducer.ts

54 lines
1.2 KiB
TypeScript
Raw Normal View History

import ReducerRegistry from '../base/redux/ReducerRegistry';
import { RESET_WHITEBOARD, SETUP_WHITEBOARD } from './actionTypes';
export interface IWhiteboardState {
/**
* The whiteboard collaboration details.
*/
collabDetails?: { roomId: string; roomKey: string; };
/**
* The indicator which determines whether the whiteboard is open.
*
* @type {boolean}
*/
isOpen: boolean;
}
const DEFAULT_STATE: IWhiteboardState = {
isOpen: false
};
export interface WhiteboardAction extends Partial<IWhiteboardState> {
/**
* The whiteboard collaboration details.
*/
collabDetails?: { roomId: string; roomKey: string; };
/**
* The action type.
*/
type: string;
}
ReducerRegistry.register(
'features/whiteboard',
(state: IWhiteboardState = DEFAULT_STATE, action: WhiteboardAction) => {
switch (action.type) {
case SETUP_WHITEBOARD: {
return {
...state,
isOpen: true,
collabDetails: action.collabDetails
};
}
case RESET_WHITEBOARD:
return DEFAULT_STATE;
}
return state;
});