30 lines
657 B
TypeScript
30 lines
657 B
TypeScript
import type { MouseEventHandler } from 'react'
|
|
import { Link } from 'react-router'
|
|
|
|
import type { TUserResponse } from '~/apis/news/get-user'
|
|
|
|
type TGetPremiumAttribute = {
|
|
isPremium?: boolean
|
|
slug: string
|
|
onClick: MouseEventHandler<HTMLElement>
|
|
userData?: TUserResponse['data']
|
|
}
|
|
|
|
export const getPremiumAttribute = (parameters: TGetPremiumAttribute) => {
|
|
const { isPremium, slug, onClick, userData } = parameters
|
|
if (
|
|
isPremium &&
|
|
(!userData || userData?.subscribe.subscribe_plan.code === 'basic')
|
|
) {
|
|
return {
|
|
onClick,
|
|
to: '',
|
|
}
|
|
}
|
|
|
|
return {
|
|
as: Link,
|
|
to: `/detail/${encodeURIComponent(slug)}`,
|
|
}
|
|
}
|