fix: move providers marquee between sections, restore footer, add notification to mobile
Docker Build / Build and Push Docker Image (push) Successful in 4m32s
Docker Build / Build and Push Docker Image (push) Successful in 4m32s
This commit is contained in:
@@ -261,6 +261,19 @@ export function PublicHeader() {
|
||||
{/* Mobile: compact actions + hamburger */}
|
||||
<div className='flex items-center gap-2 sm:hidden'>
|
||||
{showThemeSwitch && <ThemeSwitch className='text-muted-foreground hover:bg-accent hover:text-foreground' />}
|
||||
{showNotifications && (
|
||||
<NotificationPopover
|
||||
className='text-muted-foreground hover:bg-accent hover:text-foreground'
|
||||
open={notifications.popoverOpen}
|
||||
onOpenChange={notifications.setPopoverOpen}
|
||||
unreadCount={notifications.unreadCount}
|
||||
activeTab={notifications.activeTab}
|
||||
onTabChange={notifications.setActiveTab}
|
||||
notice={notifications.notice}
|
||||
announcements={notifications.announcements}
|
||||
loading={notifications.loading}
|
||||
/>
|
||||
)}
|
||||
{showAuthButtons && !loading && isAuthenticated && (
|
||||
<ProfileDropdown />
|
||||
)}
|
||||
|
||||
+1
@@ -34,6 +34,7 @@ export { Main } from './components/main'
|
||||
export { PageFooterPortal } from './components/page-footer'
|
||||
export { NavGroup } from './components/nav-group'
|
||||
export { SectionPageLayout } from './components/section-page-layout'
|
||||
export { Footer } from './components/footer'
|
||||
export { SidebarViewHeader } from './components/sidebar-view-header'
|
||||
export { SystemBrand } from './components/system-brand'
|
||||
export { TopNav } from './components/top-nav'
|
||||
|
||||
+22
-22
@@ -234,6 +234,28 @@ export function Hero(props: HeroProps) {
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{/* ── Provider logos marquee (between hero and code demo) ── */}
|
||||
<div className='relative py-16'>
|
||||
<p className='mb-4 text-center text-xs font-medium uppercase tracking-widest text-muted-foreground/60'>
|
||||
{t('Supported providers')}
|
||||
</p>
|
||||
<div className='relative overflow-hidden'>
|
||||
<div className='flex animate-[marquee_30s_linear_infinite] gap-8'>
|
||||
{[...providers, ...providers].map((name, i) => (
|
||||
<span
|
||||
key={`${name}-${i}`}
|
||||
className='shrink-0 text-sm font-semibold text-muted-foreground/40'
|
||||
>
|
||||
{name}
|
||||
</span>
|
||||
))}
|
||||
</div>
|
||||
{/* Fade edges */}
|
||||
<div className='pointer-events-none absolute inset-y-0 left-0 w-16 bg-gradient-to-r from-background to-transparent' />
|
||||
<div className='pointer-events-none absolute inset-y-0 right-0 w-16 bg-gradient-to-l from-background to-transparent' />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* ── Section 2: Code Demo ── */}
|
||||
<div
|
||||
ref={sections[1].ref}
|
||||
@@ -322,28 +344,6 @@ export function Hero(props: HeroProps) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* ── Provider logos marquee (bottom) ── */}
|
||||
<div className='relative py-16'>
|
||||
<p className='mb-4 text-center text-xs font-medium uppercase tracking-widest text-muted-foreground/60'>
|
||||
{t('Supported providers')}
|
||||
</p>
|
||||
<div className='relative overflow-hidden'>
|
||||
<div className='flex animate-[marquee_30s_linear_infinite] gap-8'>
|
||||
{[...providers, ...providers].map((name, i) => (
|
||||
<span
|
||||
key={`${name}-${i}`}
|
||||
className='shrink-0 text-sm font-semibold text-muted-foreground/40'
|
||||
>
|
||||
{name}
|
||||
</span>
|
||||
))}
|
||||
</div>
|
||||
{/* Fade edges */}
|
||||
<div className='pointer-events-none absolute inset-y-0 left-0 w-16 bg-gradient-to-r from-background to-transparent' />
|
||||
<div className='pointer-events-none absolute inset-y-0 right-0 w-16 bg-gradient-to-l from-background to-transparent' />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Marquee keyframes */}
|
||||
<style>{`
|
||||
@keyframes marquee {
|
||||
|
||||
+2
@@ -20,6 +20,7 @@ import { useTranslation } from 'react-i18next'
|
||||
import { useAuthStore } from '@/stores/auth-store'
|
||||
import { Markdown } from '@/components/ui/markdown'
|
||||
import { PublicLayout } from '@/components/layout'
|
||||
import { Footer } from '@/components/layout'
|
||||
import { Hero } from './components'
|
||||
import { useHomePageContent } from './hooks'
|
||||
|
||||
@@ -62,6 +63,7 @@ export function Home() {
|
||||
return (
|
||||
<PublicLayout showMainContainer={false}>
|
||||
<Hero isAuthenticated={isAuthenticated} />
|
||||
<Footer />
|
||||
</PublicLayout>
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user