Rich text editor for Flutter
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

115 lines
3.1 KiB

library universal_ui;
// import 'package:flutter_quill/flutter_quill.dart';
// import 'package:flutter_quill_extensions/flutter_quill_extensions.dart';
// import '../widgets/responsive_widget.dart';
// import 'fake_ui.dart' if (dart.library.html) 'real_ui.dart' as ui_instance;
// class PlatformViewRegistryFix {
// void registerViewFactory(dynamic x, dynamic y) {
// if (kIsWeb) {
// ui_instance.PlatformViewRegistry.registerViewFactory(
// x,
// y,
// );
// }
// }
// }
// class UniversalUI {
// PlatformViewRegistryFix platformViewRegistry = PlatformViewRegistryFix();
// }
// var ui = UniversalUI();
// class ImageEmbedBuilderWeb extends EmbedBuilder {
// @override
// String get key => BlockEmbed.imageType;
// @override
// Widget build(
// BuildContext context,
// QuillController controller,
// Embed node,
// bool readOnly,
// bool inline,
// TextStyle textStyle,
// ) {
// final imageUrl = node.value.data;
// if (isImageBase64(imageUrl)) {
// // TODO: handle imageUrl of base64
// return const SizedBox();
// }
// final size = MediaQuery.sizeOf(context);
// UniversalUI().platformViewRegistry.registerViewFactory(imageUrl,
//(viewId) {
// return html.ImageElement()
// ..src = imageUrl
// ..style.height = 'auto'
// ..style.width = 'auto';
// });
// return Padding(
// padding: EdgeInsets.only(
// right: ResponsiveWidget.isMediumScreen(context)
// ? size.width * 0.5
// : (ResponsiveWidget.isLargeScreen(context))
// ? size.width * 0.75
// : size.width * 0.2,
// ),
// child: SizedBox(
// height: size.height * 0.45,
// child: HtmlElementView(
// viewType: imageUrl,
// ),
// ),
// );
// }
// }
// class VideoEmbedBuilderWeb extends EmbedBuilder {
// @override
// String get key => BlockEmbed.videoType;
// @override
// Widget build(
// BuildContext context,
// QuillController controller,
// Embed node,
// bool readOnly,
// bool inline,
// TextStyle textStyle,
// ) {
// var videoUrl = node.value.data;
// if (videoUrl.contains('youtube.com') || videoUrl.contains('youtu.be')) {
// final youtubeID = YoutubePlayer.convertUrlToId(videoUrl);
// if (youtubeID != null) {
// videoUrl = 'https://www.youtube.com/embed/$youtubeID';
// }
// }
// final size = MediaQuery.sizeOf(context);
// UniversalUI().platformViewRegistry.registerViewFactory(
// videoUrl,
// (id) => html.IFrameElement()
// ..width = size.width.toString()
// ..height = size.height.toString()
// ..src = videoUrl
// ..style.border = 'none',
// );
// return SizedBox(
// height: 500,
// child: HtmlElementView(
// viewType: videoUrl,
// ),
// );
// }
// }
// List<EmbedBuilder> get defaultEmbedBuildersWeb => [
// ...FlutterQuillEmbeds.editorsWebBuilders(),
// // ImageEmbedBuilderWeb(),
// // VideoEmbedBuilderWeb(),
// ];