Files
Motula-Translate-App/motula_translate_app/lib/screens/entryPoint/components/side_menu.dart
2024-03-08 12:15:47 +01:00

63 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:rive/rive.dart';
import '../../../model/menu.dart';
class SideMenu extends StatelessWidget {
const SideMenu(
{super.key,
required this.menu,
required this.press,
required this.riveOnInit,
required this.selectedMenu});
final Menu menu;
final VoidCallback press;
final ValueChanged<Artboard> riveOnInit;
final Menu selectedMenu;
@override
Widget build(BuildContext context) {
return Column(
children: [
const Padding(
padding: EdgeInsets.only(left: 24),
child: Divider(color: Colors.white24, height: 1),
),
Stack(
children: [
AnimatedPositioned(
duration: const Duration(milliseconds: 300),
curve: Curves.fastOutSlowIn,
width: selectedMenu == menu ? 288 : 0,
height: 56,
left: 0,
child: Container(
decoration: const BoxDecoration(
color: Color(0xFF6792FF),
borderRadius: BorderRadius.all(Radius.circular(10)),
),
),
),
ListTile(
onTap: press,
leading: SizedBox(
height: 36,
width: 36,
child: RiveAnimation.asset(
menu.rive.src,
artboard: menu.rive.artboard,
onInit: riveOnInit,
),
),
title: Text(
menu.title,
style: const TextStyle(color: Colors.white),
),
),
],
),
],
);
}
}