diff --git a/web/app/account/header.tsx b/web/app/account/header.tsx index 11b6beec08..d033bfab61 100644 --- a/web/app/account/header.tsx +++ b/web/app/account/header.tsx @@ -6,10 +6,12 @@ import Button from '../components/base/button' import Avatar from './avatar' import DifyLogo from '@/app/components/base/logo/dify-logo' import { useCallback } from 'react' +import { useGlobalPublicStore } from '@/context/global-public-context' const Header = () => { const { t } = useTranslation() const router = useRouter() + const systemFeatures = useGlobalPublicStore(s => s.systemFeatures) const back = useCallback(() => { router.back() @@ -19,7 +21,13 @@ const Header = () => {
- + {systemFeatures.branding.enabled && systemFeatures.branding.login_page_logo + ? Dify logo + : }

{t('common.account.account')}

diff --git a/web/app/components/base/chat/chat-with-history/sidebar/index.tsx b/web/app/components/base/chat/chat-with-history/sidebar/index.tsx index 5fde657f68..fd317ccf91 100644 --- a/web/app/components/base/chat/chat-with-history/sidebar/index.tsx +++ b/web/app/components/base/chat/chat-with-history/sidebar/index.tsx @@ -148,10 +148,12 @@ const Sidebar = ({ isPanel }: Props) => { 'flex shrink-0 items-center gap-1.5 px-1', )}>
{t('share.chat.poweredBy')}
- {systemFeatures.branding.enabled ? ( - logo - ) : ( - ) + { + systemFeatures.branding.enabled && systemFeatures.branding.workspace_logo + ? logo + : appData?.custom_config?.replace_webapp_logo + ? logo + : }
)} diff --git a/web/app/components/base/chat/embedded-chatbot/header/index.tsx b/web/app/components/base/chat/embedded-chatbot/header/index.tsx index c6c02a4d44..95975e29e7 100644 --- a/web/app/components/base/chat/embedded-chatbot/header/index.tsx +++ b/web/app/components/base/chat/embedded-chatbot/header/index.tsx @@ -13,6 +13,7 @@ import Divider from '@/app/components/base/divider' import ViewFormDropdown from '@/app/components/base/chat/embedded-chatbot/inputs-form/view-form-dropdown' import DifyLogo from '@/app/components/base/logo/dify-logo' import cn from '@/utils/classnames' +import { useGlobalPublicStore } from '@/context/global-public-context' export type IHeaderProps = { isMobile?: boolean @@ -42,6 +43,7 @@ const Header: FC = ({ const [parentOrigin, setParentOrigin] = useState('') const [showToggleExpandButton, setShowToggleExpandButton] = useState(false) const [expanded, setExpanded] = useState(false) + const systemFeatures = useGlobalPublicStore(s => s.systemFeatures) const handleMessageReceived = useCallback((event: MessageEvent) => { let currentParentOrigin = parentOrigin @@ -85,12 +87,13 @@ const Header: FC = ({ 'flex shrink-0 items-center gap-1.5 px-2', )}>
{t('share.chat.poweredBy')}
- {appData?.custom_config?.replace_webapp_logo && ( - logo - )} - {!appData?.custom_config?.replace_webapp_logo && ( - - )} + { + systemFeatures.branding.enabled && systemFeatures.branding.workspace_logo + ? logo + : appData?.custom_config?.replace_webapp_logo + ? logo + : + }
)}
diff --git a/web/app/components/base/chat/embedded-chatbot/index.tsx b/web/app/components/base/chat/embedded-chatbot/index.tsx index ffcb128c8f..002d142542 100644 --- a/web/app/components/base/chat/embedded-chatbot/index.tsx +++ b/web/app/components/base/chat/embedded-chatbot/index.tsx @@ -22,6 +22,7 @@ import ChatWrapper from '@/app/components/base/chat/embedded-chatbot/chat-wrappe import DifyLogo from '@/app/components/base/logo/dify-logo' import cn from '@/utils/classnames' import useDocumentTitle from '@/hooks/use-document-title' +import { useGlobalPublicStore } from '@/context/global-public-context' const Chatbot = () => { const { @@ -37,6 +38,7 @@ const Chatbot = () => { themeBuilder, } = useEmbeddedChatbotContext() const { t } = useTranslation() + const systemFeatures = useGlobalPublicStore(s => s.systemFeatures) const customConfig = appData?.custom_config const site = appData?.site @@ -115,12 +117,13 @@ const Chatbot = () => { 'flex shrink-0 items-center gap-1.5 px-2', )}>
{t('share.chat.poweredBy')}
- {appData?.custom_config?.replace_webapp_logo && ( - logo - )} - {!appData?.custom_config?.replace_webapp_logo && ( - - )} + { + systemFeatures.branding.enabled && systemFeatures.branding.workspace_logo + ? logo + : appData?.custom_config?.replace_webapp_logo + ? logo + : + } )} diff --git a/web/app/components/base/logo/dify-logo.tsx b/web/app/components/base/logo/dify-logo.tsx index 9e8f077372..5369144e1c 100644 --- a/web/app/components/base/logo/dify-logo.tsx +++ b/web/app/components/base/logo/dify-logo.tsx @@ -3,7 +3,6 @@ import type { FC } from 'react' import classNames from '@/utils/classnames' import useTheme from '@/hooks/use-theme' import { basePath } from '@/utils/var' -import { useGlobalPublicStore } from '@/context/global-public-context' export type LogoStyle = 'default' | 'monochromeWhite' export const logoPathMap: Record = { @@ -32,18 +31,12 @@ const DifyLogo: FC = ({ }) => { const { theme } = useTheme() const themedStyle = (theme === 'dark' && style === 'default') ? 'monochromeWhite' : style - const { systemFeatures } = useGlobalPublicStore() - const hasBrandingLogo = Boolean(systemFeatures.branding.enabled && systemFeatures.branding.workspace_logo) - - let src = `${basePath}${logoPathMap[themedStyle]}` - if (hasBrandingLogo) - src = systemFeatures.branding.workspace_logo return ( {hasBrandingLogo ) } diff --git a/web/app/components/custom/custom-web-app-brand/index.tsx b/web/app/components/custom/custom-web-app-brand/index.tsx index 444df98f24..f6f617be85 100644 --- a/web/app/components/custom/custom-web-app-brand/index.tsx +++ b/web/app/components/custom/custom-web-app-brand/index.tsx @@ -24,6 +24,7 @@ import { } from '@/service/common' import { useAppContext } from '@/context/app-context' import cn from '@/utils/classnames' +import { useGlobalPublicStore } from '@/context/global-public-context' const ALLOW_FILE_EXTENSIONS = ['svg', 'png'] @@ -39,6 +40,7 @@ const CustomWebAppBrand = () => { const [fileId, setFileId] = useState('') const [imgKey, setImgKey] = useState(Date.now()) const [uploadProgress, setUploadProgress] = useState(0) + const systemFeatures = useGlobalPublicStore(s => s.systemFeatures) const isSandbox = enableBilling && plan.type === Plan.sandbox const uploading = uploadProgress > 0 && uploadProgress < 100 const webappLogo = currentWorkspace.custom_config?.replace_webapp_logo || '' @@ -244,9 +246,12 @@ const CustomWebAppBrand = () => { {!webappBrandRemoved && ( <>
POWERED BY
- {webappLogo - ? logo - : + { + systemFeatures.branding.enabled && systemFeatures.branding.workspace_logo + ? logo + : webappLogo + ? logo + : } )} @@ -303,9 +308,12 @@ const CustomWebAppBrand = () => { {!webappBrandRemoved && ( <>
POWERED BY
- {webappLogo - ? logo - : + { + systemFeatures.branding.enabled && systemFeatures.branding.workspace_logo + ? logo + : webappLogo + ? logo + : } )} diff --git a/web/app/components/header/account-about/index.tsx b/web/app/components/header/account-about/index.tsx index 6129b48dce..280e276be9 100644 --- a/web/app/components/header/account-about/index.tsx +++ b/web/app/components/header/account-about/index.tsx @@ -9,6 +9,7 @@ import type { LangGeniusVersionResponse } from '@/models/common' import { IS_CE_EDITION } from '@/config' import DifyLogo from '@/app/components/base/logo/dify-logo' import { noop } from 'lodash-es' +import { useGlobalPublicStore } from '@/context/global-public-context' type IAccountSettingProps = { langeniusVersionInfo: LangGeniusVersionResponse @@ -21,6 +22,7 @@ export default function AccountAbout({ }: IAccountSettingProps) { const { t } = useTranslation() const isLatest = langeniusVersionInfo.current_version === langeniusVersionInfo.latest_version + const systemFeatures = useGlobalPublicStore(s => s.systemFeatures) return (
- + {systemFeatures.branding.enabled && systemFeatures.branding.workspace_logo + ? logo + : } +
Version {langeniusVersionInfo?.current_version}
© {dayjs().year()} LangGenius, Inc., Contributors.
diff --git a/web/app/components/header/index.tsx b/web/app/components/header/index.tsx index 6e8d1704dd..a9c26e0070 100644 --- a/web/app/components/header/index.tsx +++ b/web/app/components/header/index.tsx @@ -21,6 +21,7 @@ import { useModalContext } from '@/context/modal-context' import PlanBadge from './plan-badge' import LicenseNav from './license-env' import { Plan } from '../billing/type' +import { useGlobalPublicStore } from '@/context/global-public-context' const navClassName = ` flex items-center relative mr-0 sm:mr-3 px-3 h-8 rounded-xl @@ -36,6 +37,7 @@ const Header = () => { const [isShowNavMenu, { toggle, setFalse: hideNavMenu }] = useBoolean(false) const { enableBilling, plan } = useProviderContext() const { setShowPricingModal, setShowAccountSettingModal } = useModalContext() + const systemFeatures = useGlobalPublicStore(s => s.systemFeatures) const isFreePlan = plan.type === Plan.sandbox const handlePlanClick = useCallback(() => { if (isFreePlan) @@ -61,7 +63,13 @@ const Header = () => { !isMobile &&
- + {systemFeatures.branding.enabled && systemFeatures.branding.workspace_logo + ? logo + : }
/
@@ -76,7 +84,13 @@ const Header = () => { {isMobile && (
- + {systemFeatures.branding.enabled && systemFeatures.branding.workspace_logo + ? logo + : }
/
{enableBilling ? : } diff --git a/web/app/components/share/text-generation/index.tsx b/web/app/components/share/text-generation/index.tsx index 5450fa7ce6..6fd6d17278 100644 --- a/web/app/components/share/text-generation/index.tsx +++ b/web/app/components/share/text-generation/index.tsx @@ -641,11 +641,13 @@ const TextGeneration: FC = ({ !isPC && resultExisted && 'rounded-b-2xl border-b-[0.5px] border-divider-regular', )}>
{t('share.chat.poweredBy')}
- {systemFeatures.branding.enabled ? ( - logo - ) : ( - - )} + { + systemFeatures.branding.enabled && systemFeatures.branding.workspace_logo + ? logo + : customConfig?.replace_webapp_logo + ? logo + : + }
)}
diff --git a/web/app/signin/_header.tsx b/web/app/signin/_header.tsx index 5e85a8d306..0efd30b6cc 100644 --- a/web/app/signin/_header.tsx +++ b/web/app/signin/_header.tsx @@ -7,6 +7,7 @@ import { languages } from '@/i18n/language' import type { Locale } from '@/i18n' import I18n from '@/context/i18n' import dynamic from 'next/dynamic' +import { useGlobalPublicStore } from '@/context/global-public-context' // Avoid rendering the logo and theme selector on the server const DifyLogo = dynamic(() => import('@/app/components/base/logo/dify-logo'), { @@ -20,10 +21,17 @@ const ThemeSelector = dynamic(() => import('@/app/components/base/theme-selector const Header = () => { const { locale, setLocaleOnClient } = useContext(I18n) + const systemFeatures = useGlobalPublicStore(s => s.systemFeatures) return (
- + {systemFeatures.branding.enabled && systemFeatures.branding.login_page_logo + ? logo + : }