Skip to content

feat: formularz kontaktowy z Gmail API#2

Open
Xeross99 wants to merge 4 commits into
mainfrom
feat/contact-form
Open

feat: formularz kontaktowy z Gmail API#2
Xeross99 wants to merge 4 commits into
mainfrom
feat/contact-form

Conversation

@Xeross99

@Xeross99 Xeross99 commented Apr 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • Dodanie formularza kontaktowego na stronie /kontakt z wysyłką maili przez Gmail API
  • Layout 2-kolumnowy: dane kontaktowe (email, telefon, social media) po lewej, formularz po prawej
  • Server Action z walidacją Valibot i rate limitingiem (max 3 wiadomości/godz. na IP)
  • Reply-To ustawione na email użytkownika — Aleksandra może odpowiedzieć bezpośrednio z Gmaila

Nowe pliki

  • src/lib/gmail.js — klient Gmail API (OAuth2 + wysyłka)
  • src/app/kontakt/actions.js — Server Action z walidacją i rate limiting
  • src/app/kontakt/ContactForm.jsx — komponent formularza (client-side)
  • .env.example — szablon zmiennych środowiskowych

Konfiguracja wymagana przed deploy

Instrukcja konfiguracji Google Cloud jest w docs/superpowers/specs/2026-04-09-contact-form-gmail-design.md (plik lokalny, nie w repo). Trzeba:

  1. Utworzyć projekt w Google Cloud Console
  2. Włączyć Gmail API
  3. Skonfigurować OAuth i uzyskać refresh token
  4. Dodać zmienne do .env.local (wzór w .env.example)

Test plan

  • Sprawdzić wygląd formularza na desktop i mobile
  • Sprawdzić dark mode
  • Przetestować walidację (puste pola, za krótkie imię, zły email, za krótka wiadomość)
  • Skonfigurować Gmail API i przetestować wysyłkę maila
  • Sprawdzić czy Reply-To działa (odpowiedź z Gmaila trafia do użytkownika)

🤖 Generated with Claude Code

@vercel

vercel Bot commented Apr 9, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
zdrowo-aktywni Ready Ready Preview, Comment Apr 9, 2026 7:05am

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant