npm install --save react-chat-widget
yarn add react-chat-widget
1- Fügen Sie die Widget-Komponente zu Ihrer Stammkomponente hinzu
import React from 'react' ;
import { Widget } from 'react-chat-widget' ;
import 'react-chat-widget/lib/styles.css' ;
function App ( ) {
return (
< div className = "App" >
< Widget />
</ div >
) ;
}
export default App ;
2- Die einzige erforderliche Requisite, die Sie verwenden müssen, ist handleNewUserMessage
, die die Eingaben vom Benutzer empfängt.
import React from 'react' ;
import { Widget } from 'react-chat-widget' ;
import 'react-chat-widget/lib/styles.css' ;
function App ( ) {
const handleNewUserMessage = ( newMessage ) => {
console . log ( `New message incoming! ${ newMessage } ` ) ;
// Now send the message throught the backend API
} ;
return (
< div className = "App" >
< Widget
handleNewUserMessage = { handleNewUserMessage }
/>
</ div >
) ;
}
export default App ;
3- Importieren Sie die Methoden, um Nachrichten im Widget hinzuzufügen. (Siehe Nachrichten)
import React from 'react' ;
import { Widget , addResponseMessage } from 'react-chat-widget' ;
import 'react-chat-widget/lib/styles.css' ;
function App ( ) {
useEffect ( ( ) => {
addResponseMessage ( 'Welcome to this awesome chat!' ) ;
} , [ ] ) ;
const handleNewUserMessage = ( newMessage ) => {
console . log ( `New message incoming! ${ newMessage } ` ) ;
// Now send the message throught the backend API
addResponseMessage ( response ) ;
} ;
return (
< div className = "App" >
< Widget
handleNewUserMessage = { handleNewUserMessage }
/>
</ div >
) ;
}
export default App ;
4- Passen Sie das Widget an Ihr App-Design an! Sie können beide Requisiten hinzufügen, um den Titel des Widgets und den Avatar zu verwalten, den es verwenden wird. Selbstverständlich können Sie die Stile des Widgets im CSS jederzeit ändern
import React , { useEffect } from 'react' ;
import { Widget , addResponseMessage } from 'react-chat-widget' ;
import 'react-chat-widget/lib/styles.css' ;
import logo from './logo.svg' ;
function App ( ) {
useEffect ( ( ) => {
addResponseMessage ( 'Welcome to this **awesome** chat!' ) ;
} , [ ] ) ;
const handleNewUserMessage = ( newMessage ) => {
console . log ( `New message incoming! ${ newMessage } ` ) ;
// Now send the message throught the backend API
} ;
return (
< div className = "App" >
< Widget
handleNewUserMessage = { handleNewUserMessage }
profileAvatar = { logo }
title = "My new awesome title"
subtitle = "And my cool subtitle"
/>
</ div >
) ;
}
export default App ;
Stütze | Typ | erforderlich | Standardwert | Beschreibung |
---|---|---|---|---|
handleNewUserMessage | (...args: any[]) => any | JA | Funktion zur Verarbeitung der Benutzereingaben. Sie erhält bei der Übermittlung die vollständige Textnachricht | |
Titel | Zeichenfolge | NEIN | 'Willkommen' | Titel des Widgets |
Untertitel | Zeichenfolge | NEIN | „Dies ist Ihr Chat-Untertitel“ | Untertitel des Widgets |
senderPlaceHolder | Zeichenfolge | NEIN | „Geben Sie eine Nachricht ein...“ | Der Platzhalter der Nachrichteneingabe |
ProfilAvatar | Zeichenfolge | NEIN | Das Profilbild, das in den Antworten festgelegt wird | |
ProfilClientAvatar | Zeichenfolge | NEIN | Das Profilbild, das in den Client-Nachrichten festgelegt wird | |
TitelAvatar | Zeichenfolge | NEIN | Das Bild, das neben dem Chattitel angezeigt wird | |
showCloseButton | Boolescher Wert | NEIN | FALSCH | Blenden Sie die Schließen-Schaltfläche im Vollbildmodus ein oder aus |
Vollbildmodus | Boolescher Wert | NEIN | FALSCH | Ermöglichen Sie die Verwendung des Vollbildmodus im Volldesktopmodus |
Autofokus | Boolescher Wert | NEIN | WAHR | Ob Autofokus oder nicht, die Benutzereingabe |
Launcher | (handleToggle) => ElementType | NEIN | Benutzerdefinierte Launcher-Komponente, die anstelle der Standardkomponente verwendet werden soll | |
handleQuickButtonClicked | (...args: any[]) => any | NEIN | Funktion zur Handhabung des Benutzers, der auf eine Schnellschaltfläche klickt, erhält den „Wert“, wenn er darauf klickt. | |
showTimeStamp | Boolescher Wert | NEIN | WAHR | Zeitstempel für Nachrichten anzeigen |
chatId | Zeichenfolge | NEIN | 'rcw-chat-container' | Chat-Container-ID für a11y |
handleToggle | (...args: any[]) => any | NEIN | 'rcw-chat-container' | Funktion, die verarbeitet wird, wenn das Widget umgeschaltet wird, erhält den Umschaltstatus |
LauncherOpenLabel | Zeichenfolge | NEIN | „Chat öffnen“ | Alt-Wert für den Launcher, wenn er geschlossen ist |
launcherCloseLabel | Zeichenfolge | NEIN | „Chat schließen“ | Alt-Wert für den Launcher, wenn er geöffnet ist |
launcherOpenImg | Zeichenfolge | NEIN | '' | Lokale oder Remote-Bild-URL. Wenn nicht angegeben, wird das Standardbild angezeigt |
launcherCloseImg | Zeichenfolge | NEIN | '' | Lokale oder Remote-Bild-URL. Wenn nicht angegeben, wird das Standardbild angezeigt |
sendButtonAlt | Zeichenfolge | NEIN | 'Schicken' | Senden Sie die Alt-Taste für verschiedene Zwecke |
handleTextInputChange | (Ereignis) => beliebig | NEIN | Requisite, die bei Eingabeänderung ausgelöst wird | |
handleSubmit | (Ereignis) => beliebig | NEIN | Requisite, die beim Absenden einer Nachricht ausgelöst wird und zur benutzerdefinierten Validierung verwendet wird | |
veränderbar | Boolescher Wert | NEIN | FALSCH | Requisite, die es ermöglicht, die Größe des Widgets durch Ziehen am linken Rand zu ändern |
Emojis | Boolescher Wert | NEIN | FALSCH | Emoji-Auswahl aktivieren |
showBadge | Boolescher Wert | NEIN | WAHR | Requisite, mit der das Abzeichen für ungelesene Nachrichten angezeigt oder ausgeblendet werden kann |
Um die Stile zu ändern, die das Widget haben soll, überschreiben Sie einfach die CSS-Klassen, die sie in den Containern einschließen, und fügen Sie ihnen Ihren eigenen Stil hinzu! Allen Klassen wird rcw-
vorangestellt, sodass sie Ihre anderen Klassen nicht überschreiben, falls Sie diese nicht haben. Zum Überschreiben können Sie beispielsweise Folgendes tun:
. rcw-conversation-container > . rcw-header {
background-color : red;
}
. rcw-message > . rcw-response {
background-color : black;
color : white;
}
Auf diese Weise können Sie das JS sauber lassen und die Stile im CSS beibehalten.
Ab Version 3.0 verfügen Nachrichten nun über eine optionale ID, die bei der Erstellung hinzugefügt werden kann. Wenn Sie neue Nachrichten hinzufügen möchten, können Sie die folgenden Methoden verwenden:
addResponseMessage
addUserMessage
addLinkSnippet
{
title : 'My awesome link' ,
link : 'https://github.com/Wolox/react-chat-widget' ,
target : '_blank'
}
target
_blank
, wodurch der Link in einem neuen Fenster geöffnet wird.renderCustomComponent
setQuickButtons
label
und value
Markdown wird sowohl für die Antworten als auch für Benutzernachrichten unterstützt.
Sie können auch bestimmte Aktionen des Widgets steuern:
toggleWidget
toggleInputDisabled
toggleMsgLoader
deleteMessages *
addResponseMessage
festgelegt haben, oder löschen Sie sie basierend auf der Position oder beides. Beispielsweise löscht deleteMessages(2, 'myId')
die Nachricht mit der ID myId
und die vorherige Nachricht.markAllAsRead
setBadgeCount
badge
Requisite so geändert, dass sie über das Widget verwaltet werden kann. Bei dieser Methode wird die Ausweisnummer manuell festgelegt. Sie können eine benutzerdefinierte Komponente für den Launcher verwenden. Wenn Sie eine benötigen, die nicht die Standardkomponente ist, verwenden Sie einfach die Launcher- Requisite:
import React from 'react' ;
import { Widget } from 'react-chat-widget' ;
...
function MyApp ( ) {
const getCustomLauncher = ( handleToggle ) =>
< button onClick = { handleToggle } > This is my launcher component! </ button >
return (
< Widget
. . .
launcher = { handleToggle => getCustomLauncher ( handleToggle ) }
/>
)
}
getCustomLauncher()
ist eine Methode, die die Launcher
Komponente zurückgibt, wie im Beispiel gezeigt. Standardmäßig erhält die von dieser Requisite übergebene Funktion den handleToggle
Parameter, der die Methode ist, die das Widget umschaltet.
Dieses Projekt wird von Martín Callegari betreut und wurde von Wolox geschrieben.