mirror of https://github.com/CympleTech/ESSE.git
17 changed files with 351 additions and 242 deletions
After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 13 KiB |
@ -0,0 +1,52 @@ |
|||||||
|
import 'package:flutter/material.dart'; |
||||||
|
import 'package:provider/provider.dart'; |
||||||
|
|
||||||
|
import 'package:esse/l10n/localizations.dart'; |
||||||
|
import 'package:esse/provider.dart'; |
||||||
|
|
||||||
|
import 'package:esse/apps/assistant/page.dart'; |
||||||
|
import 'package:esse/apps/file/page.dart'; |
||||||
|
|
||||||
|
enum InnerService { |
||||||
|
Files, |
||||||
|
Assistant, |
||||||
|
} |
||||||
|
|
||||||
|
extension InnerServiceExtension on InnerService { |
||||||
|
List<String> params(AppLocalizations lang) { |
||||||
|
switch (this) { |
||||||
|
case InnerService.Files: |
||||||
|
return [lang.files, lang.filesBio, 'assets/logo/logo_files.png']; |
||||||
|
case InnerService.Assistant: |
||||||
|
return [lang.assistant, lang.assistantBio, 'assets/logo/logo_assistant.png']; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
void callback(context, isDesktop, lang) { |
||||||
|
Widget coreWidget = null; |
||||||
|
String listTitle = null; |
||||||
|
Widget listHome = null; |
||||||
|
|
||||||
|
if (isDesktop) { |
||||||
|
switch (this) { |
||||||
|
case InnerService.Files: |
||||||
|
listTitle = lang.files; |
||||||
|
listHome = FolderList(); |
||||||
|
break; |
||||||
|
case InnerService.Assistant: |
||||||
|
coreWidget = AssistantDetail(); |
||||||
|
break; |
||||||
|
} |
||||||
|
Provider.of<AccountProvider>(context, listen: false).updateActivedApp(coreWidget, listTitle, listHome); |
||||||
|
} else { |
||||||
|
switch (this) { |
||||||
|
case InnerService.Files: |
||||||
|
Provider.of<AccountProvider>(context, listen: false).updateActivedApp(null, lang.files, FolderList()); |
||||||
|
break; |
||||||
|
case InnerService.Assistant: |
||||||
|
Navigator.push(context, MaterialPageRoute(builder: (_) => AssistantPage())); |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,57 @@ |
|||||||
|
import 'package:flutter/material.dart'; |
||||||
|
import 'package:provider/provider.dart'; |
||||||
|
|
||||||
|
import 'package:esse/l10n/localizations.dart'; |
||||||
|
import 'package:esse/utils/adaptive.dart'; |
||||||
|
import 'package:esse/widgets/list_system_app.dart'; |
||||||
|
import 'package:esse/options.dart'; |
||||||
|
import 'package:esse/provider.dart'; |
||||||
|
|
||||||
|
import 'package:esse/apps/service/list.dart'; |
||||||
|
import 'package:esse/apps/service/models.dart'; |
||||||
|
import 'package:esse/apps/chat/provider.dart'; |
||||||
|
import 'package:esse/apps/chat/list.dart'; |
||||||
|
|
||||||
|
class DefaultHomeShow extends StatelessWidget { |
||||||
|
const DefaultHomeShow({Key key}): super(key: key); |
||||||
|
|
||||||
|
@override |
||||||
|
Widget build(BuildContext context) { |
||||||
|
final isDesktop = isDisplayDesktop(context); |
||||||
|
final lang = AppLocalizations.of(context); |
||||||
|
final chatProvider = context.watch<ChatProvider>(); |
||||||
|
final chatTops = chatProvider.topKeys; |
||||||
|
final friends = chatProvider.friends; |
||||||
|
|
||||||
|
return Column(children: [ |
||||||
|
ListSystemApp(name: lang.chats, icon: Icons.people_rounded, |
||||||
|
callback: () => Provider.of<AccountProvider>(context, listen: false).updateActivedApp( |
||||||
|
null, lang.chats, ChatList())), |
||||||
|
ListSystemApp(name: lang.groups, icon: Icons.grid_view_rounded, |
||||||
|
callback: () => Provider.of<AccountProvider>(context, listen: false).updateActivedApp( |
||||||
|
null, lang.chats, ServiceList())), |
||||||
|
const SizedBox(height: 5.0), |
||||||
|
const Divider(height: 1.0, color: Color(0x40ADB0BB)), |
||||||
|
const SizedBox(height: 5.0), |
||||||
|
Column( |
||||||
|
children: INNER_SERVICES.map((v) { |
||||||
|
final params = v.params(lang); |
||||||
|
return ListInnerService( |
||||||
|
name: params[0], |
||||||
|
bio: params[1], |
||||||
|
logo: params[2], |
||||||
|
callback: () => v.callback(context, isDesktop, lang), |
||||||
|
isDesktop: isDesktop, |
||||||
|
); |
||||||
|
}).toList() |
||||||
|
), |
||||||
|
Expanded( |
||||||
|
child: ListView.builder( |
||||||
|
itemCount: chatTops.length, |
||||||
|
itemBuilder: (BuildContext ctx, int index) => ListChat( |
||||||
|
friend: friends[chatTops.keys.elementAt(index)]), |
||||||
|
), |
||||||
|
) |
||||||
|
]); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue