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';
|
||||
|
||||
class KretenLoginWidget extends StatefulWidget {
|
||||
const KretenLoginWidget({super.key, required this.onLogin});
|
||||
const KretenLoginWidget({super.key, required this.onLogin, this.onDemoMode});
|
||||
|
||||
// final String selectedSchool;
|
||||
final void Function(String code) onLogin;
|
||||
final VoidCallback? onDemoMode;
|
||||
|
||||
@override
|
||||
State<KretenLoginWidget> createState() => _KretenLoginWidgetState();
|
||||
@@ -259,6 +260,13 @@ class _KretenLoginWidgetState extends State<KretenLoginWidget>
|
||||
icon: const Icon(Icons.refresh),
|
||||
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),
|
||||
TextButton(
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
|
||||
@@ -279,7 +279,7 @@ class LoginScreenState extends State<LoginScreen> {
|
||||
context: context,
|
||||
isScrollControlled:
|
||||
true, // This ensures the modal accommodates input fields properly
|
||||
builder: (BuildContext context) {
|
||||
builder: (BuildContext sheetContext) {
|
||||
return Container(
|
||||
height: MediaQuery.of(context)
|
||||
.size
|
||||
@@ -355,6 +355,15 @@ class LoginScreenState extends State<LoginScreen> {
|
||||
context)
|
||||
.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