2
0
mirror of https://gitlab.com/famedly/fluffychat.git synced 2024-12-25 06:52:35 +01:00
fluffychat/lib/widgets/layouts/side_view_layout.dart
2022-01-31 16:33:42 +01:00

44 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:vrouter/vrouter.dart';
import 'package:fluffychat/config/themes.dart';
class SideViewLayout extends StatelessWidget {
final Widget mainView;
final Widget? sideView;
const SideViewLayout({Key? key, required this.mainView, this.sideView})
: super(key: key);
@override
Widget build(BuildContext context) {
var currentUrl = Uri.decodeFull(VRouter.of(context).url);
if (!currentUrl.endsWith('/')) currentUrl += '/';
final hideSideView = currentUrl.split('/').length == 4;
final sideView = this.sideView;
return sideView == null
? mainView
: MediaQuery.of(context).size.width < FluffyThemes.columnWidth * 3.5 &&
!hideSideView
? sideView
: Row(
children: [
Expanded(
child: ClipRRect(child: mainView),
),
Container(
width: 1.0,
color: Theme.of(context).dividerColor,
),
AnimatedContainer(
duration: const Duration(milliseconds: 300),
clipBehavior: Clip.antiAlias,
decoration: const BoxDecoration(),
width: hideSideView ? 0 : 360.0,
child: hideSideView ? null : sideView,
),
],
);
}
}