Migrate from BitBucket

This commit is contained in:
2024-10-28 18:52:54 +00:00
commit 7a3db5d671
46 changed files with 6052 additions and 0 deletions
@@ -0,0 +1,132 @@
import 'package:flutter/material.dart';
import 'package:school_management_system/api/auth_requests.dart';
import 'package:school_management_system/components/default_values.dart';
import 'package:school_management_system/screens/main/main_screen.dart';
class LoginForm extends StatefulWidget {
const LoginForm({
super.key,
});
@override
State<LoginForm> createState() => _LoginFormState();
}
class _LoginFormState extends State<LoginForm> {
var usernameController = TextEditingController();
var passwordController = TextEditingController();
var checked = false;
var obscureText = true;
//var authService = AuthoriseService();
@override
Widget build(BuildContext context) {
return Column(
// mainAxisAlignment: MainAxisAlignment.start,
children: [
TextField(
controller: usernameController,
keyboardType: TextInputType.emailAddress,
textInputAction: TextInputAction.next,
cursorColor: primaryColor,
onSubmitted: (username) {
setState(() {
usernameController.text = username;
});
},
decoration: const InputDecoration(
hintText: "Username",
prefixIcon: Padding(
padding: EdgeInsets.all(defaultPadding),
child: Icon(Icons.person),
),
),
),
const SizedBox(height: 10),
TextField(
controller: passwordController,
keyboardType: TextInputType.visiblePassword,
textInputAction: TextInputAction.done,
obscureText: obscureText,
onSubmitted: (paswword) {
setState(() {
passwordController.text = paswword;
});
},
cursorColor: primaryColor,
decoration: InputDecoration(
hintText: "Password",
prefixIcon: const Padding(
padding: EdgeInsets.all(defaultPadding),
child: Icon(Icons.lock),
),
suffixIcon: IconButton(
icon: Icon(
obscureText ? Icons.visibility : Icons.visibility_off),
onPressed: () {
setState(
() {
obscureText = !obscureText;
},
);
},
)),
),
const SizedBox(),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Checkbox(
value: checked,
onChanged: (value) {
setState(() {
checked = value!;
});
}),
const Text('Save Password'),
],
),
const SizedBox(height: defaultPadding),
ElevatedButton(
onPressed: () {
login(usernameController.value.text, passwordController.value.text)
.then((status) {
if (status.startsWith('Successful')) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return const MainScaffold();
},
),
);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(status),
),
);
} else {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(status),
),
);
}
});
},
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
"sign in".toUpperCase(),
),
const SizedBox(width: 10),
const Icon(Icons.login)
],
),
),
],
);
}
}
@@ -0,0 +1,38 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:school_management_system/components/default_values.dart';
class LoginScreenTopImage extends StatelessWidget {
const LoginScreenTopImage({
super.key,
});
@override
Widget build(BuildContext context) {
return Column(
// mainAxisAlignment: MainAxisAlignment.start,
children: [
// const Text(
// "LOGIN",
// style: TextStyle(fontWeight: FontWeight.bold),
// ),
const SizedBox(height: defaultPadding * 2),
Row(
children: [
const Spacer(),
Expanded(
flex: 8,
child: SvgPicture.asset(
'assets/icons/school.svg',
width: 320,
height: 320,
),
),
const Spacer(),
],
),
const SizedBox(height: defaultPadding * 2),
],
);
}
}