Spaces:
Build error
Build error
'use client' | |
import type { FC } from 'react' | |
import React from 'react' | |
import UpgradeBtn from '../upgrade-btn' | |
import { Plan } from '../type' | |
import cn from '@/utils/classnames' | |
import { useProviderContext } from '@/context/provider-context' | |
type Props = { | |
onClick: () => void | |
} | |
const HeaderBillingBtn: FC<Props> = ({ | |
onClick, | |
}) => { | |
const { plan, enableBilling, isFetchedPlan } = useProviderContext() | |
const { | |
type, | |
} = plan | |
const name = (() => { | |
if (type === Plan.professional) | |
return 'pro' | |
return type | |
})() | |
const classNames = (() => { | |
if (type === Plan.professional) | |
return 'border-[#E0F2FE] hover:border-[#B9E6FE] bg-[#E0F2FE] text-[#026AA2]' | |
if (type === Plan.team) | |
return 'border-[#E0EAFF] hover:border-[#C7D7FE] bg-[#E0EAFF] text-[#3538CD]' | |
return '' | |
})() | |
if (!enableBilling || !isFetchedPlan) | |
return null | |
if (type === Plan.sandbox) | |
return <UpgradeBtn onClick={onClick} isShort /> | |
return ( | |
<div onClick={onClick} className={cn(classNames, 'flex items-center h-[22px] px-2 rounded-md border text-xs font-semibold uppercase cursor-pointer')}> | |
{name} | |
</div> | |
) | |
} | |
export default React.memo(HeaderBillingBtn) | |