"use server"
import { sanityClient } from "../../utils/sanity-client"
import { PricingQueryResult } from "../../utils/types"
import HeroPricing from "../../components/Pricing/HeroPricing"
import { notFound } from "next/navigation"
import FeatureSections from "../../components/Pricing/FeatureSections"
import { H2, Hr, Loading } from "docs-ui"
import { cache, Suspense } from "react"
export default async function PricingPage() {
if (process.env.NEXT_PUBLIC_ENV === "CI") {
return
Pricing page is not available in the CI environment.
}
const data = await loadPricingData()
const heroPricingData = data.find((item) => item._type === "heroPricing")
const featureTableData = data.find((item) => item._type === "featureTable")
// Ensure both data pieces are present
if (
!featureTableData?.featureTableFields ||
!heroPricingData?.heroPricingFields
) {
return notFound()
}
return (
}>
Cloud Plans
Plans Features
)
}
const loadPricingData = cache(async () => {
const data: PricingQueryResult = await sanityClient.fetch(
`*[
(_type == "featureTable" && _id == "9cb4e359-786a-4cdb-9334-88ad4ce44f05") ||
(_type == "heroPricing" && _id == "8d8f33e1-7f18-4b2f-8686-5bc57da697db")
]{
_type,
_id,
// For featureTable
"featureTableFields": select(
_type == "featureTable" => {
columnHeaders,
featureSections,
links
}
),
// For heroPricing
"heroPricingFields": select(
_type == "heroPricing" => {
options
}
)
}`
)
return data
})