depor_os/lib/models/nav_item.dart

24 lines
596 B
Dart
Raw Normal View History

2026-03-18 11:47:06 +00:00
import 'package:flutter/material.dart';
class NavItem {
final String label;
final IconData icon;
final String? route;
final List<NavItem> children;
const NavItem({
required this.label,
required this.icon,
this.route,
this.children = const [],
});
bool get hasChildren => children.isNotEmpty;
/// Devuelve true si la ruta actual coincide con este item o algún hijo.
bool isActiveOrAncestor(String currentRoute) {
if (route != null && currentRoute.startsWith(route!)) return true;
return children.any((c) => c.isActiveOrAncestor(currentRoute));
}
}