|
|
|
@ -18,6 +18,7 @@ class LinkStyleButton extends StatefulWidget { |
|
|
|
|
this.dialogTheme, |
|
|
|
|
this.afterButtonPressed, |
|
|
|
|
this.tooltip, |
|
|
|
|
this.linkRegExp, |
|
|
|
|
Key? key, |
|
|
|
|
}) : super(key: key); |
|
|
|
|
|
|
|
|
@ -28,6 +29,7 @@ class LinkStyleButton extends StatefulWidget { |
|
|
|
|
final QuillDialogTheme? dialogTheme; |
|
|
|
|
final VoidCallback? afterButtonPressed; |
|
|
|
|
final String? tooltip; |
|
|
|
|
final RegExp? linkRegExp; |
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
_LinkStyleButtonState createState() => _LinkStyleButtonState(); |
|
|
|
@ -108,7 +110,11 @@ class _LinkStyleButtonState extends State<LinkStyleButton> { |
|
|
|
|
text ??= |
|
|
|
|
len == 0 ? '' : widget.controller.document.getPlainText(index, len); |
|
|
|
|
return _LinkDialog( |
|
|
|
|
dialogTheme: widget.dialogTheme, link: link, text: text); |
|
|
|
|
dialogTheme: widget.dialogTheme, |
|
|
|
|
link: link, |
|
|
|
|
text: text, |
|
|
|
|
linkRegExp: widget.linkRegExp, |
|
|
|
|
); |
|
|
|
|
}, |
|
|
|
|
).then( |
|
|
|
|
(value) { |
|
|
|
@ -143,12 +149,18 @@ class _LinkStyleButtonState extends State<LinkStyleButton> { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class _LinkDialog extends StatefulWidget { |
|
|
|
|
const _LinkDialog({this.dialogTheme, this.link, this.text, Key? key}) |
|
|
|
|
: super(key: key); |
|
|
|
|
const _LinkDialog({ |
|
|
|
|
this.dialogTheme, |
|
|
|
|
this.link, |
|
|
|
|
this.text, |
|
|
|
|
this.linkRegExp, |
|
|
|
|
Key? key, |
|
|
|
|
}) : super(key: key); |
|
|
|
|
|
|
|
|
|
final QuillDialogTheme? dialogTheme; |
|
|
|
|
final String? link; |
|
|
|
|
final String? text; |
|
|
|
|
final RegExp? linkRegExp; |
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
_LinkDialogState createState() => _LinkDialogState(); |
|
|
|
@ -157,6 +169,7 @@ class _LinkDialog extends StatefulWidget { |
|
|
|
|
class _LinkDialogState extends State<_LinkDialog> { |
|
|
|
|
late String _link; |
|
|
|
|
late String _text; |
|
|
|
|
late RegExp linkRegExp; |
|
|
|
|
late TextEditingController _linkController; |
|
|
|
|
late TextEditingController _textController; |
|
|
|
|
|
|
|
|
@ -165,6 +178,7 @@ class _LinkDialogState extends State<_LinkDialog> { |
|
|
|
|
super.initState(); |
|
|
|
|
_link = widget.link ?? ''; |
|
|
|
|
_text = widget.text ?? ''; |
|
|
|
|
linkRegExp = widget.linkRegExp ?? AutoFormatMultipleLinksRule.linkRegExp; |
|
|
|
|
_linkController = TextEditingController(text: _link); |
|
|
|
|
_textController = TextEditingController(text: _text); |
|
|
|
|
} |
|
|
|
@ -218,8 +232,7 @@ class _LinkDialogState extends State<_LinkDialog> { |
|
|
|
|
if (_text.isEmpty || _link.isEmpty) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!AutoFormatMultipleLinksRule.linkRegExp.hasMatch(_link)) { |
|
|
|
|
if (!linkRegExp.hasMatch(_link)) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|