Skip to content
Snippets Groups Projects

Resolve "Use ActivityParameters widgets from flutter_custom_toolbox"

21 files
+ 218
870
Compare changes
  • Side-by-side
  • Inline

Files

+ 29
10
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:hangman/common/ui/pages/game.dart';
import 'package:hangman/cubit/activity/activity_cubit.dart';
import 'package:hangman/common/ui/pages/parameters.dart';
import 'package:hangman/config/application_config.dart';
 
import 'package:hangman/models/activity/activity.dart';
 
import 'package:hangman/ui/pages/game.dart';
class ActivityPageItem {
class ActivityPageItem {
final String code;
final String code;
final Icon icon;
final Icon icon;
final Widget page;
final Widget Function({required Activity currentActivity})? builder;
const ActivityPageItem({
const ActivityPageItem({
required this.code,
required this.code,
required this.icon,
required this.icon,
required this.page,
required this.builder,
});
});
}
}
@@ -20,20 +22,27 @@ class ActivityPage {
@@ -20,20 +22,27 @@ class ActivityPage {
static const bool displayBottomNavBar = false;
static const bool displayBottomNavBar = false;
static const indexHome = 0;
static const indexHome = 0;
static const pageHome = ActivityPageItem(
static final ActivityPageItem pageHome = ActivityPageItem(
code: 'page_home',
code: 'page_home',
icon: Icon(UniconsLine.home),
icon: Icon(UniconsLine.home),
page: PageParameters(),
builder: ({required Activity currentActivity}) {
 
return PageParameters(
 
config: ApplicationConfig.config,
 
canBeResumed: currentActivity.canBeResumed,
 
);
 
},
);
);
static const indexGame = 1;
static const indexGame = 1;
static const pageGame = ActivityPageItem(
static final pageGame = ActivityPageItem(
code: 'page_game',
code: 'page_game',
icon: Icon(UniconsLine.star),
icon: Icon(UniconsLine.star),
page: PageGame(),
builder: ({required Activity currentActivity}) {
 
return PageGame();
 
},
);
);
static const Map<int, ActivityPageItem> items = {
static final Map<int, ActivityPageItem> items = {
indexHome: pageHome,
indexHome: pageHome,
indexGame: pageGame,
indexGame: pageGame,
};
};
@@ -45,6 +54,16 @@ class ActivityPage {
@@ -45,6 +54,16 @@ class ActivityPage {
}
}
static Widget getWidget(int pageIndex) {
static Widget getWidget(int pageIndex) {
return items[pageIndex]?.page ?? pageHome.page;
return BlocBuilder<ActivityCubit, ActivityState>(
 
builder: (BuildContext context, ActivityState activityState) {
 
final Activity currentActivity = activityState.currentActivity;
 
 
if (items.keys.contains(pageIndex)) {
 
return items[pageIndex]?.builder!(currentActivity: currentActivity) ?? Text('oups');
 
} else {
 
return getWidget(defaultPageIndex);
 
}
 
},
 
);
}
}
}
}
Loading