Vue Advanced Chat is a progressive web application that showcases all the features of the Vue advanced chat component.
Built with Firestore, Vuetify, and Push Notifications.
live chat responses examples, best live chat examples, live chat scripts, mock chat examples, how to chat with customers online examples, customer service chat examples
If you would like to have excellent access to a realistic source code example, please contact me via email.
You will get a fully functional chat app for web and mobile:
- UI and backend integration
- Email, Facebook, and Google authentication
- Real-time messaging, instant browser notifications, and image optimization (Firebase Cloud avatar compression functions)
- UI/UX components for alerts (errors, information), dialogs, etc.
- Add existing users to a room using their email
- Email invitations to non-existent users
- Profile and rooms edition
- Add and delete room users
- Firestore app optimized to reduce bandwidth and costs as much as possible
- State management using vuex
- Internationalization (i18n)
- Google Analytics
- Support to help you start chatting
How to make use of it:
1. Install and import the resources needed in your project.
import ChatWindow from 'vue-advanced-chat' import 'vue-advanced-chat/dist/vue-advanced-chat.css'
2. Create a new chat window component in your template.
<template> <chat-window :currentUserId="currentUserId" :rooms="rooms" :messages="messages" /> </template>
3. Full props to customize the chat conversation window.
height: { type: String, default: '600px' }, theme: { type: String, default: 'light' }, styles: { type: Object, default: () => ({}) }, responsiveBreakpoint: { type: Number, default: 900 }, singleRoom: { type: Boolean, default: false }, roomsListOpened: { type: Boolean, default: true }, textMessages: { type: Object, default: null }, currentUserId: { type: [String, Number], default: '' }, rooms: { type: Array, default: () => [] }, loadingRooms: { type: Boolean, default: false }, roomsLoaded: { type: Boolean, default: false }, roomId: { type: [String, Number], default: null }, loadFirstRoom: { type: Boolean, default: true }, messages: { type: Array, default: () => [] }, messagesLoaded: { type: Boolean, default: false }, roomActions: { type: Array, default: () => [] }, menuActions: { type: Array, default: () => [] }, messageActions: { type: Array, default: () => [ { name: 'replyMessage', title: 'Reply' }, { name: 'editMessage', title: 'Edit Message', onlyMe: true }, { name: 'deleteMessage', title: 'Delete Message', onlyMe: true } ] }, showSearch: { type: Boolean, default: true }, showAddRoom: { type: Boolean, default: true }, showSendIcon: { type: Boolean, default: true }, showFiles: { type: Boolean, default: true }, showAudio: { type: Boolean, default: true }, showEmojis: { type: Boolean, default: true }, showReactionEmojis: { type: Boolean, default: true }, showNewMessagesDivider: { type: Boolean, default: true }, showFooter: { type: Boolean, default: true }, textFormatting: { type: Boolean, default: true }, linkOptions: { type: Object, default: () => ({ disabled: false, target: '_blank' }) }, roomInfoEnabled: { type: Boolean, default: false }, textareaActionEnabled: { type: Boolean, default: false }, roomMessage: { type: String, default: '' }, acceptedFiles: { type: String, default: '*' }
4. Full props to customize chat rooms.
currentUserId: { type: [String, Number], required: true }, textMessages: { type: Object, required: true }, singleRoom: { type: Boolean, required: true }, showRoomsList: { type: Boolean, required: true }, isMobile: { type: Boolean, required: true }, rooms: { type: Array, required: true }, roomId: { type: [String, Number], required: true }, loadFirstRoom: { type: Boolean, required: true }, messages: { type: Array, required: true }, roomMessage: { type: String, default: null }, messagesLoaded: { type: Boolean, required: true }, menuActions: { type: Array, required: true }, messageActions: { type: Array, required: true }, showSendIcon: { type: Boolean, required: true }, showFiles: { type: Boolean, required: true }, showAudio: { type: Boolean, required: true }, showEmojis: { type: Boolean, required: true }, showReactionEmojis: { type: Boolean, required: true }, showNewMessagesDivider: { type: Boolean, required: true }, showFooter: { type: Boolean, required: true }, acceptedFiles: { type: String, required: true }, textFormatting: { type: Boolean, required: true }, linkOptions: { type: Object, required: true }, loadingRooms: { type: Boolean, required: true }, roomInfoEnabled: { type: Boolean, required: true }, textareaActionEnabled: { type: Boolean, required: true }
5. Full props to customize the room list.
currentUserId: { type: [String, Number], required: true }, textMessages: { type: Object, required: true }, showRoomsList: { type: Boolean, required: true }, showSearch: { type: Boolean, required: true }, showAddRoom: { type: Boolean, required: true }, textFormatting: { type: Boolean, required: true }, linkOptions: { type: Object, required: true }, isMobile: { type: Boolean, required: true }, rooms: { type: Array, required: true }, loadingRooms: { type: Boolean, required: true }, roomsLoaded: { type: Boolean, required: true }, room: { type: Object, required: true }, roomActions: { type: Array, required: true }
6. Full props to customize the message.
currentUserId: { type: [String, Number], required: true }, textMessages: { type: Object, required: true }, index: { type: Number, required: true }, message: { type: Object, required: true }, messages: { type: Array, required: true }, editedMessage: { type: Object, required: true }, roomUsers: { type: Array, default: () => [] }, messageActions: { type: Array, required: true }, roomFooterRef: { type: HTMLDivElement, default: null }, newMessages: { type: Array, default: () => [] }, showReactionEmojis: { type: Boolean, required: true }, showNewMessagesDivider: { type: Boolean, required: true }, textFormatting: { type: Boolean, required: true }, linkOptions: { type: Object, required: true }, emojisList: { type: Object, required: true }, hideOptions: { type: Boolean, required: true }
7. Event handlers.
fetchMessages({ room, options }) { // A user has scrolled on top to load more messages } sendMessage ({ roomId, content, file, replyMessage }) { // A user has sent a message } editMessage ({ roomId, messageId, newContent, file, replyMessage }) { // A user has edited a message } deleteMessage ({ roomId, messageId }) { // A user has deleted a message } openFile ({ download, message }) { // A user has clicked to view or download a file } addRoom () { // A user clicks on the plus icon next to searchbar } menuActionHandler ({ roomId, action }) { // A user clicks on the vertical dots icon inside a room } messageActionHandler ({ roomId, action }) { // A user clicks on the dropdown icon inside a message } sendMessageReaction ({ roomId, messageId, reaction, remove }) { // A user clicks on the emoji icon inside a message }
Realtime Conversation Chat Plugin/Github, live chat on website
See Demo And Download
Official Website(antoine92190): Click Here
This superior jQuery/javascript plugin is developed by antoine92190. For extra Advanced Usages, please go to the official website.