chat_flutter_sdk 0.0.2
chat_flutter_sdk: ^0.0.2 copied to clipboard
Official Yalo Flutter chat SDK
// Copyright (c) Yalochat, Inc. All rights
import 'package:chat_flutter_sdk/yalo_sdk.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:logging/logging.dart';
void main() {
Logger.root.level = Level.ALL;
Logger.root.onRecord.listen((record) {
debugPrint(
'${record.level.name}: ${record.time}: ${record.message} ${record.error ?? ''}',
);
});
WidgetsFlutterBinding.ensureInitialized();
runApp(MyRoutedApp());
}
final class MyRoutedApp extends StatelessWidget {
final router = GoRouter(
routes: [
GoRoute(
path: '/',
builder: (_, _) => MyApp(),
routes: <RouteBase>[
GoRoute(
path: 'chat',
builder: (context, _) {
final themeData = Theme.of(context);
return Chat(
client: YaloChatClient(
name: "Chat test",
// Your flow key
flowKey: "64d61ff9-e714-4db5-a15d-50502816b3d9",
// Your user token to authorize
userToken: 'test-user-123',
authToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJZYWxvQXBpS2V5IiwieWlkIjoiMzAwIiwieXQiOiJjb25zdW1lciJ9.08_-_l3w6BDCSSZ6OFOU46KTUXxSAHM1WR_yGMedbWo',
),
theme: ChatTheme.fromThemeData(
themeData,
ChatTheme(
chatIconImage: const AssetImage(
'assets/images/oris-icon.png',
),
),
),
onShopPressed: () {},
onCartPressed: () {},
);
},
),
],
),
],
);
MyRoutedApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp.router(routerConfig: router);
}
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
}
void _handleChatClick(BuildContext context) {
context.go("/chat");
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(child: Text("Sample application for chat")),
floatingActionButton: FloatingActionButton(
onPressed: () => _handleChatClick(context),
child: const Icon(Icons.message),
),
),
);
}
}