Files
clide/lib/widgets/src/clide_svg_view.dart
T
jpmschweitzerandClaude Opus 4.8 6d0ebab721 chore: adopt Dart 3.9 toolchain — honest floor + tall-style reformat (T-353)
Raise the declared minimums in pubspec.yaml to what our deps already
require: Flutter >=3.35.0 / Dart >=3.9.0 (was 3.19.0 / 3.5.0). alchemist
0.12 needs Flutter 3.32; Dart 3.9 first ships in Flutter 3.35, so 3.35 is
the binding floor. Pin the exact build toolchain in .fvmrc (Flutter
3.44.1).

Moving to the Dart 3.9 language level switches `dart format` to the new
"tall" style and enables two new lints. This commit is the resulting
mechanical churn, isolated from any behaviour change:
  - whole-tree `dart format` reformat (tall style)
  - `dart fix` for unnecessary_underscores + use_null_aware_elements

No runtime behaviour change; `make test` green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 12:11:53 +02:00

32 lines
1.0 KiB
Dart

import 'package:flutter/services.dart' show rootBundle;
import 'package:flutter/widgets.dart';
import 'package:jovial_svg/jovial_svg.dart';
class ClideSvgView extends StatelessWidget {
const ClideSvgView.asset(this.assetPath, {super.key, this.width, this.height}) : svgString = null;
const ClideSvgView.string(this.svgString, {super.key, this.width, this.height}) : assetPath = null;
final String? assetPath;
final String? svgString;
final double? width;
final double? height;
@override
Widget build(BuildContext context) {
Widget child;
if (assetPath != null) {
child = ScalableImageWidget.fromSISource(si: ScalableImageSource.fromSvg(rootBundle, assetPath!));
} else if (svgString != null) {
final si = ScalableImage.fromSvgString(svgString!);
child = ScalableImageWidget(si: si);
} else {
return const SizedBox.shrink();
}
if (width != null || height != null) {
child = SizedBox(width: width, height: height, child: child);
}
return child;
}
}