senior_design_system 0.19.1 senior_design_system: ^0.19.1 copied to clipboard
Flutter package with Senior Design System widgets.
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:senior_design_system/senior_design_system.dart';
import 'pages/action_button.example.dart';
import 'pages/animation.example.dart';
import 'pages/badge.example.dart';
import 'pages/balance.example.dart';
import 'pages/bottom_sheet.example.dart';
import 'pages/button.example.dart';
import 'pages/card.example.dart';
import 'pages/checkbox.example.dart';
import 'pages/colorful_header_structure.example.dart';
import 'pages/contact_book_item.dart';
import 'pages/draggable_list.example.dart';
import 'pages/dropdown_button.example.dart';
import 'pages/expansion_panel.example.dart';
import 'pages/evaluation.exemple.dart';
import 'pages/gradient_icon.example.dart';
import 'pages/image_crop.example.dart';
import 'pages/info_card.example.dart';
import 'pages/loading.example.dart';
import 'pages/menu_list_item_example.dart';
import 'pages/message_card.example.dart';
import 'pages/modal.example.dart';
import 'pages/navigation.example.dart';
import 'pages/notification_list.example.dart';
import 'pages/notification_snackbar_example.dart';
import 'pages/profile_picture_example.dart';
import 'pages/quotes_example.dart';
import 'pages/radio_button.example.dart';
import 'pages/rating.example.dart';
import 'pages/snackbar.example.dart';
import 'pages/square_buttons_menu.example.dart';
import 'pages/state_page.example.dart';
import 'pages/switch.example.dart';
import 'pages/text_field.example.dart';
import 'pages/timeline.example.dart';
import 'package:provider/provider.dart';
import 'package:senior_design_system/senior_themes.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
SeniorTheme appTheme = seniorDarkTheme.copyWith(
);
return MultiProvider(
providers: [
Provider<SeniorTheme>.value(value: appTheme),
],
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Senior Design System Showcase',
theme: appTheme.themeData, // Adicionando o tema do Flutter para o app
home: HomePage(),
),
);
}
}
class HomePage extends StatelessWidget {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
final PageController _pageController = PageController();
final Map<String, Widget> _pages = {
'Timeline': TimelineExample(),
'Action Button': ActionButtonExample(),
'Animation': AnimationExample(),
'App Bar/Tab Bar/Bottom Bar': NavigationExample(),
'Badge': BadgeExemple(),
'Balance': BalanceExample(),
'Bottom Sheet': BottomSheetExample(),
'Button': ButtonExample(),
'Card': CardExample(),
'Checkbox': CheckboxExample(),
'Contact Book Item': ContactBookItemExample(),
'Draggable List': DraggableListExample(),
'Dropdown Button': DropdownButtonExample(),
'Expansion Panel': ExpansionPanelExample(),
'Evaluation': EvaluationExemple(),
'Gradient Icon': SeniorGradientIconExample(),
'Image Cropper': ImageCropperExample(),
'Info Card': InfoCardExample(),
'Loading': LoadingExample(),
'Menu List Item': MenuListItemExample(),
'Message Card': MessageCardExample(),
'Modal': ModalExample(),
'Notification List': NotificationListExample(),
'Notification Snackbar': NotificationSnackbarExample(),
'Profile Picture': ProfilePictureExample(),
'Quotes': QuotesExample(),
'Radio Button': RadioButtonExample(),
'Rating': RatingExample(),
'Screen Appbar': ColorfulHeaderStructureExample(),
'Snack bar': SnackbarExample(),
'Square Buttons Menu': SquareButtonsMenuExample(),
'State Page': StatePageExample(),
'Switch': SwitchExample(),
'Text Field': TextFieldExample(),
};
HomePage({
Key? key,
}) : super(key: key);
ListView _getListViewMenu() {
return ListView(
children: _pages.keys
.toList()
.asMap()
.map((pos, title) => MapEntry(
title,
ListTile(
title: Text(title),
onTap: () => _jumpToPage(page: pos),
)))
.values
.toList(),
);
}
void _jumpToPage({required int page}) {
_pageController.jumpToPage(page);
}
void _showSnackbar(BuildContext context) {
ScaffoldMessenger.of(context).showSnackBar(
SeniorSnackBar.message(
message: 'Não tem nenhuma ação vinculada a este ícone',
),
);
}
@override
Widget build(BuildContext context) {
int _pageIdx = 0;
return Scaffold(
key: _scaffoldKey,
appBar: SeniorAppBarPage(
title: _pages.keys.toList()[_pageIdx],
leading: SeniorAppBarAction(
icon: FontAwesomeIcons.bars,
onPressed: () => _scaffoldKey.currentState!.openDrawer(),
),
actions: [
SeniorAppBarAction(
// icon: FontAwesomeIcons.solidSun,
icon: FontAwesomeIcons.solidMoon,
onPressed: () => _showSnackbar(context),
),
],
),
drawer: Drawer(child: _getListViewMenu()),
body: PageView.builder(
controller: _pageController,
itemBuilder: (context, position) => _pages.values.toList()[position],
itemCount: _pages.length,
),
);
}
}