tuuli_app/lib/widgets/table_field_widget.dart

51 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:tuuli_app/api/model/table_field_model.dart';
class TableFieldWidget<T> extends StatelessWidget {
final TableField<T> field;
final VoidCallback? onRemove;
const TableFieldWidget({
super.key,
required this.field,
this.onRemove,
});
@override
Widget build(BuildContext context) {
return Card(
child: Container(
padding: const EdgeInsets.all(8),
margin: const EdgeInsets.all(8),
child: Row(
children: [
Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
if (field.isPrimary) const Icon(Icons.star),
if (field.isUnique) const Icon(Icons.lock),
Text(
"Field \"${field.fieldName}\"",
style: const TextStyle(fontWeight: FontWeight.bold),
),
],
),
Text("Field type: ${field.fieldType} (baked by ${field.type})"),
],
),
if (onRemove != null) const Spacer(),
if (onRemove != null)
IconButton(
icon: const Icon(Icons.delete),
onPressed: onRemove,
),
],
),
),
);
}
}