feat: add a post and category to the postViewOpenPageBuilder

This commit is contained in:
Freek van de Ven 2024-05-21 07:23:49 +02:00
parent 24c779d43b
commit 7fa33cdfb4
5 changed files with 24 additions and 3 deletions

View file

@ -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

View file

@ -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,

View file

@ -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,

View file

@ -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

View file

@ -15,6 +15,8 @@ dependencies:
sdk: flutter
go_router: any
collection: any
flutter_timeline_view:
git:
url: https://github.com/Iconica-Development/flutter_timeline