import 'dart:math'; import 'package:flutter/material.dart'; import 'package:gymlink_module_web/pages/main.dart'; import 'package:gymlink_module_web/providers/main.dart'; import 'package:provider/provider.dart'; void main() { runApp(const MyExampleApp()); } class MyExampleApp extends StatelessWidget { const MyExampleApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'GymLink Example App', debugShowCheckedModeBanner: false, home: const ExampleMainPage(), theme: ThemeData.dark(useMaterial3: true), ); } } class ExamplePage extends StatefulWidget { const ExamplePage({super.key}); @override State createState() => _ExamplePageState(); } Widget getDrawer(BuildContext context) => Drawer( child: Column( children: [ const DrawerHeader(child: Text('Drawer Header')), ListTile( leading: const Icon(Icons.home), title: const Text('Home'), onTap: () => Navigator.of(context).push( MaterialPageRoute( builder: (context) => const ExampleMainPage(), ), ), ), ListTile( leading: const Icon(Icons.search), title: const Text('Example page'), onTap: () => Navigator.of(context).push(MaterialPageRoute( builder: (context) => const ExampleSecondPage(), )), ), ], ), ); class ExampleMainPage extends StatelessWidget { const ExampleMainPage({super.key}); @override Widget build(BuildContext context) { return ChangeNotifierProvider( create: (_) => GymLinkProvider(), child: Consumer( builder: (_, value, __) => const ExamplePage(), )); } } class _ExamplePageState extends State { @override void initState() { super.initState(); Future.microtask( () => context.read().onTokenReceived('token123')); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('GymLink Example App'), ), drawer: getDrawer(context), body: Column( children: [ const Text('test'), IconButton( icon: const Icon(Icons.abc), onPressed: () { context.read().onTokenReceived('token123'); }, ), Expanded( child: MainPage(isLoading: context.watch().isLoading), ), const SizedBox( height: 20, ), const Text('Bottom text') ], ), floatingActionButton: IconButton( icon: const Icon(Icons.search), onPressed: () { context .read() .changeTheme(Random().nextInt(0xffffff + 1)); }, ), ); } } class ExampleSecondPage extends StatelessWidget { const ExampleSecondPage({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('GymLink Example App'), ), drawer: getDrawer(context), body: const Center( child: Text('Example page'), ), ); } }