142 lines
4.2 KiB
Dart
142 lines
4.2 KiB
Dart
import 'package:didvan/config/theme_data.dart';
|
|
import 'package:didvan/constants/assets.dart';
|
|
import 'package:didvan/models/view/action_sheet_data.dart';
|
|
import 'package:didvan/utils/action_sheet.dart';
|
|
import 'package:didvan/views/widgets/didvan/icon_button.dart';
|
|
import 'package:didvan/views/widgets/didvan/text.dart';
|
|
import 'package:didvan/views/widgets/logos/didvan_vertical_logo.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_svg/svg.dart';
|
|
import 'package:url_launcher/url_launcher_string.dart';
|
|
|
|
class LogoAppBar extends StatelessWidget {
|
|
final String? type;
|
|
const LogoAppBar({Key? key, this.type}) : super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final MediaQueryData d = MediaQuery.of(context);
|
|
return Container(
|
|
margin: EdgeInsets.only(top: d.padding.top),
|
|
padding: const EdgeInsets.all(16),
|
|
alignment: Alignment.centerRight,
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
DidvanHorizontalLogo(type: type),
|
|
DidvanIconButton(
|
|
icon: Icons.menu,
|
|
size: 32,
|
|
onPressed: () => _handleMenuOpen(context),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
|
|
void _handleMenuOpen(BuildContext context) {
|
|
ActionSheetUtils.showBottomSheet(
|
|
data: ActionSheetData(
|
|
content: Column(
|
|
children: [
|
|
Row(
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: [
|
|
SvgPicture.asset(
|
|
Assets.strategicRadarIcon,
|
|
width: 48,
|
|
height: 48,
|
|
),
|
|
const SizedBox(width: 4),
|
|
DidvanText(
|
|
'سامانه رادارهای استراتژیک',
|
|
style: Theme.of(context).textTheme.titleMedium,
|
|
),
|
|
],
|
|
),
|
|
const SizedBox(height: 16),
|
|
_BottomSheetItem(
|
|
icon: Assets.progressRadarIcon,
|
|
title: 'رادار روند',
|
|
enabled: true,
|
|
onTap: () {
|
|
launchUrlString(
|
|
'https://trend.didvan.app/',
|
|
mode: LaunchMode.inAppWebView,
|
|
);
|
|
},
|
|
),
|
|
const SizedBox(height: 16),
|
|
_BottomSheetItem(
|
|
icon: Assets.techRadarIcon,
|
|
title: 'رادار تکنولوژی',
|
|
onTap: () {},
|
|
),
|
|
const SizedBox(height: 16),
|
|
_BottomSheetItem(
|
|
icon: Assets.riskRadarIcon,
|
|
title: 'رادار ریسک',
|
|
enabled: true,
|
|
onTap: () {
|
|
launchUrlString(
|
|
'https://risk.didvan.app/',
|
|
mode: LaunchMode.inAppWebView,
|
|
);
|
|
},
|
|
),
|
|
const SizedBox(height: 16),
|
|
_BottomSheetItem(
|
|
icon: Assets.startupRadarIcon,
|
|
title: 'رادار استارتآپ',
|
|
onTap: () {},
|
|
),
|
|
],
|
|
),
|
|
hasConfirmButton: false,
|
|
hasDismissButton: false,
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
class _BottomSheetItem extends StatelessWidget {
|
|
final String icon;
|
|
final String title;
|
|
final bool enabled;
|
|
final VoidCallback onTap;
|
|
const _BottomSheetItem({
|
|
required this.icon,
|
|
required this.title,
|
|
this.enabled = false,
|
|
required this.onTap,
|
|
});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return GestureDetector(
|
|
onTap: enabled ? onTap : null,
|
|
child: Container(
|
|
color: Colors.transparent,
|
|
child: Row(
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: [
|
|
SvgPicture.asset(
|
|
icon,
|
|
color: enabled
|
|
? Theme.of(context).colorScheme.title
|
|
: Theme.of(context).colorScheme.disabledText,
|
|
),
|
|
const SizedBox(width: 8),
|
|
DidvanText(
|
|
title,
|
|
color: enabled
|
|
? Theme.of(context).colorScheme.title
|
|
: Theme.of(context).colorScheme.disabledText,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|