import messageTypes from '@ringcentral-integration/commons/enums/messageTypes';
import React, { useMemo } from 'react';
import type { TabPropTypes } from '../NavigationBar';
import { TabTitle } from './TabTitle';
import i18n from './i18n';
type UseConversationTabData = {
currentLocale: string;
readVoicemailPermission: boolean;
voiceUnreadCounts: number;
readFaxPermission: boolean;
faxUnreadCounts: number;
readTextPermission: boolean;
textUnreadCounts: number;
};
export function useConversationTabData({
currentLocale,
readVoicemailPermission,
voiceUnreadCounts,
readFaxPermission,
faxUnreadCounts,
readTextPermission,
textUnreadCounts,
}: UseConversationTabData) {
return useMemo(() => {
const tabs: TabPropTypes[] = [
{
icon: (
),
label: i18n.getString(messageTypes.all, currentLocale),
path: messageTypes.all,
isActive: (path) => path === messageTypes.all,
},
];
readVoicemailPermission &&
tabs.push({
icon: (
),
label: i18n.getString(messageTypes.voiceMail, currentLocale),
path: messageTypes.voiceMail,
isActive: (path) => path === messageTypes.voiceMail,
noticeCounts: voiceUnreadCounts,
});
readFaxPermission &&
tabs.push({
icon: (
),
label: i18n.getString(messageTypes.fax, currentLocale),
path: messageTypes.fax,
isActive: (path) => path === messageTypes.fax,
noticeCounts: faxUnreadCounts,
});
readTextPermission &&
tabs.push({
icon: (
),
label: i18n.getString(messageTypes.text, currentLocale),
path: messageTypes.text,
isActive: (path: string) => path === messageTypes.text,
noticeCounts: textUnreadCounts,
});
return tabs;
}, [
currentLocale,
faxUnreadCounts,
readFaxPermission,
readTextPermission,
readVoicemailPermission,
textUnreadCounts,
voiceUnreadCounts,
]);
}