Compare commits
2 Commits
75bfc7ea6b
...
78e468cc29
| Author | SHA1 | Date | |
|---|---|---|---|
| 78e468cc29 | |||
| 6c4c2c4acd |
76
lib/mobile_example.dart
Normal file
76
lib/mobile_example.dart
Normal file
@@ -0,0 +1,76 @@
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gymlink_module_web/main_mobile.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: ChangeNotifierProvider(
|
||||
create: (_) => GymLinkProvider(),
|
||||
child: Consumer<GymLinkProvider>(
|
||||
builder: (context, provider, __) => const ExamplePage(),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class ExamplePage extends StatefulWidget {
|
||||
const ExamplePage({super.key});
|
||||
|
||||
@override
|
||||
State<ExamplePage> createState() => _ExamplePageState();
|
||||
}
|
||||
|
||||
class _ExamplePageState extends State<ExamplePage> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
context.read<GymLinkProvider>().onTokenReceived('token123');
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Consumer<GymLinkProvider>(
|
||||
builder: (context, provider, __) => Scaffold(
|
||||
appBar: AppBar(title: const Text('GymLink Example App')),
|
||||
body: Column(
|
||||
children: [
|
||||
const Text('test'),
|
||||
IconButton(
|
||||
icon: const Icon(Icons.abc),
|
||||
onPressed: () {
|
||||
provider.onTokenReceived('token123');
|
||||
},
|
||||
),
|
||||
const Expanded(
|
||||
child: MyApp(),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text('Bottom text')
|
||||
],
|
||||
),
|
||||
floatingActionButton: IconButton(
|
||||
icon: const Icon(Icons.search),
|
||||
onPressed: () {
|
||||
provider.changeTheme(Random().nextInt(0xffffff + 1));
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
23
lib/providers/main.dart
Normal file
23
lib/providers/main.dart
Normal file
@@ -0,0 +1,23 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gymlink_module_web/theme.dart';
|
||||
|
||||
class GymLinkProvider with ChangeNotifier {
|
||||
bool _isLoading = true;
|
||||
bool get isLoading => _isLoading;
|
||||
bool _blackTheme = false;
|
||||
bool get blackTheme => _blackTheme;
|
||||
ThemeData _theme = myTheme;
|
||||
ThemeData get theme => _theme;
|
||||
void onTokenReceived(String token) {
|
||||
if (token == 'token123') {
|
||||
_isLoading = false;
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
void changeTheme(int color) {
|
||||
_blackTheme = !_blackTheme;
|
||||
_theme = getThemeData(Color(color), _blackTheme);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
@@ -1,35 +1,19 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gymlink_module_web/main_mobile.dart';
|
||||
import 'package:gymlink_module_web/pages/main.dart';
|
||||
import 'package:gymlink_module_web/theme.dart';
|
||||
import 'package:gymlink_module_web/providers/main.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class MyAppStateMobile extends State<MyApp> {
|
||||
bool _isLoading = false;
|
||||
ThemeData theme = myTheme;
|
||||
bool black_theme = false;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp(
|
||||
title: 'GymLink Module',
|
||||
theme: theme,
|
||||
debugShowCheckedModeBanner: false,
|
||||
home: MainPage(isLoading: _isLoading),
|
||||
return Consumer<GymLinkProvider>(
|
||||
builder: (context, provider, __) => MaterialApp(
|
||||
title: 'GymLink Module',
|
||||
theme: provider.theme,
|
||||
debugShowCheckedModeBanner: false,
|
||||
home: MainPage(isLoading: provider.isLoading),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void onTokenReceived(String token) {
|
||||
if (token == 'token123') {
|
||||
setState(() {
|
||||
_isLoading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void changeColor(int color) {
|
||||
setState(() {
|
||||
black_theme = !black_theme; //FIXME: TEMPORARY
|
||||
theme = getThemeData(Color(color), black_theme);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ dependencies:
|
||||
flutter_markdown: ^0.7.1
|
||||
http: ^1.2.1
|
||||
universal_html: ^2.2.4
|
||||
provider: ^6.1.2
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
Reference in New Issue
Block a user