Skip to content

Commit

Permalink
feat. 시간, 날짜 입력 모달 디자인 변경에 따른 구현 #25
Browse files Browse the repository at this point in the history
  • Loading branch information
LimSongJae committed Jun 11, 2023
1 parent a441a6f commit dd83e10
Show file tree
Hide file tree
Showing 5 changed files with 161 additions and 142 deletions.
179 changes: 97 additions & 82 deletions lib/widgets/calendar_info_screen/additional_info_widget.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:meonghae_front/themes/customColor.dart';
import 'package:meonghae_front/widgets/calendar_info_screen/swich_widget.dart';
import 'package:meonghae_front/widgets/common/select_input_widget.dart';
import 'package:spinner_date_time_picker/spinner_date_time_picker.dart';

class AdditionalInfoWidget extends StatefulWidget {
const AdditionalInfoWidget({super.key});
Expand All @@ -19,73 +21,13 @@ class _AdditionalInfoWidgetState extends State<AdditionalInfoWidget> {
List<String> informList = ['안 함', '함'];
String selectedInformList = '안 함';

final bool _isAlways = false;
DateTime? _selectedStartDate;
DateTime? _selectedFinishDate;

TimeOfDay? _selectedStartTime;
TimeOfDay? _selectedFinishTime;

Future<void> _selectStartTime(BuildContext context) async {
print(_textEditingController.text);

final TimeOfDay? pickedTime = await showTimePicker(
context: context,
initialTime: TimeOfDay.now(),
);

if (pickedTime != null) {
setState(() {
_selectedStartTime = pickedTime;
});
}
}

Future<void> _selectFinishTime(BuildContext context) async {
final TimeOfDay? pickedTime = await showTimePicker(
context: context,
initialTime: TimeOfDay.now(),
);

if (pickedTime != null) {
setState(() {
_selectedFinishTime = pickedTime;
});
}
}
DateTime selectedStartDate = DateTime.now();
DateTime selectedStartTime = DateTime.now();
DateTime selectedFinishDate = DateTime.now();
DateTime selectedFinishTime = DateTime.now();

final TextEditingController _textEditingController = TextEditingController();

void _selectStartDate(BuildContext context) async {
final DateTime? pickedDate = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2000),
lastDate: DateTime(2100),
);

if (pickedDate != null) {
setState(() {
_selectedStartDate = pickedDate;
});
}
}

void _selectFinishDate(BuildContext context) async {
final DateTime? pickedDate = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2000),
lastDate: DateTime(2100),
);

if (pickedDate != null) {
setState(() {
_selectedFinishDate = pickedDate;
});
}
}

