fooder-app/lib/login_screen.dart

71 lines
1.8 KiB
Dart
Raw Normal View History

2023-07-29 18:10:10 +02:00
import 'package:flutter/material.dart';
import 'package:fooder_web/based.dart';
class LoginScreen extends BasedScreen {
const LoginScreen({super.key, required super.apiClient});
2023-07-29 18:10:10 +02:00
@override
State<LoginScreen> createState() => _LoginScreen();
}
class _LoginScreen extends State<LoginScreen> {
final usernameController = TextEditingController();
final passwordController = TextEditingController();
@override
void dispose() {
usernameController.dispose();
passwordController.dispose();
super.dispose();
}
// login client when button pressed
void _login() async {
widget.apiClient.login(
usernameController.text,
passwordController.text,
);
Navigator.pop(context);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: const Text("ANALUJ"),
2023-07-29 18:10:10 +02:00
),
body: Center(
child: Container(
constraints: const BoxConstraints(maxWidth: 600),
padding: const EdgeInsets.all(10),
2023-07-29 18:10:10 +02:00
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextFormField(
decoration: const InputDecoration(
labelText: 'Username',
),
controller: usernameController,
),
TextFormField(
obscureText: true,
decoration: const InputDecoration(
labelText: 'Password',
),
controller: passwordController,
),
FilledButton(
onPressed: _login,
child: const Text('Login'),
2023-07-29 18:10:10 +02:00
)
],
),
),
),
);
}
}