import Link from "next/link"
import { cva } from "class-variance-authority"
import { BlockListItemsEnum } from "@/types/requests/blocks/list"
import type { ListItem } from "@/types/requests/blocks/list"
import styles from "./list.module.css"
const config = {
variants: {
type: {
default: styles.disc,
checkmark: styles.checkmark,
},
},
defaultVariants: {
type: "default",
},
} as const
const listItemStyle = cva(styles.listItem, config)
export default function ListItem({ listItem }: { listItem: ListItem }) {
const typeName = listItem.__typename
switch (typeName) {
case BlockListItemsEnum.CurrentBlocksPageBlocksListBlockListItemsListItem:
return (
{listItem.list_item.subtitle ? (
<>
{listItem.list_item.title}
{listItem.list_item.subtitle}
>
) : (
listItem.list_item.title
)}
)
case BlockListItemsEnum.CurrentBlocksPageBlocksListBlockListItemsListItemExternalLink:
return (
{listItem.list_item_external_link.link.title}
{listItem.list_item_external_link.subtitle && (
{listItem.list_item_external_link.subtitle}
)}
)
case BlockListItemsEnum.CurrentBlocksPageBlocksListBlockListItemsListItemInternalLink:
const link = listItem.list_item_internal_link.pageConnection.edges[0]
const linkUrlWithLocale = `/${link.node.system.locale}${link.node.url}`
return (
{listItem.list_item_internal_link.link_text}
{listItem.list_item_internal_link.subtitle && (
{listItem.list_item_internal_link.subtitle}
)}
)
default:
return null
}
}