relatica/lib/screens/profile_screen.dart

51 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../controls/padding.dart';
import '../controls/standard_appbar.dart';
import '../services/auth_service.dart';
import '../services/setting_service.dart';
class ProfileScreen extends StatefulWidget {
const ProfileScreen({super.key});
@override
State<ProfileScreen> createState() => _ProfileScreenState();
}
class _ProfileScreenState extends State<ProfileScreen> {
@override
Widget build(BuildContext context) {
final settings = context.watch<SettingsService>();
final authService = context.watch<AuthService>();
return Scaffold(
appBar: StandardAppBar.build(context, 'Profile'),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Checkbox(
value: settings.lowBandwidthMode,
onChanged: (value) =>
settings.lowBandwidthMode = value ?? false,
),
const Text('Low Bandwidth Mode'),
],
),
Text(
'Profile: ${authService.currentClient.fold(onSuccess: (client) => client.credentials.handle, onError: (error) => 'Error Getting Profile')}'),
const VerticalPadding(),
ElevatedButton(
onPressed: () async {
await authService.signOut();
},
child: const Text('Sign Out')),
],
),
),
);
}
}