mirror of
https://github.com/foss42/apidash.git
synced 2025-05-21 08:16:29 +08:00
Update previewer error messages
This commit is contained in:
@ -502,38 +502,15 @@ const kResponseCodeReasons = {
|
||||
511: 'Network Authentication Required',
|
||||
};
|
||||
|
||||
const kMimeTypeRawRaiseIssueStart =
|
||||
"Please click on 'Raw' to view the unformatted raw results as the response preview for Content-Type ";
|
||||
|
||||
const kMimeTypeRaiseIssueStart = "Response preview for Content-Type ";
|
||||
|
||||
const kMimeTypeRaiseIssue =
|
||||
" is currently not supported.\nPlease raise an issue in API Dash GitHub repo so that we can add a Previewer for this content-type.";
|
||||
"{% if showRaw %}Please click on 'Raw' to view the unformatted raw results as we{% else %}We{% endif %} encountered an error rendering this {% if showContentType %}Content-Type {% endif %}{{type}}.\nPlease raise an issue in API Dash GitHub repo so that we can look into this issue.";
|
||||
|
||||
const kUnexpectedRaiseIssue =
|
||||
"\nIf the behaviour is unexpected, please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
||||
|
||||
const kVideoError =
|
||||
"There seems to be an issue playing this video. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
||||
|
||||
const kImageError =
|
||||
"There seems to be an issue rendering this image. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
||||
|
||||
const kSvgError =
|
||||
"There seems to be an issue rendering this SVG image. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
||||
|
||||
const kPdfError =
|
||||
"There seems to be an issue rendering this pdf. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
||||
|
||||
const kAudioError =
|
||||
"There seems to be an issue playing this audio. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
||||
|
||||
const kRaiseIssue =
|
||||
"\nPlease raise an issue in API Dash GitHub repo so that we can resolve it.";
|
||||
|
||||
const kCsvError =
|
||||
"There seems to be an issue rendering this CSV. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
||||
|
||||
const kHintTextUrlCard = "Enter API endpoint like https://$kDefaultUri/";
|
||||
const kLabelPlusNew = "+ New";
|
||||
const kLabelSend = "Send";
|
||||
|
@ -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