Initial commit: sito NexStudio (Astro) con Cloudflare, CMS cookie e contenuti legali
- Home: hero, prodotti, servizi, stack, FAQ, CTA con form contatti inline (glossy) e particelle - Header nero, menu con scroll-spy e alone su voce attiva, CTA Chattiamo (pre-chat) - Pagine: privacy, cookie, GDPR, terms, about, codice etico, modello organizzativo, dove siamo, news - Cookie consent first-party, chat gate, stampe-friendly su SubpageLayout - Footer: Sezioni con Contattaci, Azienda con Dove siamo senza link per ora - .gitignore: aggiunto .wrangler/ per stato locale Cloudflare Made-with: Cursor
This commit is contained in:
57
src/data/home/chat.ts
Normal file
57
src/data/home/chat.ts
Normal file
@ -0,0 +1,57 @@
|
||||
/**
|
||||
* Chat live: prima identificazione (email → link/codice), poi sessione.
|
||||
*
|
||||
* `entryUrl`: dove aprire la chat dopo l’accesso (es. `/#contatti`, widget https, wa.me).
|
||||
* `prechat`: invio richiesta con Formspree (`actionUrl`) o `mailto:` se l’URL è vuoto.
|
||||
* `prechat.openChatAfterSubmit`: se `true`, dopo invio riuscito apre subito `entryUrl` (es. prova interna);
|
||||
* con flusso token via email lasciare `false` e usare `successMessage`.
|
||||
*/
|
||||
|
||||
/** Destinazione della chat dopo identificazione / click su «Entra» */
|
||||
const entryUrl = '/#contatti';
|
||||
// Esempio WhatsApp: `https://wa.me/TUO_NUMERO?text=` + encodeURIComponent('Ciao NexStudio...');
|
||||
|
||||
export const chat = {
|
||||
entryUrl,
|
||||
/** Nuova scheda solo per link esterni (wa.me, widget, ecc.) */
|
||||
openInNewTab: entryUrl.startsWith('http'),
|
||||
linkTitle:
|
||||
'Accesso alla chat NexStudio: stato canale, email di verifica e assistenza in più lingue.',
|
||||
|
||||
/**
|
||||
* Cosa vede l’utente **prima** di inserire email: chi risponde (umano / bot / entrambi).
|
||||
* Aggiorna i testi in base agli orari effettivi del team.
|
||||
*/
|
||||
availability: {
|
||||
badge: 'Operatore umano in orario · chatbot sempre attivo',
|
||||
body:
|
||||
'In orario lavorativo un operatore NexStudio può intervenire in chat; all’ingresso il chatbot può raccogliere il contesto iniziale e smistare la richiesta. Fuori orario la conversazione può proseguire con il solo chatbot fino al rientro del team. Lo stato effettivo è indicato qui sopra prima di procedere.',
|
||||
},
|
||||
|
||||
prechat: {
|
||||
title: 'Prima della chat',
|
||||
intro:
|
||||
'Per evitare attese inutili chiediamo l’indirizzo email a cui inviarti un link o un codice monouso per aprire la sessione in modo sicuro. Dopo la verifica potrai usare la chat dal canale che ti indicheremo.',
|
||||
nameLabel: 'Nome (facoltativo)',
|
||||
emailLabel: 'Email',
|
||||
submitLabel: 'Richiedi accesso alla chat',
|
||||
/** Visibile dopo l’invio riuscito: utile se il link nella mail punta allo stesso `entryUrl` */
|
||||
enterChatLabel: 'Ho ricevuto il messaggio — apri la chat',
|
||||
closeLabel: 'Chiudi',
|
||||
successMessage:
|
||||
'Controlla la posta in arrivo: ti abbiamo inviato le istruzioni (link o codice) per entrare in chat. Se non vedi nulla, controlla anche lo spam.',
|
||||
/** Formspree dedicato alla richiesta accesso chat — vuoto = prova `mailto` */
|
||||
actionUrl: '',
|
||||
/** Se `actionUrl` è vuoto */
|
||||
mailto: '',
|
||||
notifySubject: 'Richiesta accesso chat — sito NexStudio',
|
||||
successRedirect: '',
|
||||
fieldName: 'name',
|
||||
fieldEmail: 'email',
|
||||
/**
|
||||
* Dopo POST Formspree riuscito: apri subito `entryUrl` (es. test con pagina contatti).
|
||||
* Con invio token via email da backend: `false`.
|
||||
*/
|
||||
openChatAfterSubmit: false,
|
||||
},
|
||||
} as const;
|
||||
Reference in New Issue
Block a user