Configurazione
Il comportamento e l'aspetto del chatbot possono essere personalizzati tramite l'oggetto chatbotConfig.
Questo oggetto viene passato come prop al ChatbotProvider e consente di abilitare o disabilitare funzionalità, modificare testi, icone e comportamenti dell'interfaccia.
Esempio completo di configurazione
import { faUser } from "@fortawesome/free-solid-svg-icons";
export const chatbotConfig = {
disableWebSocket: false,
hideChatbotHeader: false,
hideToolbar: true,
chatbotName: "ITlogiX Assistant",
chatbotAvatarText: "IT",
showHintBubble: true,
files: {
enableUploadFile: true
},
avatarMessages: {
showAvatarMessages: true,
user: {
icon: faUser,
color: "success" as "primary" | "secondary" | "error" | "warning" | "info" | "success"
}
}
};
Proprietà di primo livello
disableWebSocket
- Tipo:
boolean - Default:
false
Se impostato a true, disabilita la comunicazione tramite WebSocket.
Utile in ambienti di test o fallback.
hideChatbotHeader
- Tipo:
boolean - Default:
false
Nasconde l'header superiore del chatbot (titolo, azioni, ecc.).
hideToolbar
- Tipo:
boolean - Default:
true
Mostra o nasconde la toolbar inferiore del chatbot.
chatbotName
- Tipo:
string
Nome visualizzato nell'interfaccia del chatbot.
chatbotAvatarText
- Tipo:
string
Testo mostrato all'interno dell'avatar del chatbot (es. iniziali).
showHintBubble
- Tipo:
boolean - Default:
true
Abilita la visualizzazione del messaggio di suggerimento (hint bubble) vicino al pulsante del chatbot.
Configurazione upload file
files.enableUploadFile
- Tipo:
boolean
Abilita o disabilita la possibilità di caricare file all'interno della chat.
files: {
enableUploadFile: true
}
Configurazione avatar messaggi
avatarMessages.showAvatarMessages
- Tipo:
boolean
Se true, mostra l'avatar accanto ai messaggi (utente e bot).
avatarMessages.user
Configurazione dell'avatar per i messaggi dell'utente.
icon
- Tipo:
IconDefinition(FontAwesome)
Icona utilizzata per rappresentare l'utente.
color
- Tipo:
"primary" | "secondary" | "error" | "warning" | "info" | "success"
Colore dell'avatar, coerente con la palette di Material UI.
avatarMessages: {
showAvatarMessages: true,
user: {
icon: faUser,
color: "success"
}
}
Utilizzo con ChatbotProvider
<ChatbotProvider
token={accessToken}
socketUrl={process.env.NEXT_PUBLIC_CHATBOT_URL ?? ""}
chatbotConfig={chatbotConfig}
>
{children}
</ChatbotProvider>
Note finali
- Tutte le proprietà sono opzionali: è possibile passare solo quelle necessarie
- L'oggetto
chatbotConfigpuò essere esteso in futuro con nuove opzioni - Si consiglia di centralizzare la configurazione in un file dedicato (es.
chatbotConfig.ts)
Configurando correttamente questo oggetto è possibile adattare il chatbot allo stile e alle esigenze del progetto 🎨