diff --git a/web/app/components/base/zendesk/index.tsx b/web/app/components/base/zendesk/index.tsx index b3d67eb390..a6971fe1db 100644 --- a/web/app/components/base/zendesk/index.tsx +++ b/web/app/components/base/zendesk/index.tsx @@ -10,11 +10,21 @@ const Zendesk = () => { const nonce = process.env.NODE_ENV === 'production' ? (headers() as unknown as UnsafeUnwrappedHeaders).get('x-nonce') ?? '' : '' return ( - + ) } diff --git a/web/app/components/base/zendesk/utils.ts b/web/app/components/base/zendesk/utils.ts index 6f853343aa..216499efc4 100644 --- a/web/app/components/base/zendesk/utils.ts +++ b/web/app/components/base/zendesk/utils.ts @@ -21,3 +21,13 @@ export const setZendeskConversationFields = (fields: ConversationField[], callba if (!IS_CE_EDITION && window.zE) window.zE('messenger:set', 'conversationFields', fields, callback) } + +export const setZendeskWidgetVisibility = (visible: boolean) => { + if (!IS_CE_EDITION && window.zE) + window.zE('messenger', visible ? 'show' : 'hide') +} + +export const toggleZendeskWindow = (open: boolean) => { + if (!IS_CE_EDITION && window.zE) + window.zE('messenger', open ? 'open' : 'close') +} diff --git a/web/app/components/header/account-dropdown/index.tsx b/web/app/components/header/account-dropdown/index.tsx index 178f347102..30b2bfdf6f 100644 --- a/web/app/components/header/account-dropdown/index.tsx +++ b/web/app/components/header/account-dropdown/index.tsx @@ -68,7 +68,7 @@ export default function AppSelector() {
{ - ({ open }) => ( + ({ open, close }) => ( <> @@ -142,7 +142,7 @@ export default function AppSelector() { - + {IS_CLOUD_EDITION && isCurrentWorkspaceOwner && }
diff --git a/web/app/components/header/account-dropdown/support.tsx b/web/app/components/header/account-dropdown/support.tsx index 15c6d3e5cf..fda45f2db5 100644 --- a/web/app/components/header/account-dropdown/support.tsx +++ b/web/app/components/header/account-dropdown/support.tsx @@ -1,23 +1,25 @@ import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react' -import { RiArrowRightSLine, RiArrowRightUpLine, RiDiscordLine, RiFeedbackLine, RiMailSendLine, RiQuestionLine } from '@remixicon/react' +import { RiArrowRightSLine, RiArrowRightUpLine, RiChatSmile2Line, RiDiscordLine, RiFeedbackLine, RiQuestionLine } from '@remixicon/react' import { Fragment } from 'react' import Link from 'next/link' import { useTranslation } from 'react-i18next' -import { mailToSupport } from '../utils/util' import cn from '@/utils/classnames' import { useProviderContext } from '@/context/provider-context' import { Plan } from '@/app/components/billing/type' -import { useAppContext } from '@/context/app-context' +import { toggleZendeskWindow } from '@/app/components/base/zendesk/utils' -export default function Support() { +type SupportProps = { + closeAccountDropdown: () => void +} + +export default function Support({ closeAccountDropdown }: SupportProps) { const itemClassName = ` flex items-center w-full h-9 pl-3 pr-2 text-text-secondary system-md-regular rounded-lg hover:bg-state-base-hover cursor-pointer gap-1 ` const { t } = useTranslation() const { plan } = useProviderContext() - const { userProfile, langGeniusVersionInfo } = useAppContext() - const canEmailSupport = plan.type === Plan.professional || plan.type === Plan.team || plan.type === Plan.enterprise + const hasDedicatedChannel = plan.type !== Plan.sandbox return { @@ -48,17 +50,17 @@ export default function Support() { )} >
- {canEmailSupport && - - -
{t('common.userProfile.emailSupport')}
- -
+ {hasDedicatedChannel && + }