Files
zeropost-web/app/zero/page.js
T
Aleksei Pavlov 3cc5dafc08 feat(zero): full-width amber banner with hero + cover-cards
ZeroBlock переработан:
  - full-width секция с amber-градиентом и border-y
  - hero: квадратный аватар Зеро (kofeиная поза) 32-48px + заголовок + tagline
    + CTA-кнопки 'Все заметки' / '@zeropostru'
  - notes карточки: квадратная обложка-поза (image_url из БД) с object-cover,
    под ней цитата с line-clamp-6 + 'в Telegram' ссылка если опубликовано
  - на главной (compact): 5/7 split — hero слева, 3 карточки справа
  - на /zero: hero сверху во всю ширину, сетка из всех карточек ниже
  - graceful empty state когда заметок ещё нет

/zero страница упрощена: вся структура внутри ZeroBlock (убран дублирующий
hero с био-bullets — текст консолидирован в один tagline).
2026-06-19 12:23:55 +03:00

26 lines
827 B
JavaScript

import Header from '@/components/Header';
import Footer from '@/components/Footer';
import ZeroBlock from '@/components/ZeroBlock';
import { listZeroNotes } from '@/lib/engine';
export const dynamic = 'force-dynamic';
export const metadata = {
title: 'Заметки от Зеро',
description: 'Короткие посты от AI-персонажа Зеро — мысли программиста о работе, инструментах и забавных багах',
};
export default async function ZeroPage() {
const results = await Promise.allSettled([listZeroNotes({ limit: 100 })]);
const notes = results[0].status === 'fulfilled' ? results[0].value : [];
return (
<>
<Header />
<main>
<ZeroBlock notes={notes} compact={false} />
</main>
<Footer />
</>
);
}