Files
Auto-GPT/lib/views/main_layout.dart
2023-08-20 20:15:15 +02:00

68 lines
2.0 KiB
Dart

import 'package:auto_gpt_flutter_client/views/task_view.dart';
import 'package:auto_gpt_flutter_client/views/chat_view.dart';
import 'package:flutter/cupertino.dart';
class MainLayout extends StatelessWidget {
const MainLayout({super.key});
@override
Widget build(BuildContext context) {
// Get the screen width
double width = MediaQuery.of(context).size.width;
// Check the screen width and return the appropriate layout
if (width > 800) {
// For larger screens, return a side-by-side layout
return const Row(
children: [
SizedBox(width: 280, child: TaskView()),
Expanded(child: ChatView()),
],
);
} else {
// For smaller screens, return a tabbed layout
return CupertinoTabScaffold(
tabBar: CupertinoTabBar(
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.person),
label: 'Tasks',
),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.chat_bubble),
label: 'Chat',
),
],
),
tabBuilder: (BuildContext context, int index) {
CupertinoTabView? returnValue;
switch (index) {
case 0:
returnValue = CupertinoTabView(builder: (context) {
return const CupertinoPageScaffold(
child: TaskView(),
);
});
break;
case 1:
returnValue = CupertinoTabView(builder: (context) {
return const CupertinoPageScaffold(
child: ChatView(),
);
});
break;
}
return returnValue ??
CupertinoTabView(builder: (context) {
return CupertinoPageScaffold(
child: Container(), // Default empty container
);
});
},
);
}
}
}