Skip to content

Commit

Permalink
TW-492: Implement when system back after forward msg
Browse files Browse the repository at this point in the history
  • Loading branch information
nqhhdev committed Aug 26, 2023
1 parent f64278b commit f1907b9
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 6 deletions.
12 changes: 10 additions & 2 deletions lib/config/go_routes/go_router.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import 'package:fluffychat/pages/chat_draft/draft_chat.dart';
import 'package:fluffychat/pages/chat_encryption_settings/chat_encryption_settings.dart';
import 'package:fluffychat/pages/homeserver_picker/homeserver_picker.dart';
import 'package:fluffychat/pages/story/story_page.dart';
import 'package:fluffychat/presentation/model/forward/forward_argument.dart';
import 'package:fluffychat/utils/responsive/responsive_utils.dart';
import 'package:fluffychat/widgets/layouts/adaptive_layout/adaptive_scaffold.dart';
import 'package:fluffychat/widgets/layouts/adaptive_layout/adaptive_scaffold_route.dart';
Expand Down Expand Up @@ -217,11 +218,18 @@ abstract class AppRoutes {
),
GoRoute(
path: 'forward',
redirect: (context, state) {
if (state.extra is! ForwardArgument) {
return '${state.fullPath?.replaceAll('forward', '')}';
} else {
return '/rooms/forward';
}
},
pageBuilder: (context, state) {
final extra = state.extra as String?;
final extra = state.extra as ForwardArgument;
return defaultPageBuilder(
context,
Forward(sendFromRoomId: extra ?? ''),
Forward(sendFromRoomId: extra.fromRoomId),
);
},
),
Expand Down
13 changes: 12 additions & 1 deletion lib/pages/chat/chat.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import 'package:fluffychat/pages/chat/recording_dialog.dart';
import 'package:fluffychat/presentation/mixins/common_media_picker_mixin.dart';
import 'package:fluffychat/presentation/mixins/media_picker_mixin.dart';
import 'package:fluffychat/presentation/mixins/send_files_mixin.dart';
import 'package:fluffychat/presentation/model/forward/forward_argument.dart';
import 'package:fluffychat/utils/adaptive_bottom_sheet.dart';
import 'package:fluffychat/utils/matrix_sdk_extensions/ios_badge_client_extension.dart';
import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart';
Expand Down Expand Up @@ -824,7 +825,12 @@ class ChatController extends State<Chat>
);
}
setState(() => selectedEvents.clear());
context.go('/rooms/forward', extra: roomId);
context.go(
'/rooms/forward',
extra: ForwardArgument(
fromRoomId: roomId ?? '',
),
);
}

void sendAgainAction() {
Expand Down Expand Up @@ -1287,3 +1293,8 @@ class ChatController extends State<Chat>
}

enum EmojiPickerType { reaction, keyboard }

class FowardAgr {
final String id;
FowardAgr(this.id);
}
2 changes: 1 addition & 1 deletion lib/pages/forward/forward.dart
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class ForwardController extends State<Forward> {

Timeline? timeline;

String? get roomId => GoRouterState.of(context).pathParameters['roomid'];
String? get roomId => widget.sendFromRoomId;

final AutoScrollController forwardListController = AutoScrollController();

Expand Down
6 changes: 4 additions & 2 deletions lib/widgets/fluffy_chat_app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@ class FluffyChatApp extends StatefulWidget {

// Router must be outside of build method so that hot reload does not reset
// the current path.
static final GoRouter router =
GoRouter(routes: AppRoutes.routes, debugLogDiagnostics: true);
static final GoRouter router = GoRouter(
routes: AppRoutes.routes,
debugLogDiagnostics: true,
);

@override
FluffyChatAppState createState() => FluffyChatAppState();
Expand Down

0 comments on commit f1907b9

Please sign in to comment.