This is a React-based chat component library built with TypeScript, designed to be published as an NPM package (@ethora/chat-component). It's primarily using Vite as the build tool.
Key Features
- Chat Functionality: A standalone chat component that can be integrated into other React applications
- Firebase Integration: Includes Firebase configuration for authentication and backend services
- XMPP Support: Uses XMPP protocol for real-time messaging (as seen in the config files with XMPP domain settings)
- Environment Configuration: Supports different environments through environment variables (development/production)
Project Structure The project has two main source directories: /src: Main source code /lib: Library-specific code for distribution
Technical Stack
- Frontend Framework: React 18
- Language: TypeScript
- Build Tool: Vite
- State Management: Redux (with Redux Toolkit and Redux Saga)
- Styling: Styled Components
Backend Services:
- Firebase
- API Server (ethora.com)
- XMPP Server (ethora.com)
Configuration
- Uses TypeScript with strict mode disabled (see tsconfig.json)
- ESLint and Prettier for code formatting
- Supports both ESM and CommonJS modules
- Includes comprehensive build configurations for library distribution
Entry Points There are two main entry points:
Development entry (seen in src/main.tsx):
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App.tsx';
import './index.css';
ReactDOM.createRoot(document.getElementById('root')!).render(<App />);
Library entry (seen in lib/src/main.tsx):
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App.tsx';
import './index.css';
ReactDOM.createRoot(document.getElementById('root')!).render(<App />);
Notable Features
- Environment Variables: Extensive use of environment variables for configuration
- Type Definitions: Includes TypeScript type definitions for better developer experience
- Documentation: Includes comprehensive documentation (README.md, CONTRIBUTING.md, etc.)
- Security: Includes security policies and contribution guidelines
- CI/CD: Includes GitHub Actions workflow for automated releases
Chat Component is part of Ethora platform ecosystem and is designed to be easily integrated into other React or Javascript applications.