flutter_dr_uichat 1.0.0 copy "flutter_dr_uichat: ^1.0.0" to clipboard
flutter_dr_uichat: ^1.0.0 copied to clipboard

This pub fluter allow you implement Message screen and Chat screen.

flutter_dr_uichat #

Pub Package

Highly video, feature-packed flutter_dr_uichat widget for Flutter.

Image

Features #

  • Message screen or Inbx Message Screen.
  • Chat Screen.

Usage #

Make sure to check out examples

Installation #

Add the following line to pubspec.yaml:

dependencies:
  flutter_dr_uichat: ^1.0.0

Basic setup #

The complete example is available here.

Youn can check messages title screen

void main() {
  DRChatConfig.config.set(titleMessage: "Messages");
  runApp(const MyApp());
}

Init all function

  List<DRUIChatUser> users = [];
  List<DRUIChatMessage> chatMessages = [];
  @override
  void initState() {
    super.initState();
    //show chat bubble
    initChatBubble();
    //Set Message screen event
    setDRMessageEvent();
    //SetChat screen event
    setDRChatEvent();
  }

imlement all function to support lib


void initChatBubble() {
    WidgetsBinding.instance.addPostFrameCallback((_) {
      DRUIChatBubble.initChatBubble(
        context,
        backgroundColor: Colors.green,
        delay: const Duration(seconds: 2), // Optional delay before showing
      );
    });
  }

  //Testing  Receiver
  void testingReceiver() {
    Future.delayed(const Duration(milliseconds: 500), () {
      DRChatService.chatService.addReceiver(
        DRUIChatMessage(
          id: 1,
          name: "kuchdarith",
          isSender: false,
          message: "Testing hi from Receiver?",
          photo:
              "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTyCF3FunYuwPDPL9ovTOR0MQXdDJpW_ofgXA&s",
          createdAt: DateTime.now().toUtc().toString(),
        ),
      );
    });
  }

  ///Start Chat Screen
  void setDRChatEvent() {
    //Chat screen ready to add message list.
    DRChatService.chatService.onChatLoaded = (data) {
      getChatMessageList();
    };
    //Get message when sender send chat to receiver.
    DRChatService.chatService.onMessage = (message) {
      DRChatService.chatService.addSender(
        DRUIChatMessage(
          id: 1,
          name: "kuchdarith",
          photo:
              "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQRXxfn1j1vKFy8yJeBGl2AS6Dcah-lKgHofg&s",
          isSender: true,
          message: message,
          createdAt: DateTime.now().toUtc().toString(),
        ),
      );
      //This testing receiver send back only.
      testingReceiver();
    };
  }

  //Get Chat lists
  void getChatMessageList() {
    chatMessages = [];
    chatMessages.add(
      DRUIChatMessage(
        id: Random().nextInt(10000),
        name: "Kuch Darith",
        message: "Hi , how are you?",
        createdAt: "2024-09-12T20:42:19Z",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQRXxfn1j1vKFy8yJeBGl2AS6Dcah-lKgHofg&s",
        isSender: true,
      ),
    );
    chatMessages.add(
      DRUIChatMessage(
        id: Random().nextInt(10000),
        name: "Kuch Darith",
        message: "Hi , how are you?",
        createdAt: "2024-09-12T20:42:19Z",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQRXxfn1j1vKFy8yJeBGl2AS6Dcah-lKgHofg&s",
        isSender: true,
      ),
    );
    chatMessages.add(
      DRUIChatMessage(
        id: Random().nextInt(10000),
        name: "Kuch Darith",
        message: "Hi , how are you?",
        createdAt: "2024-09-12T20:42:19Z",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTyCF3FunYuwPDPL9ovTOR0MQXdDJpW_ofgXA&s",
        isSender: false,
      ),
    );
    chatMessages.add(
      DRUIChatMessage(
        id: Random().nextInt(10000),
        name: "Kuch Darith",
        message: "Hi , how are you?",
        createdAt: "2024-09-12T20:42:19Z",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQRXxfn1j1vKFy8yJeBGl2AS6Dcah-lKgHofg&s",
        isSender: true,
      ),
    );

    DRChatService.chatService.setChatMessageLists(chatMessages);
  }
  //End Chat Screen

  ///Start Message Screen
  void setDRMessageEvent() {
    WidgetsBinding.instance.addPostFrameCallback((_) {
      //Delete Message.
      DRChatService.chatService.onDeleteMessage = (data) {
        print("Delete");
      };
      DRChatService.chatService.onMessageRefresh = () async {
        getMessageList();
        await Future.delayed(const Duration(seconds: 1));
      };
      DRChatService.chatService.onMessageLoadMore = () async {
        await Future.delayed(const Duration(seconds: 1));
        loadMoreMessageList();
      };
      DRChatService.chatService.onMessageLoaded = (status) {
        getMessageList();
      };
    });
  }
  // load more for message list.
  void loadMoreMessageList() {
    users.add(
      DRUIChatUser(
        id: Random().nextInt(10000),
        name: "Kuch Darith",
        message: "Hi , how are you?",
        createdAt: "2024-09-12T20:42:19Z",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTyCF3FunYuwPDPL9ovTOR0MQXdDJpW_ofgXA&s",
      ),
    );
  }
  //Get message list
  void getMessageList() {
    users = [];

    users.add(
      DRUIChatUser(
        id: Random().nextInt(10000),
        name: "Kuch Darith",
        message: "Hi , how are you?",
        createdAt: "2024-09-12T20:42:19Z",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTyCF3FunYuwPDPL9ovTOR0MQXdDJpW_ofgXA&s",
      ),
    );
    users.add(
      DRUIChatUser(
        id: Random().nextInt(10000),
        name: "Sok San",
        message: "hahaha",
      ),
    );
    users.add(
      DRUIChatUser(
        id: Random().nextInt(10000),
        name: "Bopha",
        message: "hahaha",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
      ),
    );
    users.add(
      DRUIChatUser(
        id: Random().nextInt(10000),
        name: "Bopha",
        message: "hahaha",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
      ),
    );
    users.add(
      DRUIChatUser(
        id: Random().nextInt(10000),
        name: "Bopha",
        message: "hahaha",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
      ),
    );
    users.add(
      DRUIChatUser(
        id: Random().nextInt(10000),
        name: "Bopha",
        message: "hahaha",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
      ),
    );
    users.add(
      DRUIChatUser(
        id: Random().nextInt(10000),
        name: "Bopha",
        message: "hahaha",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
      ),
    );
    users.add(
      DRUIChatUser(
        id: Random().nextInt(10000),
        name: "Bopha",
        message: "hahaha",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
      ),
    );
    users.add(
      DRUIChatUser(
        id: Random().nextInt(10000),
        name: "Bopha",
        message: "hahaha",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
      ),
    );
    users.add(
      DRUIChatUser(
        id: Random().nextInt(10000),
        name: "Bopha",
        message: "hahaha",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
      ),
    );
    users.add(
      DRUIChatUser(
        id: Random().nextInt(10000),
        name: "Bopha",
        message: "hahaha",
        photo:
            "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS1oiHvf2LgSX3qMalIRToh28R40FJj4HA0Jg&s",
      ),
    );

    DRChatService.chatService.setMessageLists(users);
  }

