Super editor
This commit is contained in:
parent
add5e2431e
commit
0dfef542f8
|
|
@ -148,6 +148,8 @@ class _InvoiceEmailViewState extends State<InvoiceEmailView>
|
||||||
_subjectPreview = subject.trim();
|
_subjectPreview = subject.trim();
|
||||||
_bodyPreview = body.trim();
|
_bodyPreview = body.trim();
|
||||||
_emailPreview = email.trim();
|
_emailPreview = email.trim();
|
||||||
|
|
||||||
|
if (_rawBodyPreview.isEmpty) {
|
||||||
_rawBodyPreview = rawBody.trim();
|
_rawBodyPreview = rawBody.trim();
|
||||||
|
|
||||||
final company = widget.viewModel.state.company;
|
final company = widget.viewModel.state.company;
|
||||||
|
|
@ -155,6 +157,7 @@ class _InvoiceEmailViewState extends State<InvoiceEmailView>
|
||||||
_rawBodyPreview.startsWith('<p>')) {
|
_rawBodyPreview.startsWith('<p>')) {
|
||||||
_rawBodyPreview = html2md.convert(_rawBodyPreview);
|
_rawBodyPreview = html2md.convert(_rawBodyPreview);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (origSubject.isEmpty && origBody.isEmpty) {
|
if (origSubject.isEmpty && origBody.isEmpty) {
|
||||||
_subjectController.text = rawSubject.trim();
|
_subjectController.text = rawSubject.trim();
|
||||||
|
|
@ -197,6 +200,7 @@ class _InvoiceEmailViewState extends State<InvoiceEmailView>
|
||||||
setState(() {
|
setState(() {
|
||||||
_subjectController.text = '';
|
_subjectController.text = '';
|
||||||
_bodyController.text = '';
|
_bodyController.text = '';
|
||||||
|
_rawBodyPreview = '';
|
||||||
selectedTemplate = template;
|
selectedTemplate = template;
|
||||||
_loadTemplate();
|
_loadTemplate();
|
||||||
});
|
});
|
||||||
|
|
@ -258,7 +262,7 @@ class _InvoiceEmailViewState extends State<InvoiceEmailView>
|
||||||
body: _emailPreview,
|
body: _emailPreview,
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
AbsorbPointer(
|
IgnorePointer(
|
||||||
child: ExampleEditor(
|
child: ExampleEditor(
|
||||||
value: html2md.convert(_bodyPreview),
|
value: html2md.convert(_bodyPreview),
|
||||||
),
|
),
|
||||||
|
|
@ -297,7 +301,7 @@ class _InvoiceEmailViewState extends State<InvoiceEmailView>
|
||||||
? Colors.white
|
? Colors.white
|
||||||
: null,
|
: null,
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.only(left: 24, right: 10),
|
padding: const EdgeInsets.only(left: 24, right: 10, bottom: 16),
|
||||||
child: DecoratedFormField(
|
child: DecoratedFormField(
|
||||||
controller: _subjectController,
|
controller: _subjectController,
|
||||||
label: localization.subject,
|
label: localization.subject,
|
||||||
|
|
|
||||||
|
|
@ -63,15 +63,19 @@ class _ExampleEditorState extends State<ExampleEditor> {
|
||||||
super.didUpdateWidget(oldWidget);
|
super.didUpdateWidget(oldWidget);
|
||||||
|
|
||||||
if (widget.value != oldWidget.value) {
|
if (widget.value != oldWidget.value) {
|
||||||
|
_setValue(widget.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void _setValue(String value) {
|
||||||
_doc.removeListener(_hideOrShowToolbar);
|
_doc.removeListener(_hideOrShowToolbar);
|
||||||
_doc.removeListener(_onChanged);
|
_doc.removeListener(_onChanged);
|
||||||
_doc = deserializeMarkdownToDocument(widget.value)
|
_doc = deserializeMarkdownToDocument(value)
|
||||||
..addListener(_hideOrShowToolbar)
|
..addListener(_hideOrShowToolbar)
|
||||||
..addListener(_onChanged);
|
..addListener(_onChanged);
|
||||||
_docEditor = DocumentEditor(document: _doc as MutableDocument);
|
_docEditor = DocumentEditor(document: _doc as MutableDocument);
|
||||||
_editorFocusNode = FocusNode();
|
_editorFocusNode = FocusNode();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
|
|
@ -91,9 +95,11 @@ class _ExampleEditorState extends State<ExampleEditor> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onChanged() {
|
void _onChanged() {
|
||||||
|
if (widget.onChanged != null) {
|
||||||
final value = serializeDocumentToMarkdown(_docEditor.document);
|
final value = serializeDocumentToMarkdown(_docEditor.document);
|
||||||
widget.onChanged(value);
|
widget.onChanged(value);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void _hideOrShowToolbar() {
|
void _hideOrShowToolbar() {
|
||||||
if (_gestureMode != DocumentGestureMode.mouse) {
|
if (_gestureMode != DocumentGestureMode.mouse) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue