step 7 : ui login, transaksi, user sesuai wireframe

This commit is contained in:
sindhu
2024-01-15 12:10:15 +07:00
parent 71085788cd
commit 95df7d4c5b
13 changed files with 1151 additions and 303 deletions

View File

@@ -0,0 +1,67 @@
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import '../app/constant.dart';
import '../app/route.dart';
class CustomDrawer extends HookConsumerWidget {
const CustomDrawer({
super.key,
});
@override
Widget build(BuildContext context, WidgetRef ref) {
return Drawer(
child: ListView(
padding: EdgeInsets.only(
top: Constant.getActualYPhone(context: context, y: 10),
),
children: [
// DrawerHeader(
// decoration: BoxDecoration(
// color: Colors.blue,
// ),
// child: Text(
// 'Drawer Header',
// style: TextStyle(
// color: Colors.white,
// fontSize: 24,
// ),
// ),
// ),
ListTile(
title: Text('Home'),
onTap: () {
// Handle navigation to Home screen
Navigator.pop(context);
Navigator.pushNamed(context, homeRoute);
},
),
ListTile(
title: Text('Transaksi'),
onTap: () {
// Handle navigation to Transaksi screen
Navigator.pop(context);
Navigator.pushNamed(context, transaksiRoute);
},
),
ListTile(
title: Text('User'),
onTap: () {
// Handle navigation to User screen
Navigator.pop(context);
Navigator.pushNamed(context, userRoute);
},
),
ListTile(
title: Text('Logout'),
onTap: () {
// Handle logout logic
Navigator.pop(context);
},
),
],
),
);
}
}

View File

@@ -0,0 +1,50 @@
import 'package:flutter/material.dart';
import 'package:top_snackbar_flutter/custom_snack_bar.dart';
import 'package:top_snackbar_flutter/top_snack_bar.dart';
enum snackbarType { error, info, success, warning }
SanckbarWidget(BuildContext context, String msg, snackbarType tipe) {
switch (tipe) {
case snackbarType.error:
return showTopSnackBar(
Overlay.of(context),
CustomSnackBar.error(
message: msg,
),
);
break;
case snackbarType.success:
return showTopSnackBar(
Overlay.of(context),
CustomSnackBar.success(
message: msg,
),
);
break;
case snackbarType.info:
return showTopSnackBar(
Overlay.of(context),
CustomSnackBar.info(
message: msg,
),
);
break;
case snackbarType.warning:
return showTopSnackBar(
Overlay.of(context),
CustomSnackBar.info(
backgroundColor: Colors.orangeAccent,
message: msg,
),
);
break;
default:
return showTopSnackBar(
Overlay.of(context),
CustomSnackBar.info(
message: msg,
),
);
}
}