import 'dart:io'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; class HelpScreen extends StatefulWidget { const HelpScreen({super.key, }); @override State createState() => _HelpScreenState(); } class _HelpScreenState extends State { @override void initState() { } @override void dispose() { super.dispose(); } @override Widget build(BuildContext context) { double screenWidth = MediaQuery.of(context).size.width; double screenHeight = MediaQuery.of(context).size.height; return Scaffold( backgroundColor: Color(0xFFF4F5FA), body:SingleChildScrollView( physics: (Platform.isIOS) ? ClampingScrollPhysics() : AlwaysScrollableScrollPhysics(), child: Container( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ SizedBox( height: 16, ), Padding( padding: EdgeInsets.only(left: 20), child: Text( "Frequently Asked Questions", style: TextStyle( fontWeight: FontWeight.w500, fontFamily: "Inter", fontSize: 16, color: Colors.black, ), ), ), SizedBox( height: 10, ), InkWell( // onTap: () async { // // Navigator.of(context).push( // // PageRouteBuilder( // // transitionDuration: Duration(milliseconds: 110), // // reverseTransitionDuration: // // Duration(milliseconds: 110), // // pageBuilder: // // (context, animation, secondaryAnimation) => // // ChatScreen(), // // transitionsBuilder: (context, animation, // // secondaryAnimation, child) { // // var begin = const Offset(1.0, 0.0); // // var end = Offset.zero; // // var curve = Curves.ease; // // var tween = Tween(begin: begin, end: end) // // .chain(CurveTween(curve: curve)); // // return SlideTransition( // // position: animation.drive(tween), // // child: child, // // ); // // }, // // ), // // ); // final client = StreamChatClient( // 'b4fqt99hw43q', // logLevel: Level.INFO, // // ); // // await client.connectUser( // User(id: '1324635'), // 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMTg0MzYifQ.WmPGKT3qeA_0-0h1cVVa5EHdGKrjQnv1EiUoZ_DzBcA', // ); // // runApp( // MynewApp( // client: client, // ), // ); // }, onTap: () async { // final client = StreamChatClient( // '${StreamChatclient}', // logLevel: Level.INFO, // ); final client = StreamChatClient( 'b4fqt99hw43q', logLevel: Level.INFO, ); // await client.connectUser( // User(id: '${StreamChatappId}'), // StreamChattoken, // ); await client.connectUser( User(id: '1324635'), 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMTg0MzYifQ.WmPGKT3qeA_0-0h1cVVa5EHdGKrjQnv1EiUoZ_DzBcA', ); //user_id // final channel = client.channel('messaging', id: '${StreamChatuserId}', extraData: { // 'name': '${StreamChatuserId}', // //user_id, appId // 'members': ['${StreamChatuserId}', '${StreamChatappId}'], // }); final channel = client.channel('messaging', id: '18436', extraData: { 'name': 'SaiSrinivas Testing', //user_id, appId 'members': ['1324635', '18436'], }); try { await channel.create(); await channel.watch(); Navigator.of(context).pushReplacement( MaterialPageRoute( builder: (context) => MynewApp1(client: client, initialChannel: channel), ), ); } catch (e) { print('Error creating channel: $e'); ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text('Error creating channel: $e')), ); } }, child: Container( decoration: BoxDecoration( color: Color(0xff219EBC).withOpacity(0.8), borderRadius: BorderRadius.circular(38), ), margin: EdgeInsets.only(left: 15.0, right: 15.0), padding: EdgeInsets.symmetric(horizontal: 20), height: 45, child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ SvgPicture.asset( "assets/images/bubble-chat.svg", color: Colors.white, ), SizedBox( width: 8, ), Text( "Chat With Us", style: TextStyle( fontFamily: "Inter", color: Colors.white, ), ), ], ), ), ), SizedBox( height: 10, ), ], ), ), ), ); } } // class MynewApp extends StatelessWidget { // const MynewApp({ // Key? key, // required this.client, // }) : super(key: key); // // final StreamChatClient client; // //left:user,right:admin // Future createChannel(context) async { // final channel = client.channel('messaging', id: '18436', extraData: { // 'name': 'Helping Channel', // 'members': ['19420', '1324635'], // }); // // try { // await channel.create(); // await channel.watch(); // await Navigator.of(context).pushReplacement( // MaterialPageRoute( // builder: (context) => ChatScreen(), // ), // ); // } catch (e) { // print('Error creating channel: $e'); // ScaffoldMessenger.of(context).showSnackBar( // SnackBar(content: Text('Error creating channel: $e')), // ); // } // } // // @override // Widget build(BuildContext context) { // final themeData = ThemeData(primarySwatch: Colors.green); // final defaultTheme = StreamChatThemeData.fromTheme(themeData); // final colorTheme = defaultTheme.colorTheme; // final customTheme = defaultTheme.merge(StreamChatThemeData( // channelPreviewTheme: StreamChannelPreviewThemeData( // avatarTheme: StreamAvatarThemeData( // borderRadius: BorderRadius.circular(8), // ), // ), // otherMessageTheme: StreamMessageThemeData( // messageBackgroundColor: colorTheme.textHighEmphasis, // messageTextStyle: TextStyle( // color: colorTheme.barsBg, // ), // avatarTheme: StreamAvatarThemeData( // borderRadius: BorderRadius.circular(8), // ), // // ), // )); // // return MaterialApp( // debugShowCheckedModeBanner: false, // // theme: themeData, // builder: (context, child) => StreamChat( // client: client, // streamChatThemeData: customTheme, // child: child, // ), // home: ChatScreen(), // // home: StreamChannelCore(), // ); // } // } // // class ChatScreen extends StatefulWidget { // const ChatScreen({Key? key}) : super(key: key); // // @override // State createState() => _ChatScreenState(); // } // // class _ChatScreenState extends State { // late StreamChannelListController _listController; // // @override // void initState() { // super.initState(); // print("Initializing ChatScreen State"); // loadingChats(); // } // // @override // void dispose() { // print("Disposing ChatScreen State"); // _listController.dispose(); // super.dispose(); // } // // void loadingChats() { // print("Loading chats"); // // _listController = StreamChannelListController( // client: StreamChat.of(context).client, // filter: Filter.in_( // 'members', // [StreamChat.of(context).currentUser!.id], // ), // channelStateSort: const [SortOption('last_message_at')], // limit: 1, // memberLimit: 1, // ); // // print("ListController created with limit: ${_listController.limit}, memberLimit: ${_listController.memberLimit}"); // // _listController.doInitialLoad(); // // // List channels = []; // int index = 0; // StreamChannelListTile defaultChannelTile; // // // // } // // @override // Widget build(BuildContext context) { // print("Building ChatScreen"); // // return StreamChat( // client: StreamChat.of(context).client, // child: Scaffold( // appBar: AppBar( // title: InkResponse( // onTap: () { // print("AppBar tapped"); // if (Navigator.canPop(context)) { // Navigator.pop(context); // Navigator.pop(context); // } // }, // child: Text("Help Support"), // ), // ), // body: StreamChannelListView( // controller: _listController, // itemBuilder: ( // BuildContext context, // List channels, // int index, // StreamChannelListTile defaultChannelTile, // ) { // final channel = channels[index]; // final messages = channel.state?.messages.reversed.where( // (message) => !message.isDeleted, // ); // // final lastMessage = messages != null && messages.isNotEmpty // ? messages.first // : null; // // // // final subtitle = lastMessage == null ? 'nothing yet' : lastMessage.text!; // // final opacity = (channel.state?.unreadCount ?? 0) > 0 ? 1.0 : 0.5; // // // // final theme = StreamChatTheme.of(context); // // // print("Building channel tile for channel: ${channel.id}, with last message: ${lastMessage?.text}"); // // return Container( // child: Column( // children: [ // Text("Welcome to Help section"), // InkResponse( // onTap: () { // print("Channel details - ID: ${channel.id}, Type: ${channel.type}, Client: ${channel.client}"); // Navigator.push( // context, // MaterialPageRoute( // builder: (_) => StreamChannel( // channel: channel, // child: const ChannelPage(), // ), // ), // ); // }, // child: Text("Continue"), // ) // ], // ), // ); // }, // ), // ), // ); // } // // // Widget _channelTileBuilder( // // BuildContext context, // // List channels, // // int index, // // StreamChannelListTile defaultChannelTile, // // ) { // // final channel = channels[index]; // // final messages = channel.state?.messages.reversed.where( // // (message) => !message.isDeleted, // // ); // // // // final lastMessage = messages != null && messages.isNotEmpty // // ? messages.first // // : null; // // // // final subtitle = lastMessage == null ? 'nothing yet' : lastMessage.text!; // // final opacity = (channel.state?.unreadCount ?? 0) > 0 ? 1.0 : 0.5; // // // // final theme = StreamChatTheme.of(context); // // // // // // print("Building channel tile for channel: ${channel.id}, with last message: ${lastMessage?.text}"); // // // // return Container( // // child: Column( // // children: [ // // Text("Welcome to Help section"), // // InkResponse( // // onTap: () { // // print("Channel details - ID: ${channel.id}, Type: ${channel.type}, Client: ${channel.client}"); // // Navigator.push( // // context, // // MaterialPageRoute( // // builder: (_) => StreamChannel( // // channel: channel, // // child: const ChannelPage(), // // ), // // ), // // ); // // }, // // child: Text("Continue"), // // ) // // ], // // ), // // ); // // } // } // // class MynewApp1 extends StatelessWidget { const MynewApp1({ Key? key, required this.client, required this.initialChannel, }) : super(key: key); final StreamChatClient client; final Channel initialChannel; @override Widget build(BuildContext context) { final themeData = ThemeData(primarySwatch: Colors.green); final defaultTheme = StreamChatThemeData.fromTheme(themeData); final colorTheme = defaultTheme.colorTheme; final customTheme = defaultTheme.merge(StreamChatThemeData( channelPreviewTheme: StreamChannelPreviewThemeData( avatarTheme: StreamAvatarThemeData( borderRadius: BorderRadius.circular(8), ), ), otherMessageTheme: StreamMessageThemeData( messageBackgroundColor: colorTheme.textHighEmphasis, messageTextStyle: TextStyle( color: colorTheme.barsBg, ), avatarTheme: StreamAvatarThemeData( borderRadius: BorderRadius.circular(8), ), ), )); return MaterialApp( debugShowCheckedModeBanner: false, theme: themeData, builder: (context, child) => StreamChat( client: client, streamChatThemeData: customTheme, child: child, ), home: ChannelPage1(channel: initialChannel), ); } } class ChannelPage1 extends StatelessWidget { final Channel channel; const ChannelPage1({Key? key, required this.channel}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Channel ${channel.id}'), ), body: StreamChannel( channel: channel, child: ChannelPageContent(), ), ); } } class ChannelPageContent extends StatelessWidget { @override Widget build(BuildContext context) { return Column( children: [ Expanded( child: StreamMessageListView(), ), StreamMessageInput(), ], ); } } // class HomePage extends StatefulWidget { // const HomePage({Key? key, required this.client}) : super(key: key); // // final StreamChatClient client; // // // @override // State createState() => _HomePageState(); // } // // //left:user,right:admin // class _HomePageState extends State { // // @override // void initState(){ // super.initState(); // createChannel(context); // } // Future createChannel(context) async { // final channel = widget.client.channel('messaging', id: '18436', extraData: { // 'name': 'Helping Channel', // 'members': ['19420', '1324635'], // }); // // try { // await channel.create(); // await channel.watch(); // await Navigator.of(context).pushReplacement( // MaterialPageRoute( // builder: (context) => ChatScreen(), // ), // ); // } catch (e) { // print('Error creating channel: $e'); // ScaffoldMessenger.of(context).showSnackBar( // SnackBar(content: Text('Error creating channel: $e')), // ); // } // } // // @override // Widget build(BuildContext context) { // return Scaffold( // appBar: AppBar(title: Text('Help Support')), // body: Center( // ), // ); // } // }