sm_chat 1767.581.686
sm_chat: ^1767.581.686 copied to clipboard
Professional integration for https://supermaker.ai/chat/
sm-chat #
A Dart package providing utilities for building and managing chat applications. It simplifies common tasks like message formatting, user management, and event handling within a chat environment.
Installation #
To use sm-chat in your Dart project, add it as a dependency in your pubspec.yaml file:
yaml
dependencies:
sm_chat: ^1.0.0 # Replace with the latest version
Then, run dart pub get to fetch the package.
Usage Examples #
Here are a few examples demonstrating how to use the sm-chat package:
1. Formatting a Chat Message: dart import 'package:sm_chat/sm_chat.dart';
void main() { final message = ChatMessage( senderId: 'user123', content: 'Hello, how are you?', timestamp: DateTime.now(), );
final formattedMessage = message.format(); print(formattedMessage); // Output: User user123: Hello, how are you? (Timestamp) }
2. Managing Users in a Chat Room: dart import 'package:sm_chat/sm_chat.dart';
void main() { final chatRoom = ChatRoom(roomId: 'room456'); chatRoom.addUser('user123'); chatRoom.addUser('user456');
print(chatRoom.getUsers()); // Output: [user123, user456]
chatRoom.removeUser('user123'); print(chatRoom.getUsers()); // Output: [user456] }
3. Handling Chat Events: dart import 'package:sm_chat/sm_chat.dart';
void main() { final chatEventBus = ChatEventBus();
chatEventBus.on
final message = ChatMessage( senderId: 'user789', content: 'This is a new message!', timestamp: DateTime.now(), );
chatEventBus.fire(MessageSentEvent(message)); }
class MessageSentEvent { final ChatMessage message;
MessageSentEvent(this.message); }
4. Creating a Custom Chat Message Type: dart import 'package:sm_chat/sm_chat.dart';
class ImageChatMessage extends ChatMessage { final String imageUrl;
ImageChatMessage({ required String senderId, required DateTime timestamp, required this.imageUrl, }) : super(senderId: senderId, content: 'Image', timestamp: timestamp);
@override String format() { return 'Image from $senderId: $imageUrl'; } }
void main() { final imageMessage = ImageChatMessage( senderId: 'user007', timestamp: DateTime.now(), imageUrl: 'https://example.com/image.jpg', );
print(imageMessage.format()); // Output: Image from user007: https://example.com/image.jpg }
5. Implementing a Simple Chat Service: dart import 'package:sm_chat/sm_chat.dart';
class ChatService { final ChatEventBus eventBus = ChatEventBus();
void sendMessage(String roomId, String senderId, String content) { final message = ChatMessage( senderId: senderId, content: content, timestamp: DateTime.now(), ); eventBus.fire(MessageSentEvent(message)); }
Stream
void main() { final chatService = ChatService(); chatService.onMessageReceived('room123').listen((message) { print('Received message in room123: ${message.content} from ${message.senderId}'); });
chatService.sendMessage('room123', 'user456', 'Hello from user456!'); }
class MessageSentEvent { final ChatMessage message;
MessageSentEvent(this.message); }
Feature Summary #
- ChatMessage: A base class for representing chat messages with sender ID, content, and timestamp.
- ChatRoom: Manages users within a chat room.
- ChatEventBus: A simple event bus for handling chat-related events.
- Extensible: Easily create custom message types and event handlers to fit your specific needs.
- Utilities: Provides helpful formatting and utility functions for common chat operations.
License #
MIT License
This package is part of the sm-chat ecosystem. For advanced features and enterprise-grade tools, visit: https://supermaker.ai/chat/