Files
flutter_wisetronic/lib/widgets/desktop/desktop_appbar_menu.dart
2022-03-10 00:47:26 -05:00

150 lines
5.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import '../../constants.dart';
import '../../dialog/logout_dialog.dart';
import '../../generated/l10n.dart';
import '../../models/user.dart';
import '../../routes.dart';
import '../../store/store.dart';
import '../../widgets/general/navigationbar_logo.dart';
import '../../widgets/general/text_link.dart';
class DesktopAppBarMenu extends StatelessWidget {
User _user;
@override
Widget build(BuildContext context) {
_user = store.state.user;
String currentRoute = ModalRoute.of(context).settings.name;
Widget menuBar = Container(
height: 56.0,
padding: EdgeInsets.only(left: 10.0, right: 10.0, top: 5.0, bottom: 5.0),
color: Colors.blue,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
NavigationBarLogo(),
Expanded(
child: Container(
alignment: Alignment.centerRight,
padding: EdgeInsets.only(left: 8.0, right: 16.0),
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(width: 20.0,),
TextLink(
S.of(context).home,
'/',
color: Colors.white60,
hoverColor: Colors.white,
selected: currentRoute == '/',
clearStack: true,
),
SizedBox(width: 15.0,),
TextLink(
S.of(context).download,
'/download',
color: Colors.white60,
hoverColor: Colors.white,
selected: currentRoute == '/download',
),
SizedBox(width: 15.0,),
TextLink(
S.of(context).tutorials,
Constants.TUTORIAL_URL,
color: Colors.white60,
hoverColor: Colors.white,
selected: currentRoute == '/tutorials',
isLink: true,
),
SizedBox(width: 15.0,),
TextLink(
S.of(context).support,
'/my-support/${Constants.BUSINESS_ID}',
color: Colors.white60,
hoverColor: Colors.white,
selected: currentRoute == '/my-support/${Constants.BUSINESS_ID}',
),
SizedBox(width: 15.0,),
TextLink(
S.of(context).shop,
'/shop',
color: Colors.white60,
hoverColor: Colors.white,
selected: currentRoute == '/shop',
),
SizedBox(width: 15.0,),
TextLink(
S.of(context).blog,
'/blog/${Constants.BUSINESS_ID}',
color: Colors.white60,
hoverColor: Colors.white,
selected: currentRoute == '/blog/${Constants.BUSINESS_ID}',
),
SizedBox(width: 15.0,),
_user != null ?
(currentRoute == '/me') ?
MouseRegion(
cursor: SystemMouseCursors.click,
child: GestureDetector(
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: EdgeInsets.only(right: 4.0),
child: Text(
S.of(context).logout,
style: TextStyle(
color: Colors.white,
),
),
),
Icon(
Icons.logout,
color: Colors.white,
size: 16.0,
)
],
),
onTap: () {
showDialog(
context: context,
builder: (BuildContext context) {
return logoutDialog(context);
}
);
},
),
) : IconButton(
icon: Icon(
Icons.account_circle,
color: Colors.white,
),
onPressed: () {
Routes.router.navigateTo(context, '/me');
},
) :
TextLink(
S.of(context).login,
'/login',
color: Colors.white60,
hoverColor: Colors.white,
selected: currentRoute == '/login',
),
],
),
),
),
),
],
),
);
return menuBar;
}
}