refactor: renamed EditorToolBar
This commit is contained in:
parent
d5b8305fa3
commit
5e20c582e6
@ -1,5 +1,5 @@
|
|||||||
library rich_editor;
|
library rich_editor;
|
||||||
|
|
||||||
export 'src/rendering/rich_editor.dart';
|
export 'src/rendering/rich_editor.dart';
|
||||||
export 'src/widgets/tabs.dart';
|
export 'src/widgets/editor_tool_bar.dart';
|
||||||
export 'src/widgets/tab_button.dart';
|
export 'src/widgets/tab_button.dart';
|
15
lib/src/models/editor_state.dart
Normal file
15
lib/src/models/editor_state.dart
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import 'package:rich_editor/src/models/enum.dart';
|
||||||
|
|
||||||
|
import 'command_state.dart';
|
||||||
|
|
||||||
|
class EditorState {
|
||||||
|
bool didHtmlChange;
|
||||||
|
String html;
|
||||||
|
Map<CommandName, CommandState> commandStates;
|
||||||
|
|
||||||
|
EditorState({
|
||||||
|
this.didHtmlChange = false,
|
||||||
|
this.html = '',
|
||||||
|
this.commandStates = const <CommandName, CommandState>{},
|
||||||
|
});
|
||||||
|
}
|
@ -6,7 +6,7 @@ import 'package:flutter/gestures.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:rich_editor/src/services/local_server.dart';
|
import 'package:rich_editor/src/services/local_server.dart';
|
||||||
import 'package:rich_editor/src/utils/javascript_executor_base.dart';
|
import 'package:rich_editor/src/utils/javascript_executor_base.dart';
|
||||||
import 'package:rich_editor/src/widgets/tabs.dart';
|
import 'package:rich_editor/src/widgets/editor_tool_bar.dart';
|
||||||
import 'package:webview_flutter/webview_flutter.dart';
|
import 'package:webview_flutter/webview_flutter.dart';
|
||||||
|
|
||||||
class RichEditor extends StatefulWidget {
|
class RichEditor extends StatefulWidget {
|
||||||
@ -76,9 +76,10 @@ class RichEditorState extends State<RichEditor> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
GroupedTab(
|
EditorToolBar(
|
||||||
controller: _controller,
|
controller: _controller,
|
||||||
getImageUrl: widget.getImageUrl,
|
getImageUrl: widget.getImageUrl,
|
||||||
|
javascriptExecutorBase: javascriptExecutorBase,
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: WebView(
|
child: WebView(
|
||||||
@ -111,9 +112,6 @@ class RichEditorState extends State<RichEditor> {
|
|||||||
print("error ${e.description}");
|
print("error ${e.description}");
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
// child: InAppWebView(
|
|
||||||
// initialFile: 'packages/rich_editor/assets/editor/index.html',
|
|
||||||
// ),
|
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
@ -3,7 +3,7 @@ import 'package:rich_editor/src/extensions/extensions.dart';
|
|||||||
import 'package:rich_editor/src/models/enum.dart';
|
import 'package:rich_editor/src/models/enum.dart';
|
||||||
import 'package:webview_flutter/webview_flutter.dart';
|
import 'package:webview_flutter/webview_flutter.dart';
|
||||||
|
|
||||||
import 'command_state.dart';
|
import '../models/command_state.dart';
|
||||||
|
|
||||||
class JavascriptExecutorBase {
|
class JavascriptExecutorBase {
|
||||||
WebViewController? _controller;
|
WebViewController? _controller;
|
||||||
|
@ -13,24 +13,28 @@ import 'color_picker_dialog.dart';
|
|||||||
import 'font_size_dialog.dart';
|
import 'font_size_dialog.dart';
|
||||||
import 'heading_dialog.dart';
|
import 'heading_dialog.dart';
|
||||||
|
|
||||||
class GroupedTab extends StatelessWidget {
|
class EditorToolBar extends StatelessWidget {
|
||||||
final WebViewController? controller;
|
final WebViewController? controller;
|
||||||
final Function(File image)? getImageUrl;
|
final Function(File image)? getImageUrl;
|
||||||
final Function(File video)? getVideoUrl;
|
final Function(File video)? getVideoUrl;
|
||||||
|
final JavascriptExecutorBase javascriptExecutorBase;
|
||||||
|
|
||||||
GroupedTab({this.controller, this.getImageUrl, this.getVideoUrl});
|
EditorToolBar({
|
||||||
|
this.controller,
|
||||||
JavascriptExecutorBase javascriptExecutorBase = JavascriptExecutorBase();
|
this.getImageUrl,
|
||||||
|
this.getVideoUrl,
|
||||||
|
required this.javascriptExecutorBase,
|
||||||
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
if (controller != null) {
|
// if (controller != null) {
|
||||||
javascriptExecutorBase.init(controller!);
|
// javascriptExecutorBase.init(controller!);
|
||||||
}
|
// }
|
||||||
|
|
||||||
return Container(
|
return Container(
|
||||||
// color: Color(0xff424242),
|
// color: Color(0xff424242),
|
||||||
height: 59.0,
|
height: 54.0,
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Flexible(
|
Flexible(
|
||||||
@ -309,6 +313,7 @@ class GroupedTab extends StatelessWidget {
|
|||||||
await javascriptExecutorBase.insertCheckbox(text);
|
await javascriptExecutorBase.insertCheckbox(text);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
||||||
/// TODO: Implement Search feature
|
/// TODO: Implement Search feature
|
||||||
// TabButton(
|
// TabButton(
|
||||||
// tooltip: 'Search',
|
// tooltip: 'Search',
|
@ -14,8 +14,8 @@ class TabButton extends StatelessWidget {
|
|||||||
child: Tooltip(
|
child: Tooltip(
|
||||||
message: '$tooltip',
|
message: '$tooltip',
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 45.0,
|
height: 40.0,
|
||||||
width: 45.0,
|
width: 40.0,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
// color: Color(0xff212121),
|
// color: Color(0xff212121),
|
||||||
borderRadius: BorderRadius.all(
|
borderRadius: BorderRadius.all(
|
||||||
|
Loading…
Reference in New Issue
Block a user