feat: Extended stories

This commit is contained in:
Krille Fear 2022-02-20 10:24:23 +01:00 • committed by Christian Pauly
commit 78ca38c40a
5 changed files with 357 additions and 160 deletions

View file

@ -1,6 +1,7 @@
import 'dart:async';
import 'dart:io';
import 'package:fluffychat/utils/story_theme_data.dart';
import 'package:flutter/material.dart';
import 'package:adaptive_dialog/adaptive_dialog.dart';
@ -44,6 +45,10 @@ class StoryPageController extends State<StoryPage> {
Timeline? timeline;
Event? get currentEvent => index < events.length ? events[index] : null;
StoryThemeData get storyThemeData =>
StoryThemeData.fromJson(currentEvent?.content
.tryGetMap<String, dynamic>(StoryThemeData.contentKey) ??
{});
bool replyLoading = false;
bool _modalOpened = false;
@ -467,6 +472,14 @@ class StoryPageController extends State<StoryPage> {
case PopupStoryAction.delete:
_delete();
break;
case PopupStoryAction.message:
final roomIdResult = await showFutureLoadingDialog(
context: context,
future: () => currentEvent!.sender.startDirectChat(),
);
if (roomIdResult.error != null) return;
VRouter.of(context).toSegments(['rooms', roomIdResult.result!]);
break;
}
}
@ -493,4 +506,5 @@ extension on List<Event> {
enum PopupStoryAction {
report,
delete,
message,
}