mirror of
https://github.com/foss42/apidash.git
synced 2025-08-06 05:32:26 +08:00
Update previewer error messages
This commit is contained in:
@ -1,12 +1,15 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:csv/csv.dart';
|
||||
import 'error_message.dart';
|
||||
import '../consts.dart';
|
||||
|
||||
class CsvPreviewer extends StatelessWidget {
|
||||
const CsvPreviewer({super.key, required this.body});
|
||||
const CsvPreviewer({
|
||||
super.key,
|
||||
required this.body,
|
||||
required this.errorWidget,
|
||||
});
|
||||
|
||||
final String body;
|
||||
final Widget errorWidget;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -47,7 +50,7 @@ class CsvPreviewer extends StatelessWidget {
|
||||
),
|
||||
);
|
||||
} catch (e) {
|
||||
return const ErrorMessage(message: kCsvError);
|
||||
return errorWidget;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
import 'dart:convert';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:jinja/jinja.dart' as jj;
|
||||
import 'package:printing/printing.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:vector_graphics_compiler/vector_graphics_compiler.dart';
|
||||
@ -34,6 +35,7 @@ class Previewer extends StatefulWidget {
|
||||
class _PreviewerState extends State<Previewer> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var errorTemplate = jj.Template(kMimeTypeRaiseIssue);
|
||||
if (widget.type == kTypeApplication && widget.subtype == kSubTypeJson) {
|
||||
try {
|
||||
var preview = JsonPreviewer(
|
||||
@ -53,14 +55,26 @@ class _PreviewerState extends State<Previewer> {
|
||||
);
|
||||
return svgImg;
|
||||
} catch (e) {
|
||||
return const ErrorMessage(message: kSvgError);
|
||||
return ErrorMessage(
|
||||
message: errorTemplate.render({
|
||||
"showRaw": true,
|
||||
"showContentType": false,
|
||||
"type": "svg",
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
if (widget.type == kTypeImage) {
|
||||
return Image.memory(
|
||||
widget.bytes,
|
||||
errorBuilder: (context, _, stackTrace) {
|
||||
return const ErrorMessage(message: kImageError);
|
||||
return ErrorMessage(
|
||||
message: errorTemplate.render({
|
||||
"showRaw": false,
|
||||
"showContentType": false,
|
||||
"type": kTypeImage,
|
||||
}),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
@ -69,7 +83,13 @@ class _PreviewerState extends State<Previewer> {
|
||||
build: (_) => widget.bytes,
|
||||
useActions: false,
|
||||
onError: (context, error) {
|
||||
return const ErrorMessage(message: kPdfError);
|
||||
return ErrorMessage(
|
||||
message: errorTemplate.render({
|
||||
"showRaw": false,
|
||||
"showContentType": false,
|
||||
"type": kSubTypePdf,
|
||||
}),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
@ -79,24 +99,49 @@ class _PreviewerState extends State<Previewer> {
|
||||
type: widget.type!,
|
||||
subtype: widget.subtype!,
|
||||
errorBuilder: (context, error, stacktrace) {
|
||||
return const ErrorMessage(message: kAudioError);
|
||||
return ErrorMessage(
|
||||
message: errorTemplate.render({
|
||||
"showRaw": false,
|
||||
"showContentType": false,
|
||||
"type": kTypeAudio,
|
||||
}),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
if (widget.type == kTypeText && widget.subtype == kSubTypeCsv) {
|
||||
return CsvPreviewer(body: widget.body);
|
||||
return CsvPreviewer(
|
||||
body: widget.body,
|
||||
errorWidget: ErrorMessage(
|
||||
message: errorTemplate.render({
|
||||
"showRaw": false,
|
||||
"showContentType": false,
|
||||
"type": kSubTypeCsv,
|
||||
}),
|
||||
),
|
||||
);
|
||||
}
|
||||
if (widget.type == kTypeVideo) {
|
||||
try {
|
||||
var preview = VideoPreviewer(videoBytes: widget.bytes);
|
||||
return preview;
|
||||
} catch (e) {
|
||||
return const ErrorMessage(message: kVideoError);
|
||||
return ErrorMessage(
|
||||
message: errorTemplate.render({
|
||||
"showRaw": false,
|
||||
"showContentType": false,
|
||||
"type": kTypeVideo,
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
String message = widget.hasRaw
|
||||
? "$kMimeTypeRawRaiseIssueStart${widget.type}/${widget.subtype}$kMimeTypeRaiseIssue"
|
||||
: "$kMimeTypeRaiseIssueStart${widget.type}/${widget.subtype}$kMimeTypeRaiseIssue";
|
||||
return ErrorMessage(message: message);
|
||||
var errorText = errorTemplate.render({
|
||||
"showRaw": widget.hasRaw,
|
||||
"showContentType": true,
|
||||
"type": "${widget.type}/${widget.subtype}",
|
||||
});
|
||||
return ErrorMessage(
|
||||
message: errorText,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user