mirror of
https://github.com/Iconica-Development/flutter_timeline.git
synced 2025-05-18 18:13:46 +02:00
feat: add a post and category to the postViewOpenPageBuilder
This commit is contained in:
parent
24c779d43b
commit
7fa33cdfb4
5 changed files with 24 additions and 3 deletions
|
@ -6,6 +6,7 @@
|
|||
- Fix the timelinecategory selection by removing the categories with key null
|
||||
- Set an optional max length on the default post title input field
|
||||
- Add a postCreationFloatingActionButtonColor to the timeline theme to set the color of the floating action button
|
||||
- Add a post and a category to the postViewOpenPageBuilder function
|
||||
|
||||
## 3.0.1
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
//
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_timeline/flutter_timeline.dart';
|
||||
import 'package:flutter_timeline/src/go_router.dart';
|
||||
|
@ -136,6 +137,14 @@ List<GoRoute> getTimelineStoryRoutes({
|
|||
pageBuilder: (context, state) {
|
||||
var service = config.serviceBuilder?.call(context) ?? config.service;
|
||||
var post = service.postService.getPost(state.pathParameters['post']!);
|
||||
var category = config.optionsBuilder
|
||||
.call(context)
|
||||
.categoriesOptions
|
||||
.categoriesBuilder
|
||||
?.call(context)
|
||||
.firstWhereOrNull(
|
||||
(element) => element.key == post?.category,
|
||||
);
|
||||
|
||||
var timelinePostWidget = TimelinePostScreen(
|
||||
userId: config.getUserId?.call(context) ?? config.userId,
|
||||
|
@ -155,8 +164,8 @@ List<GoRoute> getTimelineStoryRoutes({
|
|||
return buildScreenWithoutTransition(
|
||||
context: context,
|
||||
state: state,
|
||||
child: config.postViewOpenPageBuilder
|
||||
?.call(context, timelinePostWidget, backButton) ??
|
||||
child: config.postViewOpenPageBuilder?.call(
|
||||
context, timelinePostWidget, backButton, post, category) ??
|
||||
Scaffold(
|
||||
appBar: AppBar(
|
||||
leading: backButton,
|
||||
|
|
|
@ -135,6 +135,13 @@ Widget _postDetailScreenRoute({
|
|||
onUserTap: (user) => config.onUserTap?.call(context, user),
|
||||
);
|
||||
|
||||
var category = config
|
||||
.optionsBuilder(context)
|
||||
.categoriesOptions
|
||||
.categoriesBuilder
|
||||
?.call(context)
|
||||
.firstWhere((element) => element.key == post.category);
|
||||
|
||||
var backButton = IconButton(
|
||||
color: Colors.white,
|
||||
icon: const Icon(Icons.arrow_back_ios),
|
||||
|
@ -142,7 +149,7 @@ Widget _postDetailScreenRoute({
|
|||
);
|
||||
|
||||
return config.postViewOpenPageBuilder
|
||||
?.call(context, timelinePostScreen, backButton) ??
|
||||
?.call(context, timelinePostScreen, backButton, post, category) ??
|
||||
Scaffold(
|
||||
appBar: AppBar(
|
||||
leading: backButton,
|
||||
|
|
|
@ -108,6 +108,8 @@ class TimelineUserStoryConfiguration {
|
|||
BuildContext context,
|
||||
Widget child,
|
||||
IconButton? button,
|
||||
TimelinePost post,
|
||||
TimelineCategory? category,
|
||||
)? postViewOpenPageBuilder;
|
||||
|
||||
/// Open page builder function for the post overview page. This function
|
||||
|
|
|
@ -15,6 +15,8 @@ dependencies:
|
|||
sdk: flutter
|
||||
go_router: any
|
||||
|
||||
collection: any
|
||||
|
||||
flutter_timeline_view:
|
||||
git:
|
||||
url: https://github.com/Iconica-Development/flutter_timeline
|
||||
|
|
Loading…
Reference in a new issue