chat_package 2.0.1 copy "chat_package: ^2.0.1" to clipboard
chat_package: ^2.0.1 copied to clipboard

Fully functional chat ui for flutter, with functionality to send text, voice notes,and images

example/lib/main.dart

import 'package:chat_package/chat_package.dart';
import 'package:chat_package/models/chat_message.dart';
import 'package:chat_package/models/media/chat_media.dart';
import 'package:chat_package/models/media/media_type.dart';
import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Chat Ui example',
      theme: ThemeData(
        primaryColor: const Color(0xFF075E54),
        scaffoldBackgroundColor: Colors.white,
      ),
      home: const ChatPage(),
    );
  }
}

class ChatPage extends StatefulWidget {
  const ChatPage({super.key});

  @override
  State<ChatPage> createState() => _ChatPageState();
}

class _ChatPageState extends State<ChatPage> {
  final textEditingController = TextEditingController();
  @override
  void dispose() {
    textEditingController.dispose();
    super.dispose();
  }

  final messages = [
    ChatMessage(
      text: 'hi omar',
      isSender: true,
    ),
    ChatMessage(
      text: 'hello',
      isSender: false,
    ),
    ChatMessage(
      isSender: true,
      text: 'this is a banana',
      chatMedia: const ChatMedia(
        url:
            'https://images.pexels.com/photos/7194915/pexels-photo-7194915.jpeg?auto=compress&cs=tinysrgb&h=750&w=1260',
        mediaType: MediaType.imageMediaType(),
      ),
    ),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomInset: true,
      appBar: AppBar(
        title: const Text('Chat'),
        backgroundColor: const Color(0xFF075E54),
      ),
      body: ChatScreen(
        messages: messages,
        scrollController: ScrollController(),
        onRecordComplete: (audioMessage) {
          messages.add(audioMessage);
          setState(() {});
        },
        onImageSelected: (imageMessage) {
          messages.add(imageMessage);
          setState(() {});
        },
        textEditingController: textEditingController,
        onTextSubmit: (textMessage) {
          messages.add(textMessage);
          setState(() {});
        },
      ),
    );
  }
}
36
likes
140
points
134
downloads

Publisher

unverified uploader

Weekly Downloads

Fully functional chat ui for flutter, with functionality to send text, voice notes,and images

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, image_picker, intl, just_audio, path_provider, permission_handler, photo_view, provider, record

More

Packages that depend on chat_package