import { Link } from '@chakra-ui/next-js'
import { Box, Button, Flex, Heading, Image, List, ListIcon, ListItem, SimpleGrid, Text } from '@chakra-ui/react'
import { FaFacebookSquare, FaLinkedin, FaTwitterSquare } from 'react-icons/fa'
import { TbWorldWww } from 'react-icons/tb'
export const getStaticPaths = async () => {
const url = new URL(`${process.env.NEXT_PUBLIC_DIRECTUS_API_URL}/items/vendors`)
url.searchParams.append('fields[]', 'slug')
url.searchParams.append('limit', -1)
const res = await fetch(url.toString())
const { data: vendors } = await res.json()
return {
paths: vendors.map((v) => ({ params: { slug: v.slug } })),
fallback: false, // false or "blocking"
}
}
export const getStaticProps = async ({ params: { slug } }) => {
const url = new URL(`${process.env.NEXT_PUBLIC_DIRECTUS_API_URL}/items/vendors`)
url.searchParams.append('fields[]', '*')
url.searchParams.append('fields[]', 'categories.categories_id.slug')
url.searchParams.append('fields[]', 'categories.categories_id.name')
url.searchParams.append('fields[]', 'categories.categories_id.parent_id')
url.searchParams.append('fields[]', 'categories.categories_id.subcategories.slug')
url.searchParams.append('fields[]', 'categories.categories_id.subcategories.name')
url.searchParams.append('limit', 1)
url.searchParams.append('filter', JSON.stringify({ slug: { _eq: slug } }))
const res = await fetch(url.toString())
const {
data: [vendor],
} = await res.json()
return { props: vendor }
}
export default function VendorPage(vendor) {
return (
<>
{vendor.name}
Address
{vendor.address_line_1 && (
<>
{vendor.address_line_1}
>
)}
{vendor.address_line_2 && (
<>
{vendor.address_line_2}
>
)}
{vendor.city && (
<>
{vendor.city}
>
)}
{vendor.state && (
<>
{vendor.state}
>
)}
{vendor.country && (
<>
{vendor.country}
>
)}
{(vendor.website || vendor.facebook || vendor.linkedin || vendor.twitter) && (
<>
Social
{vendor.website && (
{vendor.website}
)}
{vendor.linkedin && (
{vendor.linkedin}
)}
{vendor.twitter && (
{vendor.twitter}
)}
{vendor.facebook && (
{vendor.facebook}
)}
>
)}
{vendor.categories.length > 0 && (
<>
Categories
{vendor.categories.map((cat) => (
))}
>
)}
>
)
}