adding packages

This commit is contained in:
2026-01-15 14:38:46 -08:00
parent ef86e3ab6a
commit 6869cf47e5
5253 changed files with 726695 additions and 34 deletions
@@ -0,0 +1,56 @@
import 'package:dynamic_tabs/dynamic_tabs.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class CupertinoView extends StatelessWidget {
const CupertinoView({
Key? key,
required this.selectedColor,
required this.maxTabs,
required this.backgroundColor,
required this.adaptive,
required this.routes,
required this.moreTabAccentColor,
required this.moreTabPrimaryColor,
required this.breakpoint,
required this.masterDetailOnMoreTab,
}) : super(key: key);
final bool adaptive;
final Color? backgroundColor;
final int maxTabs;
final Color? moreTabAccentColor;
final Color? moreTabPrimaryColor;
final Map<String, WidgetBuilder>? routes;
final Color? selectedColor;
final bool masterDetailOnMoreTab;
final double breakpoint;
@override
Widget build(BuildContext context) {
return Builder(
builder: (context) {
final model = TabProvider.of(context)!.state;
return CupertinoTabScaffold(
tabBuilder: (BuildContext context, int index) {
return ContentView(
routes: routes,
adaptive: adaptive,
breakpoint: breakpoint,
masterDetailOnMoreTab: masterDetailOnMoreTab,
moreTabAccentColor: moreTabAccentColor,
moreTabPrimaryColor: moreTabPrimaryColor,
);
},
tabBar: CupertinoTabBar(
activeColor: selectedColor,
items: model.tabs,
currentIndex: model.adjustedIndex,
onTap: model.changeTab,
backgroundColor: backgroundColor,
),
);
},
);
}
}
@@ -0,0 +1,60 @@
import 'package:dynamic_tabs/dynamic_tabs.dart';
import 'package:flutter/material.dart';
class DesktopView extends StatelessWidget {
const DesktopView({
Key? key,
required this.routes,
required this.adaptive,
required this.moreTabAccentColor,
required this.moreTabPrimaryColor,
required this.breakpoint,
required this.masterDetailOnMoreTab,
}) : super(key: key);
final bool adaptive;
final Color? moreTabAccentColor;
final Color? moreTabPrimaryColor;
final Map? routes;
final bool masterDetailOnMoreTab;
final double breakpoint;
@override
Widget build(BuildContext context) {
return Builder(
builder: (context) {
final model = TabProvider.of(context)!.state;
return Scaffold(
body: ContentView(
routes: routes as Map<String, Widget Function(BuildContext)>?,
adaptive: adaptive,
breakpoint: breakpoint,
masterDetailOnMoreTab: masterDetailOnMoreTab,
moreTabAccentColor: moreTabAccentColor,
moreTabPrimaryColor: moreTabPrimaryColor,
),
drawer: Drawer(
child: SafeArea(
child: SingleChildScrollView(
child: Column(
children: <Widget>[
for (var i = 0; i < model.allTabs.length; i++) ...[
ListTile(
selected: i == model.currentIndex,
leading: model.allTabs[i].tab.icon,
title: Text(model.allTabs[i].tab.label ?? ''),
onTap: () {
model.changeTab(i);
},
),
],
],
),
),
),
),
);
},
);
}
}
@@ -0,0 +1,57 @@
import 'package:dynamic_tabs/dynamic_tabs.dart';
import 'package:flutter/material.dart';
class MaterialView extends StatelessWidget {
const MaterialView({
Key? key,
required this.routes,
required this.adaptive,
required this.moreTabAccentColor,
required this.moreTabPrimaryColor,
required this.selectedColor,
required this.maxTabs,
required this.backgroundColor,
required this.type,
required this.breakpoint,
required this.masterDetailOnMoreTab,
}) : super(key: key);
final bool adaptive;
final Color? backgroundColor;
final int maxTabs;
final Color? moreTabAccentColor;
final Color? moreTabPrimaryColor;
final Map? routes;
final Color? selectedColor;
final BottomNavigationBarType type;
final bool masterDetailOnMoreTab;
final double breakpoint;
@override
Widget build(BuildContext context) {
return Builder(
builder: (context) {
final model = TabProvider.of(context)!.state;
return Scaffold(
body: ContentView(
routes: routes as Map<String, Widget Function(BuildContext)>?,
adaptive: adaptive,
breakpoint: breakpoint,
masterDetailOnMoreTab: masterDetailOnMoreTab,
moreTabAccentColor: moreTabAccentColor,
moreTabPrimaryColor: moreTabPrimaryColor,
),
bottomNavigationBar: BottomNavigationBar(
selectedItemColor: selectedColor,
items: model.tabs,
currentIndex: model.adjustedIndex,
onTap: model.changeTab,
fixedColor: backgroundColor ?? Theme.of(context).primaryColor,
type: type,
// unselectedItemColor: unselectedItemColor ?? Colors.grey,
),
);
},
);
}
}