111 lines
3.3 KiB
Dart
111 lines
3.3 KiB
Dart
|
import 'package:flutter/material.dart';
|
||
|
import 'package:get/get.dart';
|
||
|
import 'package:sk_base_mobile/constants/bg_color.dart';
|
||
|
import 'package:sk_base_mobile/screens/new_task/new_task_controller.dart';
|
||
|
|
||
|
class DateTimeInput extends StatelessWidget {
|
||
|
DateTimeInput({super.key});
|
||
|
|
||
|
final controller = Get.put(NewTaskController());
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
return Padding(
|
||
|
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 20),
|
||
|
child: Row(
|
||
|
children: [
|
||
|
Column(
|
||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||
|
children: [
|
||
|
const Text(
|
||
|
'Date',
|
||
|
style:
|
||
|
TextStyle(color: Colors.black, fontWeight: FontWeight.bold),
|
||
|
),
|
||
|
const SizedBox(
|
||
|
height: defaultPadding / 2,
|
||
|
),
|
||
|
InkWell(
|
||
|
onTap: () => controller.showDatePick(context),
|
||
|
child: Obx(() => DateTimeContainer(
|
||
|
text: controller.selectedDate.isEmpty
|
||
|
? 'dd/mm/yyyy'
|
||
|
: controller.selectedDate.value)))
|
||
|
],
|
||
|
),
|
||
|
const Spacer(),
|
||
|
Column(
|
||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||
|
children: [
|
||
|
const Text(
|
||
|
'S-Time',
|
||
|
style:
|
||
|
TextStyle(color: Colors.black, fontWeight: FontWeight.bold),
|
||
|
),
|
||
|
const SizedBox(
|
||
|
height: defaultPadding / 2,
|
||
|
),
|
||
|
InkWell(
|
||
|
onTap: () => controller.picStartTime(context),
|
||
|
child: Obx(() => DateTimeContainer(
|
||
|
text: controller.startTime.isEmpty
|
||
|
? "hh:mm:a"
|
||
|
: controller.startTime.value)))
|
||
|
],
|
||
|
),
|
||
|
const Spacer(),
|
||
|
Column(
|
||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||
|
children: [
|
||
|
const Text(
|
||
|
'E-Time',
|
||
|
style:
|
||
|
TextStyle(color: Colors.black, fontWeight: FontWeight.bold),
|
||
|
),
|
||
|
const SizedBox(
|
||
|
height: defaultPadding / 2,
|
||
|
),
|
||
|
InkWell(
|
||
|
onTap: () => controller.picEndTime(context),
|
||
|
child: Obx(() => DateTimeContainer(
|
||
|
text: controller.endTime.isEmpty
|
||
|
? "hh:mm:a"
|
||
|
: controller.endTime.value)))
|
||
|
],
|
||
|
),
|
||
|
],
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class DateTimeContainer extends StatelessWidget {
|
||
|
const DateTimeContainer({super.key, required this.text});
|
||
|
|
||
|
final String text;
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
return Container(
|
||
|
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 10),
|
||
|
decoration: BoxDecoration(
|
||
|
color: Colors.grey.withOpacity(.2),
|
||
|
borderRadius: BorderRadius.circular(20),
|
||
|
),
|
||
|
child: Row(
|
||
|
children: [
|
||
|
Icon(
|
||
|
Icons.date_range,
|
||
|
color: darkBlue,
|
||
|
size: 16,
|
||
|
),
|
||
|
SizedBox(
|
||
|
width: defaultPadding / 4,
|
||
|
),
|
||
|
Text(text),
|
||
|
],
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|