mirror of
https://github.com/Iconica-Development/flutter_timeline.git
synced 2025-05-19 10:33:44 +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
|
- Fix the timelinecategory selection by removing the categories with key null
|
||||||
- Set an optional max length on the default post title input field
|
- 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 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
|
## 3.0.1
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: BSD-3-Clause
|
// SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
|
import 'package:collection/collection.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_timeline/flutter_timeline.dart';
|
import 'package:flutter_timeline/flutter_timeline.dart';
|
||||||
import 'package:flutter_timeline/src/go_router.dart';
|
import 'package:flutter_timeline/src/go_router.dart';
|
||||||
|
@ -136,6 +137,14 @@ List<GoRoute> getTimelineStoryRoutes({
|
||||||
pageBuilder: (context, state) {
|
pageBuilder: (context, state) {
|
||||||
var service = config.serviceBuilder?.call(context) ?? config.service;
|
var service = config.serviceBuilder?.call(context) ?? config.service;
|
||||||
var post = service.postService.getPost(state.pathParameters['post']!);
|
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(
|
var timelinePostWidget = TimelinePostScreen(
|
||||||
userId: config.getUserId?.call(context) ?? config.userId,
|
userId: config.getUserId?.call(context) ?? config.userId,
|
||||||
|
@ -155,8 +164,8 @@ List<GoRoute> getTimelineStoryRoutes({
|
||||||
return buildScreenWithoutTransition(
|
return buildScreenWithoutTransition(
|
||||||
context: context,
|
context: context,
|
||||||
state: state,
|
state: state,
|
||||||
child: config.postViewOpenPageBuilder
|
child: config.postViewOpenPageBuilder?.call(
|
||||||
?.call(context, timelinePostWidget, backButton) ??
|
context, timelinePostWidget, backButton, post, category) ??
|
||||||
Scaffold(
|
Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
leading: backButton,
|
leading: backButton,
|
||||||
|
|
|
@ -135,6 +135,13 @@ Widget _postDetailScreenRoute({
|
||||||
onUserTap: (user) => config.onUserTap?.call(context, user),
|
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(
|
var backButton = IconButton(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
icon: const Icon(Icons.arrow_back_ios),
|
icon: const Icon(Icons.arrow_back_ios),
|
||||||
|
@ -142,7 +149,7 @@ Widget _postDetailScreenRoute({
|
||||||
);
|
);
|
||||||
|
|
||||||
return config.postViewOpenPageBuilder
|
return config.postViewOpenPageBuilder
|
||||||
?.call(context, timelinePostScreen, backButton) ??
|
?.call(context, timelinePostScreen, backButton, post, category) ??
|
||||||
Scaffold(
|
Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
leading: backButton,
|
leading: backButton,
|
||||||
|
|
|
@ -108,6 +108,8 @@ class TimelineUserStoryConfiguration {
|
||||||
BuildContext context,
|
BuildContext context,
|
||||||
Widget child,
|
Widget child,
|
||||||
IconButton? button,
|
IconButton? button,
|
||||||
|
TimelinePost post,
|
||||||
|
TimelineCategory? category,
|
||||||
)? postViewOpenPageBuilder;
|
)? postViewOpenPageBuilder;
|
||||||
|
|
||||||
/// Open page builder function for the post overview page. This function
|
/// Open page builder function for the post overview page. This function
|
||||||
|
|
|
@ -15,6 +15,8 @@ dependencies:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
go_router: any
|
go_router: any
|
||||||
|
|
||||||
|
collection: any
|
||||||
|
|
||||||
flutter_timeline_view:
|
flutter_timeline_view:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/Iconica-Development/flutter_timeline
|
url: https://github.com/Iconica-Development/flutter_timeline
|
||||||
|
|
Loading…
Reference in a new issue