Skip to content

Instantly share code, notes, and snippets.

@ibtesam123
Created May 11, 2020 11:01

Revisions

  1. @ibtesam070 ibtesam070 created this gist May 11, 2020.
    56 changes: 56 additions & 0 deletions AllChatsPage.dart
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,56 @@
    import 'package:flutter/material.dart';
    import 'package:scoped_model/scoped_model.dart';

    import './ChatPage.dart';
    import './User.dart';
    import './ChatModel.dart';

    class AllChatsPage extends StatefulWidget {
    @override
    _AllChatsPageState createState() => _AllChatsPageState();
    }

    class _AllChatsPageState extends State<AllChatsPage> {
    @override
    void initState() {
    super.initState();
    ScopedModel.of<ChatModel>(context, rebuildOnChange: false).init();
    }

    void friendClicked(User friend) {
    Navigator.of(context).push(
    MaterialPageRoute(
    builder: (BuildContext context) {
    return ChatPage(friend);
    },
    ),
    );
    }

    Widget buildAllChatList() {
    return ScopedModelDescendant<ChatModel>(
    builder: (context, child, model) {
    return ListView.builder(
    itemCount: model.friendList.length,
    itemBuilder: (BuildContext context, int index) {
    User friend = model.friendList[index];
    return ListTile(
    title: Text(friend.name),
    onTap: () => friendClicked(friend),
    );
    },
    );
    },
    );
    }

    @override
    Widget build(BuildContext context) {
    return Scaffold(
    appBar: AppBar(
    title: Text('All Chats'),
    ),
    body: buildAllChatList(),
    );
    }
    }