// Haveno App extends the features of Haveno, supporting mobile devices and more. // Copyright (C) 2024 Kewbit (https://kewbit.org) // Source Code: https://git.haveno.com/haveno/haveno-app.git // // Author: Kewbit // Website: https://kewbit.org // Contact Email: me@kewbit.org // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . import 'package:flutter/material.dart'; import 'package:haveno_app/views/tabs/buy_tab.dart'; import 'package:haveno_app/views/tabs/market_statistics.dart'; import 'package:haveno_app/views/tabs/sell_tab.dart'; import 'package:haveno_app/views/tabs/trades_tab.dart'; import 'package:haveno_app/views/widgets/balance.dart'; import 'package:haveno_app/views/widgets/main_drawer.dart'; class HomeScreen extends StatefulWidget { final int initialIndex; const HomeScreen({super.key, this.initialIndex = 0}); @override _HomeScreenState createState() => _HomeScreenState(); } class _HomeScreenState extends State { late int _selectedIndex; static final List _widgetOptions = [ MarketStatistics(), BuyTab(), SellTab(), TradesTab(), ]; @override void initState() { super.initState(); _selectedIndex = widget.initialIndex; } void _onItemTapped(int index) { setState(() { _selectedIndex = index; }); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Theme.of(context).scaffoldBackgroundColor, appBar: AppBar( leading: Builder( builder: (context) => IconButton( icon: Icon(Icons.menu), onPressed: () { Scaffold.of(context).openDrawer(); }, ), ), title: Row( mainAxisAlignment: MainAxisAlignment.end, // Aligns the widget to the right children: [ MoneroBalanceWidget(), ], ), ), drawer: MainDrawer(), body: Center( child: _widgetOptions.elementAt(_selectedIndex), ), bottomNavigationBar: NavigationBar( selectedIndex: _selectedIndex, onDestinationSelected: _onItemTapped, destinations: const [ NavigationDestination( icon: Icon(Icons.query_stats), label: 'Market Stats', ), NavigationDestination( icon: Icon(Icons.shopping_cart), label: 'Buy', ), NavigationDestination( icon: Icon(Icons.sell), label: 'Sell', ), NavigationDestination( icon: Icon(Icons.swap_vert), label: 'Trades', ), ], ), ); } }