import 'package:flutter/material.dart';


class DetailRow extends StatelessWidget {
  final String label;
  final String value;
  final bool multiline;
  final bool monospaced;

  const DetailRow({
    super.key,
    required this.label,
    required this.value,
    this.multiline = false,
    this.monospaced = false,
  });

  @override
  Widget build(BuildContext context) {
    final theme = Theme.of(context);
    final valueStyle = monospaced
        ? theme.textTheme.bodyMedium?.copyWith(fontFamily: 'monospace')
        : theme.textTheme.bodyMedium;

    return Padding(
      padding: const EdgeInsets.symmetric(vertical: 2),
      child: LayoutBuilder(
        builder: (context, constraints) {
          final isNarrow = constraints.maxWidth < 250;
          if (isNarrow) {
            return Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(
                  label,
                  style: theme.textTheme.bodySmall?.copyWith(
                    color: theme.colorScheme.onSurfaceVariant,
                  ),
                ),
                const SizedBox(height: 2),
                SelectableText(value, style: valueStyle),
              ],
            );
          }

          return Row(
            crossAxisAlignment: multiline
                ? CrossAxisAlignment.start
                : CrossAxisAlignment.center,
            children: [
              Expanded(
                flex: 2,
                child: Text(
                  label,
                  style: theme.textTheme.bodySmall?.copyWith(
                    color: theme.colorScheme.onSurfaceVariant,
                  ),
                ),
              ),
              const SizedBox(width: 8),
              Expanded(
                flex: 3,
                child: SelectableText(value, style: valueStyle),
              ),
            ],
          );
        },
      ),
    );
  }
}
