From fa759ba28e896df7ccb93896d73788a83500fd9f Mon Sep 17 00:00:00 2001 From: Niels Date: Tue, 30 Jan 2024 11:25:54 +0100 Subject: [PATCH] fix --- packages/widgetbook/lib/main.dart | 21 -- .../widgetbook/lib/main.directories.g.dart | 11 +- .../widgetbook/lib/mock_timeline_service.dart | 233 ------------------ 3 files changed, 1 insertion(+), 264 deletions(-) delete mode 100644 packages/widgetbook/lib/mock_timeline_service.dart diff --git a/packages/widgetbook/lib/main.dart b/packages/widgetbook/lib/main.dart index 9c268fc..4cf8799 100644 --- a/packages/widgetbook/lib/main.dart +++ b/packages/widgetbook/lib/main.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_timeline/flutter_timeline.dart'; import 'package:intl/date_symbol_data_local.dart'; import 'package:timeline_widgetbook/main.directories.g.dart'; -import 'package:timeline_widgetbook/mock_timeline_service.dart'; import 'package:widgetbook/widgetbook.dart'; import 'package:widgetbook_annotation/widgetbook_annotation.dart' as widgetbook; @@ -55,24 +54,6 @@ class WidgetBookApp extends StatelessWidget { } } -@widgetbook.UseCase( - designLink: - 'https://www.figma.com/file/PRJoVXQ5aOjAICfkQdAq2A/Iconica-User-Stories?type=design&node-id=34-2763&mode=design&t=W72P3tkEascAKDCk-4', - name: 'Timeline post screen', - type: TimelinePostScreen, -) -Widget postScreenUseCase(BuildContext context) { - var service = TestTimelineService()..fetchPosts(null); - var options = const TimelineOptions(); - return TimelinePostScreen( - userId: '1', - service: service, - options: options, - post: service.posts.first, - onPostDelete: () {}, - ); -} - @widgetbook.UseCase( designLink: 'https://www.figma.com/file/PRJoVXQ5aOjAICfkQdAq2A/Iconica-User-Stories?type=design&node-id=34-2763&mode=design&t=W72P3tkEascAKDCk-4', @@ -80,12 +61,10 @@ Widget postScreenUseCase(BuildContext context) { type: TimelineScreen, ) Widget timelineUseCase(BuildContext context) { - var service = TestTimelineService()..fetchPosts(null); var options = const TimelineOptions(); return TimelineScreen( userId: '1', options: options, onPostTap: (_) {}, - service: service, ); } diff --git a/packages/widgetbook/lib/main.directories.g.dart b/packages/widgetbook/lib/main.directories.g.dart index be2b322..e8e3bee 100644 --- a/packages/widgetbook/lib/main.directories.g.dart +++ b/packages/widgetbook/lib/main.directories.g.dart @@ -16,15 +16,6 @@ final directories = <_i1.WidgetbookNode>[ _i1.WidgetbookFolder( name: 'screens', children: [ - _i1.WidgetbookLeafComponent( - name: 'TimelinePostScreen', - useCase: _i1.WidgetbookUseCase( - name: 'Timeline post screen', - builder: _i2.postScreenUseCase, - designLink: - 'https://www.figma.com/file/PRJoVXQ5aOjAICfkQdAq2A/Iconica-User-Stories?type=design&node-id=34-2763&mode=design&t=W72P3tkEascAKDCk-4', - ), - ), _i1.WidgetbookLeafComponent( name: 'TimelineScreen', useCase: _i1.WidgetbookUseCase( @@ -33,7 +24,7 @@ final directories = <_i1.WidgetbookNode>[ designLink: 'https://www.figma.com/file/PRJoVXQ5aOjAICfkQdAq2A/Iconica-User-Stories?type=design&node-id=34-2763&mode=design&t=W72P3tkEascAKDCk-4', ), - ), + ) ], ) ]; diff --git a/packages/widgetbook/lib/mock_timeline_service.dart b/packages/widgetbook/lib/mock_timeline_service.dart deleted file mode 100644 index 0c49b3d..0000000 --- a/packages/widgetbook/lib/mock_timeline_service.dart +++ /dev/null @@ -1,233 +0,0 @@ -import 'dart:typed_data'; - -import 'package:flutter/material.dart'; -import 'package:flutter_timeline/flutter_timeline.dart'; -import 'package:uuid/uuid.dart'; - -class TestTimelineService - with ChangeNotifier - implements TimelineService, TimelineUserService { - List _posts = []; - - List get posts => _posts; - - @override - Future createPost(TimelinePost post) async { - _posts.add( - post.copyWith( - creator: const TimelinePosterUserModel(userId: 'test_user'), - ), - ); - notifyListeners(); - return post; - } - - @override - Future deletePost(TimelinePost post) async { - _posts = _posts.where((element) => element.id != post.id).toList(); - - notifyListeners(); - } - - @override - Future deletePostReaction( - TimelinePost post, - String reactionId, - ) async { - if (post.reactions != null && post.reactions!.isNotEmpty) { - var reaction = - post.reactions!.firstWhere((element) => element.id == reactionId); - var updatedPost = post.copyWith( - reaction: post.reaction - 1, - reactions: (post.reactions ?? [])..remove(reaction), - ); - _posts = _posts - .map( - (p) => p.id == post.id ? updatedPost : p, - ) - .toList(); - - notifyListeners(); - return updatedPost; - } - return post; - } - - @override - Future fetchPostDetails(TimelinePost post) async { - var reactions = post.reactions ?? []; - var updatedReactions = []; - for (var reaction in reactions) { - updatedReactions.add(reaction.copyWith( - creator: const TimelinePosterUserModel(userId: 'test_user'))); - } - var updatedPost = post.copyWith(reactions: updatedReactions); - _posts = _posts.map((p) => (p.id == post.id) ? updatedPost : p).toList(); - notifyListeners(); - return updatedPost; - } - - @override - Future> fetchPosts(String? category) async { - var posts = getMockedPosts(); - _posts = posts; - notifyListeners(); - return posts; - } - - @override - Future> fetchPostsPaginated( - String? category, - int limit, - ) async { - notifyListeners(); - return _posts; - } - - @override - Future fetchPost(TimelinePost post) async { - notifyListeners(); - return post; - } - - @override - Future> refreshPosts(String? category) async { - var posts = []; - - _posts = [...posts, ..._posts]; - notifyListeners(); - return posts; - } - - @override - TimelinePost? getPost(String postId) => - (_posts.any((element) => element.id == postId)) - ? _posts.firstWhere((element) => element.id == postId) - : null; - - @override - List getPosts(String? category) => _posts - .where((element) => category == null || element.category == category) - .toList(); - - @override - Future likePost(String userId, TimelinePost post) async { - var updatedPost = post.copyWith( - likes: post.likes + 1, - likedBy: (post.likedBy ?? [])..add(userId), - ); - _posts = _posts - .map( - (p) => p.id == post.id ? updatedPost : p, - ) - .toList(); - - notifyListeners(); - return updatedPost; - } - - @override - Future unlikePost(String userId, TimelinePost post) async { - var updatedPost = post.copyWith( - likes: post.likes - 1, - likedBy: post.likedBy?..remove(userId), - ); - _posts = _posts - .map( - (p) => p.id == post.id ? updatedPost : p, - ) - .toList(); - - notifyListeners(); - return updatedPost; - } - - @override - Future reactToPost( - TimelinePost post, - TimelinePostReaction reaction, { - Uint8List? image, - }) async { - var reactionId = const Uuid().v4(); - var updatedReaction = reaction.copyWith( - id: reactionId, - creator: const TimelinePosterUserModel(userId: 'test_user')); - - var updatedPost = post.copyWith( - reaction: post.reaction + 1, - reactions: post.reactions?..add(updatedReaction), - ); - - _posts = _posts - .map( - (p) => p.id == post.id ? updatedPost : p, - ) - .toList(); - notifyListeners(); - return updatedPost; - } - - List getMockedPosts() { - return [ - for (var i = 0; i < 20; i++) ...[ - if (i == 0) ...[ - TimelinePost( - id: 'Post$i', - creatorId: 'test_user', - title: 'Post $i', - category: 'text', - content: "Post $i content", - likes: i, - reaction: 0, - reactions: getMockedReactions('Post$i'), - createdAt: DateTime.now().subtract(Duration(days: i % 10)), - reactionEnabled: true, - imageUrl: 'https://picsum.photos/seed/$i/200/300', - ) - ] else ...[ - TimelinePost( - id: 'Post$i', - creatorId: 'test_user', - title: 'Post $i', - category: 'text', - content: "Post $i content", - likes: i, - reaction: 0, - createdAt: DateTime.now().subtract(Duration(days: i % 10)), - reactionEnabled: false, - imageUrl: 'https://picsum.photos/seed/$i/200/300', - ) - ], - ] - ]; - } - - List getMockedReactions(String posdId) { - return [ - for (var i = 0; i < 20; i++) ...[ - TimelinePostReaction( - id: 'Reaction$i', - postId: posdId, - reaction: 'Reaction $i', - createdAt: DateTime.now().subtract(Duration(days: i % 10)), - creatorId: 'test_user', - imageUrl: - (i % 2 == 0) ? 'https://picsum.photos/seed/$i/200/300' : null, - ) - ] - ]; - } - - @override - Future getUser(String userId) async { - return TimelinePosterUserModel( - userId: userId, - ); - } - - @override - set posts(List posts) { - _posts = posts; - notifyListeners(); - } -}