Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

actions.any.ts 1.0KB

12345678910111213141516171819202122232425262728293031
  1. import { IStore } from '../app/types';
  2. import { setWhiteboardOpen } from './actions';
  3. import { isWhiteboardAllowed, isWhiteboardOpen, isWhiteboardVisible } from './functions';
  4. import { WhiteboardStatus } from './types';
  5. /**
  6. * API to toggle the whiteboard.
  7. *
  8. * @returns {Function}
  9. */
  10. export function toggleWhiteboard() {
  11. return async (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
  12. const state = getState();
  13. const isAllowed = isWhiteboardAllowed(state);
  14. const isOpen = isWhiteboardOpen(state);
  15. if (isAllowed) {
  16. if (isOpen && !isWhiteboardVisible(state)) {
  17. dispatch(setWhiteboardOpen(true));
  18. } else if (isOpen && isWhiteboardVisible(state)) {
  19. dispatch(setWhiteboardOpen(false));
  20. } else if (!isOpen) {
  21. dispatch(setWhiteboardOpen(true));
  22. }
  23. } else if (typeof APP !== 'undefined') {
  24. APP.API.notifyWhiteboardStatusChanged(WhiteboardStatus.FORBIDDEN);
  25. }
  26. };
  27. }