Skip to content
Snippets Groups Projects
Unverified Commit 3bd14c16 authored by Aleksander Nicacio da Silva's avatar Aleksander Nicacio da Silva Committed by GitHub
Browse files

regression: disabled voip leaves empty section in the user menu (#33521)

parent 02debbe5
No related branches found
No related tags found
No related merge requests found
......@@ -7,14 +7,14 @@ import React from 'react';
import UserMenuHeader from '../UserMenuHeader';
import { useAccountItems } from './useAccountItems';
import { useStatusItems } from './useStatusItems';
import { useVoipItems } from './useVoipItems';
import { useVoipItemsSection } from './useVoipItemsSection';
export const useUserMenu = (user: IUser) => {
const t = useTranslation();
const statusItems = useStatusItems();
const accountItems = useAccountItems();
const voipItems = useVoipItems();
const voipSection = useVoipItemsSection();
const logout = useLogout();
const handleLogout = useEffectEvent(() => {
......@@ -37,9 +37,7 @@ export const useUserMenu = (user: IUser) => {
title: t('Status'),
items: statusItems,
},
{
items: voipItems,
},
voipSection,
{
title: t('Account'),
items: accountItems,
......@@ -47,5 +45,5 @@ export const useUserMenu = (user: IUser) => {
{
items: [logoutItem],
},
];
].filter((section) => section !== undefined);
};
......@@ -6,7 +6,7 @@ import { useMutation } from '@tanstack/react-query';
import React, { useMemo } from 'react';
import { useTranslation } from 'react-i18next';
const useVoipItems = (): GenericMenuItemProps[] => {
export const useVoipItemsSection = (): { items: GenericMenuItemProps[] } | undefined => {
const { t } = useTranslation();
const dispatchToastMessage = useToastMessageDispatch();
......@@ -45,23 +45,25 @@ const useVoipItems = (): GenericMenuItemProps[] => {
return useMemo(() => {
if (!isEnabled) {
return [];
return;
}
return [
{
id: 'toggle-voip',
icon: isRegistered ? 'phone-disabled' : 'phone',
disabled: !isReady || toggleVoip.isLoading,
onClick: () => toggleVoip.mutate(),
content: (
<Box is='span' title={tooltip}>
{isRegistered ? t('Disable_voice_calling') : t('Enable_voice_calling')}
</Box>
),
},
];
return {
items: [
{
id: 'toggle-voip',
icon: isRegistered ? 'phone-disabled' : 'phone',
disabled: !isReady || toggleVoip.isLoading,
onClick: () => toggleVoip.mutate(),
content: (
<Box is='span' title={tooltip}>
{isRegistered ? t('Disable_voice_calling') : t('Enable_voice_calling')}
</Box>
),
},
],
};
}, [isEnabled, isRegistered, isReady, tooltip, t, toggleVoip]);
};
export default useVoipItems;
export default useVoipItemsSection;
......@@ -7,14 +7,14 @@ import React from 'react';
import UserMenuHeader from '../UserMenuHeader';
import { useAccountItems } from './useAccountItems';
import { useStatusItems } from './useStatusItems';
import useVoipItems from './useVoipItems';
import { useVoipItemsSection } from './useVoipItemsSection';
export const useUserMenu = (user: IUser) => {
const t = useTranslation();
const statusItems = useStatusItems();
const accountItems = useAccountItems();
const voipItems = useVoipItems();
const voipItemsSection = useVoipItemsSection();
const logout = useLogout();
const handleLogout = useMutableCallback(() => {
......@@ -37,9 +37,7 @@ export const useUserMenu = (user: IUser) => {
title: t('Status'),
items: statusItems,
},
{
items: voipItems,
},
voipItemsSection,
{
title: t('Account'),
items: accountItems,
......@@ -47,5 +45,5 @@ export const useUserMenu = (user: IUser) => {
{
items: [logoutItem],
},
];
].filter((section) => section !== undefined);
};
......@@ -6,7 +6,7 @@ import { useMutation } from '@tanstack/react-query';
import React, { useMemo } from 'react';
import { useTranslation } from 'react-i18next';
export const useVoipItems = (): GenericMenuItemProps[] => {
export const useVoipItemsSection = (): { items: GenericMenuItemProps[] } | undefined => {
const { t } = useTranslation();
const dispatchToastMessage = useToastMessageDispatch();
......@@ -45,23 +45,23 @@ export const useVoipItems = (): GenericMenuItemProps[] => {
return useMemo(() => {
if (!isEnabled) {
return [];
return;
}
return [
{
id: 'toggle-voip',
icon: isRegistered ? 'phone-disabled' : 'phone',
disabled: !isReady || toggleVoip.isLoading,
onClick: () => toggleVoip.mutate(),
content: (
<Box is='span' title={tooltip}>
{isRegistered ? t('Disable_voice_calling') : t('Enable_voice_calling')}
</Box>
),
},
];
return {
items: [
{
id: 'toggle-voip',
icon: isRegistered ? 'phone-disabled' : 'phone',
disabled: !isReady || toggleVoip.isLoading,
onClick: () => toggleVoip.mutate(),
content: (
<Box is='span' title={tooltip}>
{isRegistered ? t('Disable_voice_calling') : t('Enable_voice_calling')}
</Box>
),
},
],
};
}, [isEnabled, isRegistered, isReady, tooltip, t, toggleVoip]);
};
export default useVoipItems;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment