Widget
wrapped(- {required int pageIndex,
- required int pageLength,
- required ValueChanged<int> animateToPage,
- required int storyLength,
- required int initialStoryIndex,
- required bool isCurrentPage,
- required bool isPaging,
- required VoidCallback? onPageLimitReached,
- required StoryItemBuilder itemBuilder,
- StoryItemBuilder? gestureItemBuilder,
- required Duration indicatorDuration,
- required EdgeInsetsGeometry indicatorPadding,
- required ValueNotifier<IndicatorAnimationCommand>? indicatorAnimationController,
- required dynamic onStoryPaused(
)?,
- required dynamic onStoryUnpaused(
)?,
- required dynamic onStoryIndexChanged(
- int newStoryIndex
)?}
)
Implementation
static Widget wrapped({
required int pageIndex,
required int pageLength,
required ValueChanged<int> animateToPage,
required int storyLength,
required int initialStoryIndex,
required bool isCurrentPage,
required bool isPaging,
required VoidCallback? onPageLimitReached,
required StoryItemBuilder itemBuilder,
StoryItemBuilder? gestureItemBuilder,
required Duration indicatorDuration,
required EdgeInsetsGeometry indicatorPadding,
required ValueNotifier<IndicatorAnimationCommand>?
indicatorAnimationController,
required Function()? onStoryPaused,
required Function()? onStoryUnpaused,
required Function(int newStoryIndex)? onStoryIndexChanged,
}) {
return MultiProvider(
providers: [
ChangeNotifierProvider(
create: (context) => StoryLimitController(),
),
ChangeNotifierProvider(
create: (context) => StoryStackController(
onStoryIndexChanged: onStoryIndexChanged,
storyLength: storyLength,
onPageBack: () {
if (pageIndex != 0) {
animateToPage(pageIndex - 1);
}
},
onPageForward: () {
if (pageIndex == pageLength - 1) {
context
.read<StoryLimitController>()
.onPageLimitReached(onPageLimitReached);
} else {
animateToPage(pageIndex + 1);
}
},
initialStoryIndex: initialStoryIndex,
),
),
],
child: StoryPageFrame._(
storyLength: storyLength,
initialStoryIndex: initialStoryIndex,
pageIndex: pageIndex,
isCurrentPage: isCurrentPage,
isPaging: isPaging,
itemBuilder: itemBuilder,
gestureItemBuilder: gestureItemBuilder,
indicatorDuration: indicatorDuration,
indicatorPadding: indicatorPadding,
indicatorAnimationController: indicatorAnimationController,
onStoryPaused: onStoryPaused,
onStoryUnpaused: onStoryUnpaused,
),
);
}