fix(zero): banner always renders, even without published notes
Showing the hero matters for discoverability — visitors see who Зеро is and the TG channel link even before the first note is published. When there are no notes, hero spans the full width (no empty grid).
This commit is contained in:
@@ -110,11 +110,10 @@ function ZeroNoteCard({ note }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default function ZeroBlock({ notes = [], compact = false }) {
|
export default function ZeroBlock({ notes = [], compact = false }) {
|
||||||
// На главной компонент скрывается полностью если нет заметок;
|
// Баннер всегда рендерится (даже без заметок) — это лицо персонажа.
|
||||||
// на /zero — рендерится только Hero (с CTA-кнопками)
|
// Пустое состояние просто скрывает grid карточек, оставляя hero на всю ширину.
|
||||||
if (compact && notes.length === 0) return null;
|
|
||||||
|
|
||||||
const items = compact ? notes.slice(0, 3) : notes;
|
const items = compact ? notes.slice(0, 3) : notes;
|
||||||
|
const hasItems = items.length > 0;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section
|
<section
|
||||||
@@ -126,13 +125,14 @@ export default function ZeroBlock({ notes = [], compact = false }) {
|
|||||||
>
|
>
|
||||||
<div className="container-wide">
|
<div className="container-wide">
|
||||||
{compact ? (
|
{compact ? (
|
||||||
// Главная: hero слева (5 кол), карточки справа (7 кол)
|
// Главная: hero слева (5 кол), карточки справа (7 кол).
|
||||||
<div className="grid lg:grid-cols-12 gap-8 lg:gap-10 items-start">
|
// Если карточек нет — hero на всю ширину.
|
||||||
<div className="lg:col-span-5 flex items-start gap-5 sm:gap-6">
|
<div className={`grid gap-8 lg:gap-10 items-start ${hasItems ? 'lg:grid-cols-12' : ''}`}>
|
||||||
|
<div className={`flex items-start gap-5 sm:gap-6 ${hasItems ? 'lg:col-span-5' : 'max-w-3xl'}`}>
|
||||||
<ZeroAvatar size="lg" />
|
<ZeroAvatar size="lg" />
|
||||||
<ZeroIntro size="lg" />
|
<ZeroIntro size="lg" />
|
||||||
</div>
|
</div>
|
||||||
{items.length > 0 && (
|
{hasItems && (
|
||||||
<div className="lg:col-span-7">
|
<div className="lg:col-span-7">
|
||||||
<div className="grid sm:grid-cols-2 lg:grid-cols-3 gap-4">
|
<div className="grid sm:grid-cols-2 lg:grid-cols-3 gap-4">
|
||||||
{items.map(n => <ZeroNoteCard key={n.id} note={n} />)}
|
{items.map(n => <ZeroNoteCard key={n.id} note={n} />)}
|
||||||
@@ -147,7 +147,7 @@ export default function ZeroBlock({ notes = [], compact = false }) {
|
|||||||
<ZeroAvatar size="xl" />
|
<ZeroAvatar size="xl" />
|
||||||
<ZeroIntro size="xl" />
|
<ZeroIntro size="xl" />
|
||||||
</div>
|
</div>
|
||||||
{items.length > 0 ? (
|
{hasItems ? (
|
||||||
<div className="grid sm:grid-cols-2 lg:grid-cols-3 gap-4 sm:gap-5">
|
<div className="grid sm:grid-cols-2 lg:grid-cols-3 gap-4 sm:gap-5">
|
||||||
{items.map(n => <ZeroNoteCard key={n.id} note={n} />)}
|
{items.map(n => <ZeroNoteCard key={n.id} note={n} />)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user