nav_bar_page.dart 3.74 KB
import 'package:Parlando/account/page/account_page.dart';
import 'package:Parlando/home/home_page.dart';
import 'package:Parlando/poem/theme/tik_theme.dart';
import 'package:animated_radial_menu/animated_radial_menu.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/Parlando_localizations.dart';
import 'package:provider/provider.dart';

import '../../account/account_router.dart';
import '../../events/trans_event.dart';
import '../../routers/fluro_navigator.dart';
import '../../routers/routers.dart';

class NavBarPage extends StatefulWidget {
  const NavBarPage({Key? key, required this.initialPage}) : super(key: key);

  final String initialPage;

  @override
  NavBarPageState createState() => NavBarPageState();
}

/// This is the private State class that goes with NavBarPage.
class NavBarPageState extends State<NavBarPage> {
  String _currentPage = 'HomePage';

  @override
  void initState() {
    super.initState();
    _currentPage = widget.initialPage;
  }

  @override
  Widget build(BuildContext context) {
    final tabs = {
      'HomePage': const Home(),
      'UploadStatusPage': const AccountPage(),
      'UserProfile': const AccountPage(),
    };
    return Scaffold(
      body: tabs[_currentPage],
      bottomNavigationBar: Consumer(
        builder: (_, provider, __) {
          return BottomAppBar(
            color: Colors.grey,
            child: Row(
                mainAxisSize: MainAxisSize.max,
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: <Widget>[
                  InkWell(
                    onTap: () {
                      NavigatorUtils.push(context, Routes.navBarPage,
                          clearStack: true);
                    },
                    child: Container(
                      alignment: Alignment.center,
                      height: 36.0,
                      child: Text(
                        ParlandoLocalizations.of(context)
                            .onePoemBottomNavigationBarItemTitle,
                        style: const TextStyle(
                          color: Colors.white54,
                          fontSize: 20.0,
                        ),
                      ),
                    ),
                  ),
                  InkWell(
                    onTap: () {
                      eventBus.fire(TransEvent());
                      NavigatorUtils.push(
                        context,
                        AccountRouter.accountPage,
                      );
                    },
                    child: Container(
                      alignment: Alignment.center,
                      height: 36.0,
                      child: Text(
                        ParlandoLocalizations.of(context)
                            .profileBottomNavigationBarItemTitle,
                        style: const TextStyle(
                          color: Colors.white54,
                          fontSize: 20.0,
                        ),
                      ),
                    ),
                  ),
                ]),
          );
        },
      ),
      floatingActionButton: SizedBox(
        height: 60,
        child: RadialMenu(
          children: [
            RadialButton(
                icon: const Icon(Icons.video_call_outlined),
                buttonColor: Colors.teal,
                onPress: () {
                  eventBus.fire(TransEvent());
                }),
            RadialButton(
                icon: const Icon(Icons.mic_none_outlined),
                buttonColor: Colors.green,
                onPress: () {
                  eventBus.fire(TransEvent());
                }),
          ],
        ),
      ),
      floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
    );
  }
}