Repository navigation
Contact form on @profullstack/contact-form 0.1.0 - #14
Merged
Merged
Conversation
/contact and /api/contact now share one createContactForm object
(apps/web/src/lib/contact.ts): the same questions (Name, Email, a
required Subject select with Bug Report / Question / Feedback / Other,
Message), placeholders, length rules and messages (name 2-100, message
10-2000), "icemap:contact" binding and brand terms, the same token
secret (FORM_GUARD_SECRET, else SMTP_PASSWORD), the same SMTP relay and
env (SMTP_*, ADMIN_EMAIL), the same "[icemap Contact] <Subject>: <first
50 chars>" subject, and the same { success: true } / { error } answers.
As before, a failed or unconfigured send is logged and the sender still
told it arrived.
The contact_submit and contact_success analytics events still fire;
contact_error no longer does (the module has no error callback yet).
The notification email is now the module's (labelled rows, provenance)
instead of the hand-built HTML, and escapes everything.
Removed the hand-rolled guard (lib/contact-guard.ts), the form state in
components/ContactForm.tsx and the direct @profullstack/form-guard
dependency. Version 0.1.3.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
ThreatCrush Security Scan3 finding(s) HIGH/CRITICAL: 1 | LOW: 2
Snippets are redacted; ThreatCrush never prints matched credential material. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves
/contactand/api/contactonto@profullstack/contact-form@0.1.0(pinned).apps/web/src/lib/contact.ts: onecreateContactFormshared by page and route. Same questions, placeholders, length rules and error messages, bindingicemap:contact, brand terms, token secret (FORM_GUARD_SECRETthenSMTP_PASSWORD), SMTP relay via a modulesend(sameSMTP_*/ADMIN_EMAILenv), subject line, and{ success: true }even when SMTP fails (onSendError: 'ignore'), as before.components/ContactForm.tsxwraps<ContactForm>from@profullstack/contact-form/react;contact_submit/contact_successstill tracked.cf-*styled inglobals.css; honeypot off-canvas.lib/contact-guard.ts; dropped@profullstack/form-guard.api/contact/route.test.ts: tokenless POST not delivered, valid one reaches the transport, old length rules hold.Small behaviour changes: no
contact_errorevent, no "Send Another Message" button, the live character counter is now a static "Up to 2000 characters" hint, and the notification email uses the module's layout.🤖 Generated with Claude Code