Browse Source

添加Markdown编辑器

newdev_shunjiawei
tanlongsheng 1 year ago
parent
commit
436caef664
  1. 1
      lib/modules/meeting/views/meeting_details_view.dart
  2. 28
      lib/modules/meeting/views/tabs/summary_tab.dart
  3. 6
      pubspec.yaml

1
lib/modules/meeting/views/meeting_details_view.dart

@ -312,6 +312,7 @@ class MeetingDetailsView extends GetView<MeetingDetailsController> {
child: TabBarView(
controller: controller.tabController,
physics: const NeverScrollableScrollPhysics(),
clipBehavior: Clip.none,
children: [
Obx(
() => controller.isLoading.value

28
lib/modules/meeting/views/tabs/summary_tab.dart

@ -1,8 +1,10 @@
import 'package:common_utils/common_utils.dart';
import 'package:fleather/fleather.dart';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:parchment/codecs.dart';
import '../../../../data/services/db/sqflite_api.dart';
import '../../controllers/meeting_details_controller.dart';
@ -26,6 +28,10 @@ class _SummaryTabState extends State<SummaryTab> {
final TextEditingController _addressController = TextEditingController();
final TextEditingController _personnelController = TextEditingController();
final FocusNode _focusNode = FocusNode();
final GlobalKey<EditorState> _editorKey = GlobalKey();
FleatherController? _fleatherController;
@override
void initState() {
super.initState();
@ -39,6 +45,7 @@ class _SummaryTabState extends State<SummaryTab> {
: '[输入与会人员]');
_addressController.addListener(_handleAddressChanged);
_personnelController.addListener(_handlePersonnelChanged);
_initController();
}
void _handleAddressChanged() {
@ -101,6 +108,12 @@ class _SummaryTabState extends State<SummaryTab> {
}
}
Future<void> _initController() async {
final markdown = const ParchmentMarkdownCodec()
.decode(_controller.meetingDetails.value.summary);
_fleatherController = FleatherController(document: markdown);
}
@override
void dispose() {
_addressController.dispose();
@ -119,6 +132,7 @@ class _SummaryTabState extends State<SummaryTab> {
);
return Stack(
clipBehavior: Clip.none,
children: [
SingleChildScrollView(
padding: EdgeInsets.only(bottom: 80.w),
@ -352,6 +366,20 @@ class _SummaryTabState extends State<SummaryTab> {
),
),
),
Positioned(
bottom: 0,
left: -12.w,
right: -12.w,
child: Container(
height: 40,
color: Colors.white,
alignment: Alignment.center,
child: FleatherToolbar.basic(
controller: _fleatherController!,
editorKey: _editorKey,
),
),
),
],
);
}

6
pubspec.yaml

@ -23,10 +23,8 @@ dependencies:
audio_session: ^0.1.18
flutter_markdown: ^0.7.7+1
markdown: ^7.1.1
appflowy_editor:
git:
url: https://github.com/AppFlowy-IO/appflowy-editor.git
ref: main
fleather: ^1.24.0+1
parchment: ^1.24.0
wifi_iot: ^0.3.19+2
permission_handler: ^10.4.5
web_socket_channel: ^2.4.0

Loading…
Cancel
Save