import 'package:flutter/material.dart';

import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:vrouter/vrouter.dart';

import 'package:fluffychat/pages/chat_list/chat_list.dart';
import 'package:fluffychat/pages/chat_list/spaces_drawer.dart';
import 'package:fluffychat/utils/fluffy_share.dart';
import 'package:fluffychat/widgets/avatar.dart';
import 'package:fluffychat/widgets/matrix.dart';
import '../../config/app_config.dart';

class ChatListDrawer extends StatelessWidget {
  final ChatListController controller;
  const ChatListDrawer(this.controller, {Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) => Drawer(
        child: SafeArea(
          child: Column(
            children: [
              ListTile(
                leading: const CircleAvatar(
                  radius: Avatar.defaultSize / 2,
                  backgroundImage: AssetImage('assets/logo.png'),
                ),
                title: Text(AppConfig.applicationName),
              ),
              const Divider(thickness: 1),
              Expanded(
                child: SpacesDrawer(
                  controller: controller,
                ),
              ),
              const Divider(thickness: 1),
              ListTile(
                leading: Icon(
                  Icons.group_add_outlined,
                  color: Theme.of(context).colorScheme.onBackground,
                ),
                title: Text(L10n.of(context)!.createNewGroup),
                onTap: () {
                  Scaffold.of(context).closeDrawer();
                  VRouter.of(context).to('/newgroup');
                },
              ),
              ListTile(
                leading: Icon(
                  Icons.group_work_outlined,
                  color: Theme.of(context).colorScheme.onBackground,
                ),
                title: Text(L10n.of(context)!.createNewSpace),
                onTap: () {
                  Scaffold.of(context).closeDrawer();
                  VRouter.of(context).to('/newspace');
                },
              ),
              ListTile(
                leading: Icon(
                  Icons.adaptive.share_outlined,
                  color: Theme.of(context).colorScheme.onBackground,
                ),
                title: Text(L10n.of(context)!.inviteContact),
                onTap: () {
                  Scaffold.of(context).closeDrawer();
                  FluffyShare.share(
                      L10n.of(context)!.inviteText(
                          Matrix.of(context).client.userID!,
                          'https://matrix.to/#/${Matrix.of(context).client.userID}?client=im.fluffychat'),
                      context);
                },
              ),
              ListTile(
                leading: Icon(
                  Icons.settings_outlined,
                  color: Theme.of(context).colorScheme.onBackground,
                ),
                title: Text(L10n.of(context)!.settings),
                onTap: () {
                  Scaffold.of(context).closeDrawer();
                  VRouter.of(context).to('/settings');
                },
              ),
            ],
          ),
        ),
      );
}