feat: Extended stories
This commit is contained in:
parent
616655350b
commit
78ca38c40a
5 changed files with 357 additions and 160 deletions
|
|
@ -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,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue