jitsi-meet/react/features/settings/actions.native.ts
theluyuan 38ba663466
Some checks failed
Close stale issues and PRs / stale (push) Has been cancelled
init
2025-09-02 14:49:16 +08:00

39 lines
1.1 KiB
TypeScript

import { Linking } from 'react-native';
import { IStore } from '../app/types';
import { isTokenAuthEnabled } from '../authentication/functions';
import { hangup } from '../base/connection/actions.native';
import { openDialog } from '../base/dialog/actions';
import LogoutDialog from './components/native/LogoutDialog';
/**
* Opens {@code LogoutDialog}.
*
* @returns {Function}
*/
export function openLogoutDialog() {
return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
const state = getState();
const { conference } = state['features/base/conference'];
const config = state['features/base/config'];
const logoutUrl = config.tokenLogoutUrl;
dispatch(openDialog(LogoutDialog, {
onLogout() {
if (isTokenAuthEnabled(config)) {
if (logoutUrl) {
Linking.openURL(logoutUrl);
}
dispatch(hangup(true));
} else {
conference?.room.xmpp.moderator.logout(() => dispatch(hangup(true)));
}
}
}));
};
}