mirror of
https://github.com/supabase/supabase.git
synced 2026-10-09 11:25:06 +03:00
- 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>
36 lines
1.5 KiB
TypeScript
36 lines
1.5 KiB
TypeScript
import dynamic from 'next/dynamic'
|
|
import type { PropsWithChildren } from 'react'
|
|
|
|
import { MarketplaceDetailRail } from './MarketplaceDetailRail'
|
|
import { ConstrainedIntegrationTabScaffold } from '@/components/interfaces/Integrations/ConstrainedIntegrationTabScaffold'
|
|
import { MarkdownContent } from '@/components/interfaces/Integrations/Integration/IntegrationOverviewTabV2/MarkdownContent'
|
|
import type { IntegrationDefinition } from '@/components/interfaces/Integrations/Landing/Integrations.constants'
|
|
|
|
const FilesViewer = dynamic(() =>
|
|
import('@/components/interfaces/Integrations/Integration/IntegrationOverviewTabV2/FilesViewer').then(
|
|
(mod) => mod.FilesViewer
|
|
)
|
|
)
|
|
|
|
interface OverviewTabProps extends PropsWithChildren {
|
|
integration: IntegrationDefinition
|
|
isInstalled: boolean
|
|
}
|
|
|
|
export const OverviewTab = ({ integration, isInstalled, children }: OverviewTabProps) => {
|
|
const { content, files = [] } = integration
|
|
|
|
return (
|
|
<ConstrainedIntegrationTabScaffold>
|
|
<div className="mx-auto grid w-full max-w-6xl grid-cols-1 items-start gap-10 @4xl:grid-cols-[minmax(0,760px)_240px]">
|
|
<div className="min-w-0 flex flex-col gap-8">
|
|
{files.length > 0 && <FilesViewer files={files} />}
|
|
<MarkdownContent integrationId={integration.id} content={content} />
|
|
{children}
|
|
</div>
|
|
<MarketplaceDetailRail integration={integration} isInstalled={isInstalled} />
|
|
</div>
|
|
</ConstrainedIntegrationTabScaffold>
|
|
)
|
|
}
|