This commit is contained in:
Sas Andy
2024-08-16 10:27:05 +07:00
parent 2128e4b1e6
commit 2a356ebdef
135 changed files with 5627 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:westone_kurirapp/app/constant.dart';
import 'package:westone_kurirapp/screen/login_screen/login_box.dart';
class LoginScreen extends HookConsumerWidget {
const LoginScreen({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
return Scaffold(
resizeToAvoidBottomInset: true,
body: ListView(
children: [
SizedBox(
height: MediaQuery.of(context).size.height * 0.5,
child: DecoratedBox(
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage(
"lib/images/login.png",
),
scale: 10,
fit: BoxFit.fill)),
child: Container(
padding: EdgeInsets.only(
top: Constant.getActualY(context: context, y: 21),
left: Constant.getActualX(context: context, x: 22),
),
alignment: Alignment.topLeft,
child: Image(
image: const AssetImage('lib/images/logo.png'),
width: Constant.getActualX(context: context, x: 132),
))),
),
Container(
height: MediaQuery.of(context).size.height * 0.5,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Constant.primaryLighten, Colors.white],
begin: Alignment.center,
end: Alignment.topCenter)),
child: const LoginBox(),
)
],
),
);
}
}

View File

@@ -0,0 +1,85 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:westone_kurirapp/app/constant.dart';
import 'package:loading_animation_widget/loading_animation_widget.dart';
import 'package:westone_kurirapp/widget/custom_button.dart';
class LoginBox extends HookConsumerWidget {
const LoginBox({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
final loading = useState(false);
final obsecure = useState(true);
final usernameController = useTextEditingController(text: "");
final passwordController = useTextEditingController(text: "");
return Container(
padding: EdgeInsets.fromLTRB(
Constant.getActualX(context: context, x: 36),
Constant.getActualY(context: context, y: 50),
Constant.getActualX(context: context, x: 36),
Constant.getActualY(context: context, y: 10)),
child: ListView(
children: [
Text(
"Selamat Datang!",
style: Constant.h2(context: context)
.copyWith(fontWeight: FontWeight.bold),
textAlign: TextAlign.center,
),
Text(
"Silahkan login untuk mulai bertugas",
style: Constant.subtitle2(context: context)
.copyWith(fontWeight: FontWeight.w400),
textAlign: TextAlign.center,
),
SizedBox(
height: Constant.getActualY(context: context, y: 44),
),
TextField(
controller: usernameController,
decoration: InputDecoration(
label: Text(
"Username",
style: Constant.subtitle2(context: context),
),
filled: true,
fillColor: Colors.white,
border: InputBorder.none),
),
SizedBox(
height: Constant.getActualY(context: context, y: 20),
),
TextField(
controller: passwordController,
obscureText: obsecure.value,
decoration: InputDecoration(
label: Text("Password",
style: Constant.subtitle2(context: context)),
filled: true,
fillColor: Colors.white,
border: InputBorder.none),
),
SizedBox(
height: Constant.getActualY(context: context, y: 30),
),
CustomButton(
text: "LOGIN",
type: ButtonType.primary,
onPressed: () {
// print("aldksld");
loading.value = true;
Timer(Duration(seconds: 3), () {
loading.value = false;
});
},
loading: loading.value,
)
],
),
);
}
}