@override
Widget build(BuildContext context) {
return Column(
Expand Down Expand Up @@ -163,13 +105,31 @@ class _AdditionalInfoWidgetState extends State<AdditionalInfoWidget> {
),
TextButton(
onPressed: () {
_selectStartDate(context);
showDialog(
context: context,
builder: (context) {
var today = DateTime.now();
return Dialog(
child: SpinnerDateTimePicker(
initialDateTime: today,
maximumDate:
today.add(const Duration(days: 7500)),
minimumDate: today
.subtract(const Duration(days: 7500)),
mode: CupertinoDatePickerMode.date,
use24hFormat: true,
didSetTime: (value) {
setState(() {
selectedStartDate = value;
});
},
),
);
},
);
},
child: Text(
_selectedStartDate != null
? DateFormat('yyyy-MM-dd')
.format(_selectedStartDate!)
: '0000-00-00',
DateFormat('yyyy-MM-dd').format(selectedStartDate),
style: const TextStyle(
fontSize: 13,
fontWeight: FontWeight.w400,
Expand All @@ -179,12 +139,31 @@ class _AdditionalInfoWidgetState extends State<AdditionalInfoWidget> {
),
TextButton(
onPressed: () {
_selectStartTime(context);
showDialog(
context: context,
builder: (context) {
var today = DateTime.now();
return Dialog(
child: SpinnerDateTimePicker(
initialDateTime: today,
maximumDate:
today.add(const Duration(days: 7)),
minimumDate:
today.subtract(const Duration(days: 1)),
mode: CupertinoDatePickerMode.time,
use24hFormat: true,
didSetTime: (value) {
setState(() {
selectedStartTime = value;
});
},
),
);
},
);
},
child: Text(
_selectedStartTime != null
? _selectedStartTime!.format(context)
: '00:00 AM',
DateFormat('HH:mm').format(selectedStartTime),
style: const TextStyle(
fontSize: 13,
fontWeight: FontWeight.w400,
Expand Down Expand Up @@ -214,13 +193,31 @@ class _AdditionalInfoWidgetState extends State<AdditionalInfoWidget> {
),
TextButton(
onPressed: () {
_selectFinishDate(context);
showDialog(
context: context,
builder: (context) {
var today = DateTime.now();
return Dialog(
child: SpinnerDateTimePicker(
initialDateTime: today,
maximumDate:
today.add(const Duration(days: 7500)),
minimumDate:
today.subtract(const Duration(days: 7500)),
mode: CupertinoDatePickerMode.date,
use24hFormat: true,
didSetTime: (value) {
setState(() {
selectedFinishDate = value;
});
},
),
);
},
);
},
child: Text(
_selectedFinishDate != null
? DateFormat('yyyy-MM-dd')
.format(_selectedFinishDate!)
: '0000-00-00',
DateFormat('yyyy-MM-dd').format(selectedFinishDate),
style: const TextStyle(
fontSize: 13,
fontWeight: FontWeight.w400,
Expand All @@ -230,12 +227,30 @@ class _AdditionalInfoWidgetState extends State<AdditionalInfoWidget> {
),
TextButton(
onPressed: () {
_selectFinishTime(context);
showDialog(
context: context,
builder: (context) {
var today = DateTime.now();
return Dialog(
child: SpinnerDateTimePicker(
initialDateTime: today,
maximumDate: today.add(const Duration(days: 7)),
minimumDate:
today.subtract(const Duration(days: 1)),
mode: CupertinoDatePickerMode.time,
use24hFormat: true,
didSetTime: (value) {
setState(() {
selectedFinishTime = value;
});
},
),
);
},
);
},
child: Text(
_selectedFinishTime != null
? _selectedFinishTime!.format(context)
: '00:00 AM',
DateFormat('HH:mm').format(selectedFinishTime),
style: const TextStyle(
fontSize: 13,
fontWeight: FontWeight.w400,
Expand Down
17 changes: 11 additions & 6 deletions lib/widgets/calendar_info_screen/filter_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,17 @@ class _FilterWidgetState extends State<FilterWidget> {
return dropdownList.map((String item) {
return PopupMenuItem<String>(
value: item,
child: Text(
item,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w700,
color: CustomColor.gray,
child: ConstrainedBox(
constraints: const BoxConstraints(
maxWidth: double.infinity, // 최대 넓이를 설정
),
child: Text(
item,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w700,
color: CustomColor.gray,
),
),
),
);
Expand Down
54 changes: 0 additions & 54 deletions lib/widgets/date_scroll_picker.dart

This file was deleted.

48 changes: 48 additions & 0 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.11.0"
auto_size_text:
dependency: transitive
description:
name: auto_size_text
sha256: "3f5261cd3fb5f2a9ab4e2fc3fba84fd9fcaac8821f20a1d4e71f557521b22599"
url: "https://pub.dev"
source: hosted
version: "3.0.0"
boolean_selector:
dependency: transitive
description:
Expand Down Expand Up @@ -198,6 +206,22 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_datetime_picker:
dependency: "direct main"
description:
name: flutter_datetime_picker
sha256: "8e695c63c769350e541951227c2775190ec73ceda774a315b1dc9a99d5facfe5"
url: "https://pub.dev"
source: hosted
version: "1.5.1"
flutter_holo_date_picker:
dependency: "direct main"
description:
name: flutter_holo_date_picker
sha256: "94cf29471ffac123043745b65c690dcf6d481e98c11bda71f78a34dd6f726247"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
flutter_lints:
dependency: "direct dev"
description:
Expand All @@ -222,6 +246,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.3+4"
flutter_spinner_picker:
dependency: "direct main"
description:
name: flutter_spinner_picker
sha256: c9ca4cb5d022a90aa54e5b8c893d2b7e4029fc788875efd678e8be6e55ffa2b4
url: "https://pub.dev"
source: hosted
version: "0.0.7"
flutter_svg:
dependency: "direct main"
description:
Expand All @@ -235,6 +267,14 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_time_picker_spinner:
dependency: "direct main"
description:
name: flutter_time_picker_spinner
sha256: "95600709910ad0cd5fcaec6c371dbe2e81a78989a9ee8c08a356433e2ccff041"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
Expand Down Expand Up @@ -581,6 +621,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.9.1"
spinner_date_time_picker:
dependency: "direct main"
description:
name: spinner_date_time_picker
sha256: b0d1b711806b97345aa9e34785b80b35862319e7ffdc3649a5cca97550722349
url: "https://pub.dev"
source: hosted
version: "0.0.8"
stack_trace:
dependency: transitive
description:
Expand Down
Loading

0 comments on commit dd83e10

Please sign in to comment.