12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import { useCallback, useState } from 'react';
- import { useDispatch } from 'react-redux';
-
- import { approveKnockingParticipant, rejectKnockingParticipant } from '../lobby/actions';
-
- /**
- * Hook used to create admit/reject lobby actions.
- *
- * @param {Object} participant - The participant for which the actions are created.
- * @param {Function} closeDrawer - Callback for closing the drawer.
- * @returns {Array<Function>}
- */
- export function useLobbyActions(participant, closeDrawer) {
- const dispatch = useDispatch();
-
- return [
- useCallback(e => {
- e.stopPropagation();
- dispatch(approveKnockingParticipant(participant && participant.participantID));
- closeDrawer && closeDrawer();
- }, [ dispatch, closeDrawer ]),
-
- useCallback(() => {
- dispatch(rejectKnockingParticipant(participant && participant.participantID));
- closeDrawer && closeDrawer();
- }, [ dispatch, closeDrawer ])
- ];
- }
-
- /**
- * Hook used to create actions & state for opening a drawer.
- *
- * @returns {Array<any>}
- */
- export function useParticipantDrawer() {
- const [ drawerParticipant, openDrawerForParticipant ] = useState(null);
- const closeDrawer = useCallback(() => {
- openDrawerForParticipant(null);
- });
-
- return [
- drawerParticipant,
- closeDrawer,
- openDrawerForParticipant
- ];
- }
|