Files
packages.dart/deprecated/easy_web_view/lib/src/base.dart
T
2026-01-15 14:38:46 -08:00

68 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import 'platforms/base.dart';
import 'platforms/markdown.dart';
import 'platforms/widgets.dart';
abstract class EasyWebViewBase extends StatelessWidget {
const EasyWebViewBase({
Key? key,
required this.src,
required this.width,
required this.height,
required this.onLoaded,
required this.isMarkdown,
required this.convertToMarkdown,
required this.convertToWidgets,
required this.fallbackBuilder,
required this.options,
}) : super(key: key);
final String src;
final double? width, height;
final OnLoaded? onLoaded;
final bool isMarkdown;
final bool convertToMarkdown;
final bool convertToWidgets;
final WidgetBuilder? fallbackBuilder;
final WebViewOptions options;
bool canBuild() {
if (convertToWidgets) return true;
if (isMarkdown || convertToMarkdown) return true;
return false;
}
@override
Widget build(BuildContext context) {
if (canBuild()) {
if (convertToWidgets) {
return WidgetsWebView(
key: key,
src: src,
width: width,
height: height,
onLoaded: onLoaded,
options: options,
);
}
if (isMarkdown || convertToMarkdown) {
return MarkdownWebView(
key: key,
src: src,
height: height,
width: width,
onLoaded: onLoaded,
options: options,
);
}
}
if (fallbackBuilder != null) {
return fallbackBuilder!(context);
} else {
return Placeholder();
}
}
}