feat: Add DateTimeUtils for converting UTC to device local time and update imports
This commit is contained in:
@@ -2,3 +2,4 @@ library core;
|
|||||||
|
|
||||||
export 'src/domain/arguments/usecase_argument.dart';
|
export 'src/domain/arguments/usecase_argument.dart';
|
||||||
export 'src/domain/usecases/usecase.dart';
|
export 'src/domain/usecases/usecase.dart';
|
||||||
|
export 'src/utils/date_time_utils.dart';
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
class DateTimeUtils {
|
||||||
|
/// Converts a [DateTime] (assumed UTC if not specified) to the device's local time.
|
||||||
|
static DateTime toDeviceTime(DateTime date) {
|
||||||
|
return date.toLocal();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import 'package:krow_domain/krow_domain.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:firebase_auth/firebase_auth.dart';
|
import 'package:firebase_auth/firebase_auth.dart';
|
||||||
import 'package:firebase_data_connect/firebase_data_connect.dart';
|
import 'package:firebase_data_connect/firebase_data_connect.dart';
|
||||||
|
import 'package:krow_core/core.dart';
|
||||||
import '../../domain/repositories/shifts_repository_interface.dart';
|
import '../../domain/repositories/shifts_repository_interface.dart';
|
||||||
|
|
||||||
class ShiftsRepositoryImpl implements ShiftsRepositoryInterface {
|
class ShiftsRepositoryImpl implements ShiftsRepositoryInterface {
|
||||||
@@ -51,15 +52,27 @@ class ShiftsRepositoryImpl implements ShiftsRepositoryInterface {
|
|||||||
|
|
||||||
DateTime? _toDateTime(dynamic t) {
|
DateTime? _toDateTime(dynamic t) {
|
||||||
if (t == null) return null;
|
if (t == null) return null;
|
||||||
try {
|
DateTime? dt;
|
||||||
return DateTime.tryParse(t.toJson() as String);
|
if (t is Timestamp) {
|
||||||
} catch (_) {
|
dt = t.toDateTime();
|
||||||
|
} else if (t is String) {
|
||||||
|
dt = DateTime.tryParse(t);
|
||||||
|
} else {
|
||||||
try {
|
try {
|
||||||
return DateTime.tryParse(t.toString());
|
dt = DateTime.tryParse(t.toJson() as String);
|
||||||
} catch (e) {
|
} catch (_) {
|
||||||
return null;
|
try {
|
||||||
|
dt = DateTime.tryParse(t.toString());
|
||||||
|
} catch (e) {
|
||||||
|
dt = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dt != null) {
|
||||||
|
return DateTimeUtils.toDeviceTime(dt);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_modular/flutter_modular.dart';
|
|
||||||
import 'package:design_system/design_system.dart';
|
import 'package:design_system/design_system.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
import 'package:krow_domain/krow_domain.dart';
|
import 'package:krow_domain/krow_domain.dart';
|
||||||
import '../../navigation/shifts_navigator.dart';
|
|
||||||
import '../../styles/shifts_styles.dart';
|
import '../../styles/shifts_styles.dart';
|
||||||
import '../my_shift_card.dart';
|
import '../my_shift_card.dart';
|
||||||
import '../shared/empty_state_view.dart';
|
import '../shared/empty_state_view.dart';
|
||||||
|
|||||||
Reference in New Issue
Block a user