blob: 41586368fa9c6d25d930ca229b6c8f5c15a3a8fd [file]
import 'dart:async';
import 'package:dartpad_editor/dartpad_editor.dart';
import 'package:jaspr/jaspr.dart';
import '../../../utils/provider.dart';
import '../../workspace/data/workspace_repository.dart';
import '../components/image_preview.dart';
class ImageTab extends EditorTab<Component> {
ImageTab(super.path);
@override
Component build() {
return Builder(
builder: (context) {
final workspaceRepository = context.get<WorkspaceRepository>();
return ImagePreview(path: path, workspaceRepository: workspaceRepository);
},
);
}
}
class ImageTabAdapter extends EditorTabAdapter<Component> {
const ImageTabAdapter();
@override
Future<EditorTab<Component>?> createTab(String path) {
final lower = path.toLowerCase();
final isImage =
lower.endsWith('.png') ||
lower.endsWith('.jpg') ||
lower.endsWith('.jpeg') ||
lower.endsWith('.gif') ||
lower.endsWith('.ico') ||
lower.endsWith('.svg') ||
lower.endsWith('.webp');
if (isImage) {
return Future.value(ImageTab(path));
}
return Future.value(null);
}
}