function #

use this function to init chat bubble icon.

      DRUIChatBubble.initChatBubble(
        context,
        backgroundColor: Colors.green,
        delay: const Duration(seconds: 2), // Optional delay before showing
      );

use for add message as receiver to chat

 DRChatService.chatService.addReceiver(
        DRUIChatMessage(
          id: 1,
          name: "kuchdarith",
          isSender: false,
          message: "Testing hi from Receiver?",
          photo:
              "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTyCF3FunYuwPDPL9ovTOR0MQXdDJpW_ofgXA&s",
          createdAt: DateTime.now().toUtc().toString(),
        ),
      );

use for add message as sender to chat

 DRChatService.chatService.addSender(
        DRUIChatMessage(
          id: 1,
          name: "kuchdarith",
          isSender: false,
          message: "Testing hi from Receiver?",
          photo:
              "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTyCF3FunYuwPDPL9ovTOR0MQXdDJpW_ofgXA&s",
          createdAt: DateTime.now().toUtc().toString(),
        ),
      );

use for set item to message chat screen

DRChatService.chatService.setChatMessageLists(chatMessages);

use for set item to message screen

DRChatService.chatService.setMessageLists(users);

Event Message Screen #

use fo callback when user delele messages.

  DRChatService.chatService.onDeleteMessage = (data) {
        print("Delete");
  };

use fo callback when user refrsh messages.

  DRChatService.chatService.onMessageRefresh = (data) {
        print("Delete");
  };

use fo callback when user refrsh messages.

  DRChatService.chatService.onMessageRefresh = () async {
     
  };

use fo callback when user load more messages.

  DRChatService.chatService.onMessageLoadMore = () async {
        
  };

use fo callback when massage screen ready loaded allow add message list.

  DRChatService.chatService.onMessageLoaded = (status) async {
        
  };

Event for Chat Screen #

use fo callback when chat screen ready loaded allow add chat list.

  DRChatService.chatService.onChatLoaded = (data) async {
        
  };

use fo callback when user send message chat to receiver.

  DRChatService.chatService.onMessage = (message) async {
        
  };

Hello everyone πŸ‘‹

If you want to support me, feel free to do so.

Thanks

============================================

αžŸαž½αžŸαŸ’αžŠαžΈ αž’αŸ’αž“αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆπŸ‘‹

αž”αžΎβ€‹αž’αŸ’αž“αž€β€‹αž…αž„αŸ‹β€‹αž‚αžΆαŸ†αž‘αŸ’αžšβ€‹αžαŸ’αž‰αž»αŸ† αžŸαžΌαž˜β€‹αž’αŸ’αžœαžΎβ€‹αžŠαŸ„αž™β€‹αžŸαŸαžšαžΈ ,

αžŸαžΌαž˜αž’αžšαž‚αž»αžŽ

0
likes
140
points
24
downloads

Publisher

verified publisherdarith.info

Weekly Downloads

This pub fluter allow you implement Message screen and Chat screen.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter, flutter_pull_up_down_refresh, intl

More

Packages that depend on flutter_dr_uichat