import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_chat_ui/flutter_chat_ui.dart'; import 'package:flutter_chat_types/flutter_chat_types.dart' as types; import 'package:stadtbote/content_views/utils/content_view_widget.dart'; import 'package:stadtbote/content_views/utils/header_info.dart'; import 'package:stadtbote/popups/infos_popup.dart'; import '../main.dart'; import '../model/job.dart'; import '../tools/util.dart'; class MessagesPage extends ContentViewWidget { const MessagesPage({super.key}); @override State createState() => _MessagesPageState(); @override Future getHeaderInfo(BuildContext context) async { return HeaderInfo( titleWidget: Container( padding: const EdgeInsets.symmetric(horizontal: 5, vertical: 3), child: const Column(children: [ Text( 'Zeile 1', style: TextStyle( color: Colors.white, fontSize: 18.0, ), ), SizedBox(height: 5), Text( 'Zeile 2', style: TextStyle( color: Colors.white, fontSize: 18.0, ), ), ]), ), rightButtonEnabled: true, rightButtonVisible: true, rightButtonImage: Util.fetchFutureIcon(const Icon(Icons.info_outline, size: 20.0, color: Colors.white)), rightButtonOnPressed: () async { showInfosPopup(context); }); } } class _MessagesPageState extends State { late final List _messages = []; final _user = const types.User( id: '82091008-a484-4a89-ae75-a22bf8d6f3ac', ); @override Widget build(BuildContext context) { return Stack( children: [ Chat( messages: _messages, onAttachmentPressed: _handleAttachmentPressed, onMessageTap: _handleMessageTap, //onPreviewDataFetched: _handlePreviewDataFetched, onSendPressed: _handleSendPressed, showUserAvatars: true, showUserNames: true, user: _user, ), ], ); } void _test() async { var json = await rootBundle.loadString('assets/job.json'); var jsonMap = jsonDecode(json); var payload = jsonMap["payload"]; var jobsPayload = JobsPayload.fromJson(payload); if (jobsPayload.jobs != null) { MyApp.isarInstance.writeTxnSync(() { for (var job in jobsPayload.jobs as List) { MyApp.isarInstance.jobs.putSync(job); } }); } } void _handleAttachmentPressed() { } void _handleMessageTap(BuildContext context, types.Message p1) { } void _handlePreviewDataFetched(TextMessage p1, types.PreviewData p2) { } void _handleSendPressed(types.PartialText p1) { } }