---
import { fetchPages } from 'react-bricks/astro/server'
import { reactBricksAstroStore } from 'react-bricks/astro'
// import reactBricksAstroStore from '../../ReactBricks/reactBricksAstroStore'

interface Props {
  of: string
  where?: {
    tag?: string
    language?: string
    filterBy?: { [key: string]: any }
  }
  sort?: string
  page?: number
  pageSize?: number
}

let error = false
const { of, where, sort, page, pageSize } = Astro.props as Props

const config = reactBricksAstroStore.getConfig()
if (!config) {
  console.warn('React Bricks Store is not initialized')
  error = true
}

// Get pages
const pages = await fetchPages({
  type: of,
  tag: where?.tag,
  language: where?.language,
  filterBy: where?.filterBy,
  sort,
  page,
  pageSize,
  usePagination: true,
  config,
})

if (!pages) {
  error = true
}
---

{
  error || !Astro.slots.has('default') ? (
    ''
  ) : (
    <Fragment set:html={Astro.slots.render('default', [pages])} />
  )
}
