Files
Qlyra/lib/frontend/widgets/labeled_settings_field.dart
T

67 lines
1.8 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import '../../core/config/app_colors.dart';
class LabeledSettingsField extends StatelessWidget {
const LabeledSettingsField({
super.key,
required this.controller,
required this.label,
this.hintText,
this.keyboardType,
this.inputFormatters,
this.obscureText = false,
this.enabled = true,
});
final TextEditingController controller;
final String label;
final String? hintText;
final TextInputType? keyboardType;
final List<TextInputFormatter>? inputFormatters;
final bool obscureText;
final bool enabled;
@override
Widget build(BuildContext context) {
final cs = Theme.of(context).colorScheme;
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
label,
style: TextStyle(
color: cs.onSurfaceVariant,
fontWeight: FontWeight.w500,
fontSize: 14,
),
),
const SizedBox(height: 8),
TextField(
controller: controller,
keyboardType: keyboardType,
inputFormatters: inputFormatters,
enabled: enabled,
obscureText: obscureText,
style: TextStyle(color: cs.onSurface, fontSize: 15),
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(color: cs.mutedText, fontSize: 15),
filled: true,
fillColor: cs.surfaceContainerHighest,
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide: BorderSide.none,
),
contentPadding: const EdgeInsets.symmetric(
horizontal: 16,
vertical: 14,
),
),
),
],
);
}
}