Add demo mode functionality to KretenLoginWidget and integrate with LoginScreen
This commit is contained in:
@@ -24,10 +24,11 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:webview_flutter/webview_flutter.dart';
|
import 'package:webview_flutter/webview_flutter.dart';
|
||||||
|
|
||||||
class KretenLoginWidget extends StatefulWidget {
|
class KretenLoginWidget extends StatefulWidget {
|
||||||
const KretenLoginWidget({super.key, required this.onLogin});
|
const KretenLoginWidget({super.key, required this.onLogin, this.onDemoMode});
|
||||||
|
|
||||||
// final String selectedSchool;
|
// final String selectedSchool;
|
||||||
final void Function(String code) onLogin;
|
final void Function(String code) onLogin;
|
||||||
|
final VoidCallback? onDemoMode;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<KretenLoginWidget> createState() => _KretenLoginWidgetState();
|
State<KretenLoginWidget> createState() => _KretenLoginWidgetState();
|
||||||
@@ -259,6 +260,13 @@ class _KretenLoginWidgetState extends State<KretenLoginWidget>
|
|||||||
icon: const Icon(Icons.refresh),
|
icon: const Icon(Icons.refresh),
|
||||||
label: const Text('Próbáld újra'),
|
label: const Text('Próbáld újra'),
|
||||||
),
|
),
|
||||||
|
if (widget.onDemoMode != null) ...[
|
||||||
|
const SizedBox(height: 12),
|
||||||
|
OutlinedButton(
|
||||||
|
onPressed: widget.onDemoMode,
|
||||||
|
child: const Text('Kipróbálom fiók nélkül'),
|
||||||
|
),
|
||||||
|
],
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Navigator.of(context).pop(),
|
onPressed: () => Navigator.of(context).pop(),
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ class LoginScreenState extends State<LoginScreen> {
|
|||||||
context: context,
|
context: context,
|
||||||
isScrollControlled:
|
isScrollControlled:
|
||||||
true, // This ensures the modal accommodates input fields properly
|
true, // This ensures the modal accommodates input fields properly
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext sheetContext) {
|
||||||
return Container(
|
return Container(
|
||||||
height: MediaQuery.of(context)
|
height: MediaQuery.of(context)
|
||||||
.size
|
.size
|
||||||
@@ -355,6 +355,15 @@ class LoginScreenState extends State<LoginScreen> {
|
|||||||
context)
|
context)
|
||||||
.pop();
|
.pop();
|
||||||
},
|
},
|
||||||
|
onDemoMode: () {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
final userProvider = Provider.of<UserProvider>(context, listen: false);
|
||||||
|
final demoUser = User.demo();
|
||||||
|
userProvider.addUser(demoUser);
|
||||||
|
userProvider.setUser(demoUser.id);
|
||||||
|
setSystemChrome(context);
|
||||||
|
Navigator.of(context).pushReplacementNamed('login_to_navigation');
|
||||||
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user