Skip to content
Snippets Groups Projects
Commit e6db0f8b authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Merge branch '58-use-curved-navigation-bar' into 'master'

Resolve "Use curved navigation bar"

Closes #58

See merge request !59
parents 763b8858 1ce97831
No related branches found
No related tags found
1 merge request!59Resolve "Use curved navigation bar"
Pipeline #6006 failed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=1.0.51 app.versionName=1.0.52
app.versionCode=52 app.versionCode=53
import 'package:curved_navigation_bar/curved_navigation_bar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_swipe/flutter_swipe.dart';
import 'package:random/config/menu.dart'; import 'package:random/config/menu.dart';
import 'package:random/cubit/bottom_nav_cubit.dart'; import 'package:random/cubit/bottom_nav_cubit.dart';
import 'package:random/ui/widgets/app_bar.dart'; import 'package:random/ui/widgets/app_bar.dart';
import 'package:random/ui/widgets/bottom_nav_bar.dart';
class SkeletonScreen extends StatefulWidget { class SkeletonScreen extends StatefulWidget {
const SkeletonScreen({super.key}); const SkeletonScreen({super.key});
...@@ -20,25 +19,22 @@ class _SkeletonScreenState extends State<SkeletonScreen> { ...@@ -20,25 +19,22 @@ class _SkeletonScreenState extends State<SkeletonScreen> {
return Scaffold( return Scaffold(
extendBodyBehindAppBar: false, extendBodyBehindAppBar: false,
appBar: const StandardAppBar(), appBar: const StandardAppBar(),
body: Swiper( body: BlocBuilder<BottomNavCubit, int>(
itemCount: Menu.itemsCount, builder: (context, pageIndex) {
itemBuilder: (BuildContext context, int index) { return Menu.getPageWidget(pageIndex);
return Menu.getPageWidget(index);
}, },
pagination: SwiperPagination( ),
builder: SwiperCustomPagination( backgroundColor: Theme.of(context).colorScheme.background,
builder: (BuildContext context, SwiperPluginConfig config) { bottomNavigationBar: CurvedNavigationBar(
return BottomNavBar(swipeController: config.controller); color: Theme.of(context).colorScheme.onBackground,
}, backgroundColor: Theme.of(context).colorScheme.background,
), animationDuration: const Duration(milliseconds: 200),
), height: 50,
onIndexChanged: (newPageIndex) { items: Menu.items.map((MenuItem item) => item.icon).toList(),
onTap: (newPageIndex) {
BlocProvider.of<BottomNavCubit>(context).updateIndex(newPageIndex); BlocProvider.of<BottomNavCubit>(context).updateIndex(newPageIndex);
}, },
outer: true,
loop: false,
), ),
backgroundColor: Theme.of(context).colorScheme.background,
); );
} }
} }
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_swipe/flutter_swipe.dart';
import 'package:random/config/menu.dart';
import 'package:random/cubit/bottom_nav_cubit.dart';
class BottomNavBar extends StatelessWidget {
const BottomNavBar({super.key, required this.swipeController});
final SwiperController swipeController;
@override
Widget build(BuildContext context) {
return Card(
margin: const EdgeInsets.only(
top: 1,
right: 0,
left: 0,
),
elevation: 4,
shadowColor: Theme.of(context).colorScheme.shadow,
color: Theme.of(context).colorScheme.surfaceVariant,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(16),
topRight: Radius.circular(16),
),
),
child: BlocBuilder<BottomNavCubit, int>(
builder: (BuildContext context, int state) {
return BottomNavigationBar(
currentIndex: state,
onTap: (int index) {
context.read<BottomNavCubit>().updateIndex(index);
swipeController.move(index);
},
type: BottomNavigationBarType.fixed,
elevation: 0,
backgroundColor: Colors.transparent,
selectedItemColor: Theme.of(context).colorScheme.primary,
unselectedItemColor: Theme.of(context).textTheme.bodySmall!.color,
items: Menu.getMenuItems(),
);
},
),
);
}
}
...@@ -21,10 +21,10 @@ packages: ...@@ -21,10 +21,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: bloc name: bloc
sha256: f53a110e3b48dcd78136c10daa5d51512443cea5e1348c9d80a320095fa2db9e sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.1.3" version: "8.1.4"
camera: camera:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -37,18 +37,18 @@ packages: ...@@ -37,18 +37,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: camera_android name: camera_android
sha256: "351429510121d179b9aac5a2e8cb525c3cd6c39f4d709c5f72dfb21726e52371" sha256: ae5b9a996dfb8d77b02031b67f5500873d6402f33bd6a5283e932eef08542a51
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.10.8+16" version: "0.10.9"
camera_avfoundation: camera_avfoundation:
dependency: transitive dependency: transitive
description: description:
name: camera_avfoundation name: camera_avfoundation
sha256: "7d0763dfcbf060f56aa254a68c103210280bee9e97bbe4fdef23e257a4f70ab9" sha256: "5d009ae48de1c8ab621b1c4496dadb6e2a83f3223b76c6e6a4a252414105f561"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.9.14" version: "0.9.15"
camera_platform_interface: camera_platform_interface:
dependency: transitive dependency: transitive
description: description:
...@@ -61,10 +61,10 @@ packages: ...@@ -61,10 +61,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: camera_web name: camera_web
sha256: f18ccfb33b2a7c49a52ad5aa3f07330b7422faaecbdfd9b9fe8e51182f6ad67d sha256: "9e9aba2fbab77ce2472924196ff8ac4dd8f9126c4f9a3096171cd1d870d6b26c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.2+4" version: "0.3.3"
characters: characters:
dependency: transitive dependency: transitive
description: description:
...@@ -93,10 +93,10 @@ packages: ...@@ -93,10 +93,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: cross_file name: cross_file
sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.3+8" version: "0.3.4+1"
crypto: crypto:
dependency: transitive dependency: transitive
description: description:
...@@ -105,22 +105,30 @@ packages: ...@@ -105,22 +105,30 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.3" version: "3.0.3"
curved_navigation_bar:
dependency: "direct main"
description:
name: curved_navigation_bar
sha256: ea6412d00c5d83501bbf1cf9d1ac2ff11a20fbaf910c103c95ace7de82910334
url: "https://pub.dev"
source: hosted
version: "1.0.3"
dio: dio:
dependency: "direct main" dependency: "direct main"
description: description:
name: dio name: dio
sha256: "49af28382aefc53562459104f64d16b9dfd1e8ef68c862d5af436cc8356ce5a8" sha256: "0978e9a3e45305a80a7210dbeaf79d6ee8bee33f70c8e542dc654c952070217f"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.4.1" version: "5.4.2+1"
easy_localization: easy_localization:
dependency: "direct main" dependency: "direct main"
description: description:
name: easy_localization name: easy_localization
sha256: "9c86754b22aaa3e74e471635b25b33729f958dd6fb83df0ad6612948a7b231af" sha256: c145aeb6584aedc7c862ab8c737c3277788f47488bfdf9bae0fe112bd0a4789c
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.4" version: "3.0.5"
easy_logger: easy_logger:
dependency: transitive dependency: transitive
description: description:
...@@ -162,18 +170,18 @@ packages: ...@@ -162,18 +170,18 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_bloc name: flutter_bloc
sha256: "87325da1ac757fcc4813e6b34ed5dd61169973871fdf181d6c2109dd6935ece1" sha256: f0ecf6e6eb955193ca60af2d5ca39565a86b8a142452c5b24d96fb477428f4d2
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.1.4" version: "8.1.5"
flutter_lints: flutter_lints:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: flutter_lints name: flutter_lints
sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7 sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.1" version: "3.0.2"
flutter_localizations: flutter_localizations:
dependency: transitive dependency: transitive
description: flutter description: flutter
...@@ -187,14 +195,6 @@ packages: ...@@ -187,14 +195,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.17" version: "2.0.17"
flutter_swipe:
dependency: "direct main"
description:
name: flutter_swipe
sha256: dc6541bac3a0545ce15a3fa15913f6250532062960bf6b0ad4562d02f14a8545
url: "https://pub.dev"
source: hosted
version: "1.0.1"
flutter_web_plugins: flutter_web_plugins:
dependency: transitive dependency: transitive
description: flutter description: flutter
...@@ -212,10 +212,10 @@ packages: ...@@ -212,10 +212,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: http name: http
sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.0" version: "1.2.1"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
...@@ -228,10 +228,10 @@ packages: ...@@ -228,10 +228,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: hydrated_bloc name: hydrated_bloc
sha256: "00a2099680162e74b5a836b8a7f446e478520a9cae9f6032e028ad8129f4432d" sha256: af35b357739fe41728df10bec03aad422cdc725a1e702e03af9d2a41ea05160c
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "9.1.4" version: "9.1.5"
intl: intl:
dependency: transitive dependency: transitive
description: description:
...@@ -276,10 +276,10 @@ packages: ...@@ -276,10 +276,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: package_info_plus name: package_info_plus
sha256: "88bc797f44a94814f2213db1c9bd5badebafdfb8290ca9f78d4b9ee2a3db4d79" sha256: cb44f49b6e690fa766f023d5b22cac6b9affe741dd792b6ac7ad4fabe0d7b097
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.1" version: "6.0.0"
package_info_plus_platform_interface: package_info_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
...@@ -412,10 +412,10 @@ packages: ...@@ -412,10 +412,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_web name: shared_preferences_web
sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21" sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.2" version: "2.3.0"
shared_preferences_windows: shared_preferences_windows:
dependency: transitive dependency: transitive
description: description:
...@@ -497,18 +497,18 @@ packages: ...@@ -497,18 +497,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: web name: web
sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05" sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.4.2" version: "0.5.1"
win32: win32:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" sha256: "0a989dc7ca2bb51eac91e8fd00851297cfffd641aa7538b165c62637ca0eaa4a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.2.0" version: "5.4.0"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
...@@ -518,5 +518,5 @@ packages: ...@@ -518,5 +518,5 @@ packages:
source: hosted source: hosted
version: "1.0.4" version: "1.0.4"
sdks: sdks:
dart: ">=3.3.0-279.1.beta <4.0.0" dart: ">=3.3.0 <4.0.0"
flutter: ">=3.16.6" flutter: ">=3.19.0"
...@@ -3,7 +3,7 @@ description: A random application, for testing purpose only. ...@@ -3,7 +3,7 @@ description: A random application, for testing purpose only.
publish_to: 'none' publish_to: 'none'
version: 1.0.51+52 version: 1.0.52+53
environment: environment:
sdk: '^3.0.0' sdk: '^3.0.0'
...@@ -13,14 +13,14 @@ dependencies: ...@@ -13,14 +13,14 @@ dependencies:
sdk: flutter sdk: flutter
camera: ^0.10.5+8 camera: ^0.10.5+8
curved_navigation_bar: ^1.0.3
easy_localization: ^3.0.1 easy_localization: ^3.0.1
equatable: ^2.0.5 equatable: ^2.0.5
flutter_bloc: ^8.1.1 flutter_bloc: ^8.1.1
path_provider: ^2.0.11 path_provider: ^2.0.11
hydrated_bloc: ^9.0.0 hydrated_bloc: ^9.0.0
unicons: ^2.1.1 unicons: ^2.1.1
package_info_plus: ^5.0.1 package_info_plus: ^6.0.0
flutter_swipe: ^1.0.1
dio: ^5.3.3 dio: ^5.3.3
hive: ^2.2.3 hive: ^2.2.3
path: ^1.9.0 path: ^1.9.0
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment