Files
supabase/apps/www/components/BuiltWithSupabase/ExamplesMobile.tsx
Francesco Sansalvadore 6470ac9186 chore(studio): marketplace styling (#46574)
- Marketplace index page
  - update order of feature partner integrations in hero
  - fix z-index on MarketplaceFilterBar in "list" view
<img width="275" height="104" alt="Screenshot 2026-06-02 at 17 07 29"
src="https://github.com/user-attachments/assets/5cef64f9-895e-4f8d-8f30-153ddd5c89dd"
/>

- Marketplace detail page
- use "prose" css styling on overview content for better text styling
(heading with top padding, etc)
- refine FilesView in overview tab to only show swipeable and zoomable
previews (so the big image doesn't occupy too much space) + lazy load
FilesView component
  - improve page loading state
- improve overview side rail sticky-top and remove redundant "About"
label

<img width="1333" height="732" alt="Screenshot 2026-06-02 at 17 20 29"
src="https://github.com/user-attachments/assets/8f3dd4a0-c241-4b7f-b8c8-192e1d7a616d"
/>

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Interactive carousel with image zoom capability for viewing
integration preview images

* **Bug Fixes**
  * Fixed z-index layering issue with marketplace filter bar

* **Refactor**
  * Redesigned marketplace detail page header with breadcrumb navigation
  * Updated integration image handling structure with enhanced metadata
  * Optimized dynamic loading for integration file viewers
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-06-04 15:38:21 +02:00

54 lines
1.2 KiB
TypeScript

import 'swiper/css'
import content from '~/data/home/content'
import type { Example } from 'data/Examples'
import { useRouter } from 'next/router'
import React, { FC } from 'react'
import { Swiper, SwiperSlide } from 'swiper/react'
import ExampleCard from '../ExampleCard'
interface Props {
examples: Example[]
className?: string
}
const ExamplesMobile: FC<Props> = ({ examples, className }: any) => {
const { basePath } = useRouter()
return (
<div className={className}>
<Swiper
style={{ zIndex: 0, marginRight: '1px' }}
initialSlide={0}
spaceBetween={12}
slidesPerView={1.1}
speed={300}
watchOverflow
threshold={2}
updateOnWindowResize
className="px-6! w-full overflow-visible"
breakpoints={{
320: {
slidesPerView: 1.1,
},
540: {
slidesPerView: 1.6,
},
720: {
slidesPerView: 2.5,
},
}}
>
{examples.map((example: Example, i: number) => (
<SwiperSlide key={`${content}-${i}`}>
<ExampleCard {...example} showProducts inHomepage />
</SwiperSlide>
))}
</Swiper>
</div>
)
}
export default ExamplesMobile