Files
numstation-flutter/lib/components/nav_bar1_widget.dart
2023-12-27 16:10:09 +08:00

218 lines
7.1 KiB
Dart

import '/flutterlib/flutter_icon_button.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'nav_bar1_model.dart';
export 'nav_bar1_model.dart';
class NavBar1Widget extends StatefulWidget {
const NavBar1Widget({Key? key}) : super(key: key);
@override
_NavBar1WidgetState createState() => _NavBar1WidgetState();
}
class _NavBar1WidgetState extends State<NavBar1Widget> {
late NavBar1Model _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => NavBar1Model());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
context.watch<FFAppState>();
return Container(
width: double.infinity,
height: 90.0,
decoration: BoxDecoration(
color: Color(0x00EEEEEE),
),
child: Stack(
children: [
Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Material(
color: Colors.transparent,
elevation: 0.0,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(0.0),
bottomRight: Radius.circular(0.0),
topLeft: Radius.circular(20.0),
topRight: Radius.circular(20.0),
),
),
child: Container(
width: double.infinity,
height: 80.0,
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
blurRadius: 10.0,
color: Color(0x1A57636C),
offset: Offset(0.0, -10.0),
spreadRadius: 0.1,
)
],
gradient: LinearGradient(
colors: [Color(0xFF7DB979), Color(0xFF26BBAA)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(0.0),
bottomRight: Radius.circular(0.0),
topLeft: Radius.circular(20.0),
topRight: Radius.circular(20.0),
),
),
),
),
],
),
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
setState(() {
FFAppState().memberID = 0;
});
context.pushNamed('dashboard');
},
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/doc.svg',
width: 44.0,
height: 44.0,
fit: BoxFit.none,
),
),
),
InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('user');
setState(() {
FFAppState().deleteAddPermissionsID();
FFAppState().addPermissionsID = [];
});
},
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_3.svg',
width: 44.0,
height: 44.0,
fit: BoxFit.none,
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 3.0),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 3.0),
child: FlutterIconButton(
borderColor: Colors.transparent,
borderRadius: 53.0,
borderWidth: 1.0,
buttonSize: 60.0,
fillColor: Color(0xFFF3CF5D),
icon: Icon(
Icons.home_outlined,
color: Colors.white,
size: 30.0,
),
onPressed: () async {
context.pushNamed('menu');
},
),
),
],
),
),
InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('bk3');
},
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group.svg',
width: 44.0,
height: 44.0,
fit: BoxFit.none,
),
),
),
InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('compsec');
},
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/noun-secretary-3915985.svg',
width: 44.0,
height: 44.0,
fit: BoxFit.none,
),
),
),
],
),
],
),
);
}
}