Commit graph

4 commits

Author SHA1 Message Date
Vadym Samoilenko
a33b0883fc fix: Payload 3.81 admin panel + HeroBlock RSC errors
- layout.tsx: replace minimal html wrapper with RootLayout + handleServerFunctions (fixes ConfigProvider not being initialized)
- HeroBlockComponent.tsx: add 'use client' (fixes onClick event handler RSC serialization error)
- patches/@payloadcms__ui@3.81.0.patch: safe optional chaining for useConfig() in PageConfigProvider + ThemeProvider (fixes 'Cannot destructure config/sort' hydration errors)
- ListQueryContext: add proper default value with query:{} (fixes 'Cannot destructure sort of undefined' on users/labels list)
- package.json: register pnpm patch + add dotenv devDependency + remove --turbopack from dev script

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 19:50:20 +01:00
Vadym Samoilenko
9d4333cf92 fix: bug fixes + Phase 3 middleware/UTM
Bug fixes:
- Add beforeValidate slug hooks to Blog, Events, Pages, LandingPages (slugify)
- Add auto-generation hooks for orderNumber (Orders) and ticketCode (Tickets)
- Restrict Tickets.create to isAuthenticated (was publicly accessible)
- Rename isAdminOrPublished → isAuthenticatedOrPublished for clarity
- Remove redundant brand CSS utilities (Tailwind v4 generates them from @theme)
- Remove autoprefixer (redundant with @tailwindcss/postcss)
- Replace real API keys/IDs with placeholders in .env.example

Phase 3:
- src/middleware.ts — UTM first-touch cookies + maintenance mode redirect
- src/lib/utm.ts — getUtmFromCookies(), getGoogleClientId()
- src/app/(frontend)/maintenance/page.tsx — maintenance page

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 17:09:36 +01:00
Vadym Samoilenko
61e73033fe feat: Phase 2 complete — content model, blocks, collections, globals
- 11 Page Builder blocks: HeroBlock, TextBlock, FeaturesBlock,
  LocationCardBlock, PricingBlock, GalleryBlock, FormBlock (with label
  relation for lead tracking), CTABlock, CountdownBlock, BlogPreviewBlock,
  MapBlock
- Collections: Labels, Pages, LandingPages, Blog, Events, Leads (UTM +
  googleClientId + label relation), Orders, Tickets
- Globals: SiteSettings (GTM/GA4/Binotel/Umami), TicketsConfig, Navigation
- Added "type": "module" to package.json for Payload CLI ESM compatibility
- payload-types.ts generated (1874 lines)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 17:52:54 +01:00
Vadym Samoilenko
04b112d476 feat: Фаза 1 — фундамент проєкту Shumiland
- Ініціалізація Next.js 15.4.11 + Payload CMS 3.x (PostgreSQL/Drizzle)
- Docker Compose: PostgreSQL, Twenty CRM, Umami, Metabase
- Tailwind CSS 4 з brand кольорами (green/orange/blue/purple/yellow)
- Шрифти: Montserrat Alternates + Rubik через next/font/google
- shadcn/ui компоненти: Button, Input, Label, Textarea, Badge, Card, Separator
- Payload колекції: Users (ролі SUPER_ADMIN/ADMIN/EDITOR), Media (upload з sizes)
- Access control: isAdmin, isEditor, isSuperAdmin, isAdminOrPublished
- .env.example з усіма змінними середовища
- Dockerfile (multi-stage, output: standalone)
- Білд успішно проходить перевірку TypeScript

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 14:54:13 +01:00