You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.2 KiB
Dart
84 lines
2.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import '../../app_style/sizing.dart';
|
|
|
|
class RequestInfoRow extends StatelessWidget {
|
|
final String? title;
|
|
final String? info;
|
|
final String? content;
|
|
final Widget? contentWidget;
|
|
final Widget? infoWidget;
|
|
|
|
const RequestInfoRow({
|
|
Key? key,
|
|
this.title,
|
|
this.info,
|
|
this.content,
|
|
this.contentWidget,
|
|
this.infoWidget,
|
|
}) : super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
if (info != null && info!.isEmpty) {
|
|
return const SizedBox.shrink();
|
|
}
|
|
if (content != null && content!.isEmpty) {
|
|
return const SizedBox.shrink();
|
|
}
|
|
return Column(
|
|
children: [
|
|
Row(
|
|
children: [
|
|
Text(
|
|
"$title : ",
|
|
style: Theme.of(context).textTheme.titleSmall?.copyWith(
|
|
//fontSize: 12
|
|
),
|
|
textScaleFactor: AppStyle.getScaleFactor(context),
|
|
),
|
|
if (info != null)
|
|
Expanded(
|
|
child: Text(
|
|
info ?? '',
|
|
style: Theme.of(context).textTheme.bodyMedium,
|
|
textAlign: TextAlign.right,
|
|
textScaleFactor: AppStyle.getScaleFactor(context),
|
|
),
|
|
),
|
|
if (infoWidget != null)
|
|
Expanded(
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.end,
|
|
children: [
|
|
infoWidget ?? const SizedBox(),
|
|
],
|
|
),
|
|
),
|
|
],
|
|
),
|
|
if (content != null)
|
|
Padding(
|
|
padding: const EdgeInsets.symmetric(horizontal: 8),
|
|
child: Row(
|
|
children: [
|
|
Expanded(
|
|
child: Text(
|
|
content ?? 'No data found',
|
|
style: Theme.of(context).textTheme.bodyMedium,
|
|
textAlign: TextAlign.center,
|
|
textScaleFactor: AppStyle.getScaleFactor(context),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
if (contentWidget != null) contentWidget!,
|
|
Divider(
|
|
color: Theme.of(context).primaryColor,
|
|
),
|
|
],
|
|
);
|
|
}
|
|
}
|