mirror of
https://github.com/langgenius/dify.git
synced 2026-09-03 23:47:16 +08:00
61 lines
2.5 KiB
TypeScript
61 lines
2.5 KiB
TypeScript
import { useSuspenseQuery } from '@tanstack/react-query'
|
|
import { useTranslation } from 'react-i18next'
|
|
import { contactSalesUrl } from '@/app/components/billing/config'
|
|
import { useModalContext } from '@/context/modal-context'
|
|
import { useProviderContext } from '@/context/provider-context'
|
|
import { systemFeaturesQueryOptions } from '@/features/system-features/client'
|
|
import CustomWebAppBrand from '../custom-web-app-brand'
|
|
|
|
const CustomPage = () => {
|
|
const { t } = useTranslation()
|
|
const { data: deploymentEdition } = useSuspenseQuery({
|
|
...systemFeaturesQueryOptions(),
|
|
select: ({ deployment_edition }) => deployment_edition,
|
|
})
|
|
const { plan, enableBilling } = useProviderContext()
|
|
const { setShowPricingModal } = useModalContext()
|
|
const showBillingTip = deploymentEdition === 'CLOUD' && enableBilling && plan.type === 'sandbox'
|
|
const showContact = enableBilling && (plan.type === 'professional' || plan.type === 'team')
|
|
|
|
return (
|
|
<div className="flex flex-col overflow-x-hidden">
|
|
{showBillingTip && (
|
|
<div className="mb-1 flex justify-between rounded-xl bg-linear-to-r from-components-input-border-active-prompt-1 to-components-input-border-active-prompt-2 p-4 pl-6 shadow-lg backdrop-blur-xs">
|
|
<div className="space-y-1 text-text-primary-on-surface">
|
|
<div className="title-xl-semi-bold">
|
|
{t(($) => $['upgradeTip.title'], { ns: 'custom' })}
|
|
</div>
|
|
<div className="system-sm-regular">
|
|
{t(($) => $['upgradeTip.des'], { ns: 'custom' })}
|
|
</div>
|
|
</div>
|
|
<button
|
|
type="button"
|
|
className="flex h-10 w-30 cursor-pointer items-center justify-center rounded-3xl border-none bg-white p-0 system-md-semibold text-text-accent shadow-xs hover:opacity-95"
|
|
onClick={() => setShowPricingModal()}
|
|
>
|
|
{t(($) => $['upgradeBtn.encourageShort'], { ns: 'billing' })}
|
|
</button>
|
|
</div>
|
|
)}
|
|
<CustomWebAppBrand />
|
|
{showContact && (
|
|
<div className="absolute bottom-0 h-12.5 text-xs leading-12.5 text-text-quaternary">
|
|
{t(($) => $['customize.prefix'], { ns: 'custom' })}
|
|
<a
|
|
className="text-text-accent"
|
|
href={contactSalesUrl}
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
{t(($) => $['customize.contactUs'], { ns: 'custom' })}
|
|
</a>
|
|
{t(($) => $['customize.suffix'], { ns: 'custom' })}
|
|
</div>
|
|
)}
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default CustomPage
|