senior_design_system 0.19.1 copy "senior_design_system: ^0.19.1" to clipboard
senior_design_system: ^0.19.1 copied to clipboard

outdated

Flutter package with Senior Design System widgets.

example/lib/main.dart

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,
      ),
    );
  }
}