import type { AlertItem } from '@ringcentral-integration/commons/modules/Alert'; import { callingSettingsMessages } from '@ringcentral-integration/commons/modules/CallingSettings'; import React from 'react'; import FormattedMessage from '../../FormattedMessage'; import type { HandleMessage } from '../HandleMessage.interface'; import i18n from './i18n'; export interface CallingSettingsAlertProps { message: AlertItem; currentLocale: string; brandName: string; jupiterAppName: string; softphoneAppName: string; onCallingSettingsLinkClick: () => void; } export const CallingSettingsAlert: React.FC & HandleMessage = ({ message: { message }, currentLocale, brandName, jupiterAppName, softphoneAppName, onCallingSettingsLinkClick, }) => { switch (message) { case callingSettingsMessages.saveSuccess: case callingSettingsMessages.saveSuccessWithSoftphone: case callingSettingsMessages.webphonePermissionRemoved: case callingSettingsMessages.emergencyCallingNotAvailable: case callingSettingsMessages.disableEmergencyInJapan: case callingSettingsMessages.saveSuccessWithJupiter: { let appName = brandName; if (message === callingSettingsMessages.saveSuccessWithJupiter) { appName = jupiterAppName; } else if (message === callingSettingsMessages.saveSuccessWithSoftphone) { appName = softphoneAppName; } return ( ); } case callingSettingsMessages.permissionChanged: case callingSettingsMessages.phoneNumberChanged: { const link = onCallingSettingsLinkClick ? ( { e.preventDefault(); onCallingSettingsLinkClick(); }} > {i18n.getString('link', currentLocale)} ) : ( i18n.getString('link', currentLocale) ); return ( ); } default: return null; } }; CallingSettingsAlert.handleMessage = ({ message }) => message === callingSettingsMessages.saveSuccess || message === callingSettingsMessages.saveSuccessWithSoftphone || message === callingSettingsMessages.permissionChanged || message === callingSettingsMessages.webphonePermissionRemoved || message === callingSettingsMessages.phoneNumberChanged || message === callingSettingsMessages.emergencyCallingNotAvailable || message === callingSettingsMessages.saveSuccessWithJupiter || message === callingSettingsMessages.disableEmergencyInJapan;