Files
superport/lib/screens/sidebar/widgets/sidebar_menu_item.dart
2025-07-02 17:45:44 +09:00

76 lines
2.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:superport/screens/common/theme_tailwind.dart';
// 단일 메뉴 아이템 위젯
class SidebarMenuItem extends StatelessWidget {
final IconData icon;
final String title;
final String route;
final bool isActive;
final bool isHovered;
final bool isSubItem;
final VoidCallback onTap;
const SidebarMenuItem({
super.key,
required this.icon,
required this.title,
required this.route,
required this.isActive,
required this.isHovered,
this.isSubItem = false,
required this.onTap,
});
@override
Widget build(BuildContext context) {
return MouseRegion(
cursor: SystemMouseCursors.click,
child: InkWell(
borderRadius: BorderRadius.circular(10),
onTap: onTap,
child: Container(
height: 44,
alignment: Alignment.centerLeft,
margin: const EdgeInsets.symmetric(
vertical: 2,
horizontal: 6,
), // 외부 여백
padding: EdgeInsets.only(left: isSubItem ? 48 : 24, right: 24),
decoration: BoxDecoration(
color:
isActive
? Colors.white
: (isHovered
? const Color(0xFFE9EDF2)
: Colors.transparent),
borderRadius: BorderRadius.circular(10),
),
child: Row(
children: [
Icon(
icon,
size: 18,
color:
isActive ? AppThemeTailwind.primary : AppThemeTailwind.dark,
),
const SizedBox(width: 10),
Text(
title,
style: TextStyle(
color:
isActive
? AppThemeTailwind.primary
: AppThemeTailwind.dark,
fontWeight: isActive ? FontWeight.bold : FontWeight.normal,
fontSize: 14,
),
),
],
),
),
),
);
}
}