theluyuan 38ba663466
Some checks failed
Close stale issues and PRs / stale (push) Has been cancelled
init
2025-09-02 14:49:16 +08:00

44 lines
1.6 KiB
TypeScript

import React, { useCallback } from 'react';
import { useTranslation } from 'react-i18next';
import { Text, View, ViewStyle } from 'react-native';
import { useDispatch } from 'react-redux';
import { hangup } from '../../../base/connection/actions.native';
import LoadingIndicator from '../../../base/react/components/native/LoadingIndicator';
import BaseTheme from '../../../base/ui/components/BaseTheme.native';
import Button from '../../../base/ui/components/native/Button';
import { BUTTON_TYPES } from '../../../base/ui/constants.any';
import lobbyStyles from '../../../lobby/components/native/styles';
import styles from './styles';
/**
* The component that renders visitors queue UI.
*
* @returns {ReactElement}
*/
export default function VisitorsQueue() {
const { t } = useTranslation();
const dispatch = useDispatch();
const onHangupClick = useCallback(() => {
dispatch(hangup());
}, []);
return (
<View style = { styles.visitorsQueue as ViewStyle }>
<Text style = { styles.visitorsQueueTitle }>
{ t('visitors.waitingMessage') }
</Text>
<LoadingIndicator
color = { BaseTheme.palette.icon01 }
style = { lobbyStyles.loadingIndicator } />
<Button
accessibilityLabel = 'toolbar.accessibilityLabel.leaveConference'
labelKey = 'toolbar.accessibilityLabel.leaveConference'
onClick = { onHangupClick }
style = { styles.hangupButton }
type = { BUTTON_TYPES.DESTRUCTIVE } />
</View>
);
}