Skip to content

Commit

Permalink
chore: Follow up preserve state in 3 column mode
Browse files Browse the repository at this point in the history
  • Loading branch information
krille-chan committed Aug 11, 2023
1 parent 9c3e13c commit 8826815
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 54 deletions.
59 changes: 28 additions & 31 deletions lib/config/routes.dart
Original file line number Diff line number Diff line change
Expand Up @@ -210,48 +210,45 @@ class AppRoutes {
),
],
),
GoRoute(
path: ':roomid',
pageBuilder: (context, state) => defaultPageBuilder(
ShellRoute(
pageBuilder: (context, state, child) => defaultPageBuilder(
context,
ChatPage(
roomId: state.pathParameters['roomid']!,
SideViewLayout(
mainView: ChatPage(
roomId: state.pathParameters['roomid']!,
),
sideView:
state.fullPath == '/rooms/:roomid' ? null : child,
),
),
redirect: (context, state) => !isLoggedIn ? '/home' : null,
routes: [
GoRoute(
path: 'encryption',
pageBuilder: (context, state) => defaultPageBuilder(
context,
const ChatEncryptionSettings(),
),
redirect: (context, state) =>
!isLoggedIn ? '/home' : null,
),
GoRoute(
path: 'invite',
path: ':roomid',
pageBuilder: (context, state) => defaultPageBuilder(
context,
const InvitationSelection(),
const EmptyPage(),
),
redirect: (context, state) =>
!isLoggedIn ? '/home' : null,
),
ShellRoute(
pageBuilder: (context, state, child) =>
defaultPageBuilder(
context,
!FluffyThemes.isThreeColumnMode(context)
? child
: SideViewLayout(
mainView: ChatPage(
roomId: state.pathParameters['roomid']!,
),
sideView: child,
),
),
routes: [
GoRoute(
path: 'encryption',
pageBuilder: (context, state) => defaultPageBuilder(
context,
const ChatEncryptionSettings(),
),
redirect: (context, state) =>
!isLoggedIn ? '/home' : null,
),
GoRoute(
path: 'invite',
pageBuilder: (context, state) => defaultPageBuilder(
context,
const InvitationSelection(),
),
redirect: (context, state) =>
!isLoggedIn ? '/home' : null,
),
GoRoute(
path: 'details',
pageBuilder: (context, state) => defaultPageBuilder(
Expand Down
63 changes: 40 additions & 23 deletions lib/widgets/layouts/side_view_layout.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,45 @@ class SideViewLayout extends StatelessWidget {
final sideView = this.sideView;
final hideSideView =
!FluffyThemes.isThreeColumnMode(context) || sideView == null;
return sideView == null
? mainView
: hideSideView
? sideView
: Row(
children: [
Expanded(
child: ClipRRect(child: mainView),
),
Container(
width: 1.0,
color: Theme.of(context).dividerColor,
),
AnimatedContainer(
duration: FluffyThemes.animationDuration,
curve: FluffyThemes.animationCurve,
clipBehavior: Clip.antiAlias,
decoration: const BoxDecoration(),
width: hideSideView ? 0 : 360.0,
child: hideSideView ? null : sideView,
),
],
);
const sideViewWidth = 360.0;
return Stack(
children: [
AnimatedPositioned(
duration: FluffyThemes.animationDuration,
curve: FluffyThemes.animationCurve,
top: 0,
left: 0,
bottom: 0,
right: hideSideView ? 0 : sideViewWidth,
child: ClipRRect(child: mainView),
),
AnimatedPositioned(
duration: FluffyThemes.animationDuration,
curve: FluffyThemes.animationCurve,
bottom: 0,
top: 0,
right: 0,
left: !FluffyThemes.isThreeColumnMode(context) && sideView != null
? 0
: null,
width: sideView == null
? 0
: !FluffyThemes.isThreeColumnMode(context)
? null
: sideViewWidth,
child: Container(
clipBehavior: Clip.hardEdge,
decoration: BoxDecoration(
border: Border(
left: BorderSide(
color: Theme.of(context).dividerColor,
),
),
),
child: sideView,
),
),
],
);
}
}

0 comments on commit 8826815

Please sign in to comment.