| 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
    ];
}
 |