| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | // @flow
import { Component } from 'react';
import {
    createRemoteVideoMenuButtonEvent,
    sendAnalytics
} from '../../analytics';
import { kickParticipant } from '../../base/participants';
type Props = {
    /**
     * The Redux dispatch function.
     */
    dispatch: Function,
    /**
     * The ID of the remote participant to be kicked.
     */
    participantID: string,
    /**
     * Function to translate i18n labels.
     */
    t: Function
};
/**
 * Abstract dialog to confirm a remote participant kick action.
 */
export default class AbstractKickRemoteParticipantDialog
    extends Component<Props> {
    /**
     * Initializes a new {@code AbstractKickRemoteParticipantDialog} instance.
     *
     * @inheritdoc
     */
    constructor(props: Props) {
        super(props);
        this._onSubmit = this._onSubmit.bind(this);
    }
    _onSubmit: () => boolean;
    /**
     * Callback for the confirm button.
     *
     * @private
     * @returns {boolean} - True (to note that the modal should be closed).
     */
    _onSubmit() {
        const { dispatch, participantID } = this.props;
        sendAnalytics(createRemoteVideoMenuButtonEvent(
            'kick.button',
            {
                'participant_id': participantID
            }));
        dispatch(kickParticipant(participantID));
        return true;
    }
}
 |