프로젝트 최초 커밋
This commit is contained in:
57
lib/screens/common/custom_widgets/date_picker_field.dart
Normal file
57
lib/screens/common/custom_widgets/date_picker_field.dart
Normal file
@@ -0,0 +1,57 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'form_field_wrapper.dart';
|
||||
import 'package:superport/screens/common/theme_tailwind.dart';
|
||||
|
||||
// 날짜 선택 필드
|
||||
class DatePickerField extends StatelessWidget {
|
||||
final DateTime selectedDate;
|
||||
final Function(DateTime) onDateChanged;
|
||||
final bool allowFutureDate;
|
||||
final bool isRequired;
|
||||
|
||||
const DatePickerField({
|
||||
Key? key,
|
||||
required this.selectedDate,
|
||||
required this.onDateChanged,
|
||||
this.allowFutureDate = false,
|
||||
this.isRequired = false,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return InkWell(
|
||||
onTap: () async {
|
||||
final DateTime? picked = await showDatePicker(
|
||||
context: context,
|
||||
initialDate: selectedDate,
|
||||
firstDate: DateTime(2000),
|
||||
lastDate: allowFutureDate ? DateTime(2100) : DateTime.now(),
|
||||
);
|
||||
if (picked != null && picked != selectedDate) {
|
||||
onDateChanged(picked);
|
||||
}
|
||||
},
|
||||
child: FormFieldWrapper(
|
||||
label: '날짜',
|
||||
isRequired: isRequired,
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 15),
|
||||
decoration: BoxDecoration(
|
||||
border: Border.all(color: Colors.grey.shade400),
|
||||
borderRadius: BorderRadius.circular(4),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'${selectedDate.year}-${selectedDate.month.toString().padLeft(2, '0')}-${selectedDate.day.toString().padLeft(2, '0')}',
|
||||
style: AppThemeTailwind.bodyStyle,
|
||||
),
|
||||
const Icon(Icons.calendar_today, size: 20),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user