mirror of
https://github.com/foss42/apidash.git
synced 2025-08-06 13:51:20 +08:00
86 lines
2.1 KiB
Dart
86 lines
2.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:apidash_core/apidash_core.dart';
|
|
import 'package:apidash_design_system/apidash_design_system.dart';
|
|
import 'package:apidash/consts.dart';
|
|
import 'button_copy.dart';
|
|
import 'table_map.dart';
|
|
|
|
class ResponseHeadersHeader extends StatelessWidget {
|
|
const ResponseHeadersHeader({
|
|
super.key,
|
|
required this.map,
|
|
required this.name,
|
|
});
|
|
|
|
final Map map;
|
|
final String name;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return SizedBox(
|
|
height: kHeaderHeight,
|
|
child: Row(
|
|
children: [
|
|
Expanded(
|
|
child: Text(
|
|
"$name (${map.length} $kLabelItems)",
|
|
style: Theme.of(context).textTheme.labelMedium?.copyWith(
|
|
fontWeight: FontWeight.bold,
|
|
),
|
|
),
|
|
),
|
|
if (map.isNotEmpty)
|
|
CopyButton(
|
|
toCopy: kJsonEncoder.convert(map),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
class ResponseHeaders extends StatelessWidget {
|
|
const ResponseHeaders({
|
|
super.key,
|
|
required this.responseHeaders,
|
|
required this.requestHeaders,
|
|
});
|
|
|
|
final Map responseHeaders;
|
|
final Map requestHeaders;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Padding(
|
|
padding: kPh20v5,
|
|
child: ListView(
|
|
children: [
|
|
ResponseHeadersHeader(
|
|
map: responseHeaders,
|
|
name: kLabelResponseHeaders,
|
|
),
|
|
if (responseHeaders.isNotEmpty) kVSpacer5,
|
|
if (responseHeaders.isNotEmpty)
|
|
MapTable(
|
|
map: responseHeaders,
|
|
colNames: kHeaderRow,
|
|
firstColumnHeaderCase: true,
|
|
),
|
|
kVSpacer10,
|
|
ResponseHeadersHeader(
|
|
map: requestHeaders,
|
|
name: kLabelRequestHeaders,
|
|
),
|
|
if (requestHeaders.isNotEmpty) kVSpacer5,
|
|
if (requestHeaders.isNotEmpty)
|
|
MapTable(
|
|
map: requestHeaders,
|
|
colNames: kHeaderRow,
|
|
firstColumnHeaderCase: true,
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|