diff --git a/src/components/mobile/DateTimeSelectionSheet.vue b/src/components/mobile/DateTimeSelectionSheet.vue index c3460e4b..9eb26196 100644 --- a/src/components/mobile/DateTimeSelectionSheet.vue +++ b/src/components/mobile/DateTimeSelectionSheet.vue @@ -35,7 +35,73 @@
-
+
+
+
+
+
+
+ {{ item.name }} +
+
+
+
+
+
+ {{ item.value }} +
+
+
+
:
+
+
+
+ {{ item.value }} +
+
+
+
:
+
+
+
+ {{ item.value }} +
+
+
+
+
+
+ {{ item.name }} +
+
+
+
+
+
+
@@ -49,32 +115,39 @@ diff --git a/src/core/datetime.ts b/src/core/datetime.ts index f655d9f8..38ce0d57 100644 --- a/src/core/datetime.ts +++ b/src/core/datetime.ts @@ -62,11 +62,6 @@ export interface PresetDateRange { readonly value: Date[]; } -export interface LocalizedMeridiemIndicator { - readonly values: string[]; - readonly displayValues: string[]; -} - export interface LocalizedDateTimeFormat extends TypeAndDisplayName { readonly type: number; readonly format: string; diff --git a/src/lib/datetime.ts b/src/lib/datetime.ts index 22e90a37..1c9dbff6 100644 --- a/src/lib/datetime.ts +++ b/src/lib/datetime.ts @@ -920,47 +920,13 @@ export function getFullMonthDateRange(minTime: number, maxTime: number, firstDay return dateRange; } -export function getTimeValues(date: Date, is24Hour: boolean, isMeridiemIndicatorFirst: boolean): string[] { - const hourMinuteSeconds = [ - getTwoDigitsString(is24Hour ? date.getHours() : getHourIn12HourFormat(date.getHours())), - getTwoDigitsString(date.getMinutes()), - getTwoDigitsString(date.getSeconds()) - ]; - - if (is24Hour) { - return hourMinuteSeconds; - } else if (/*!is24Hour && */isMeridiemIndicatorFirst) { - return [getAMOrPM(date.getHours())].concat(hourMinuteSeconds); - } else /* !is24Hour && !isMeridiemIndicatorFirst */ { - return hourMinuteSeconds.concat([getAMOrPM(date.getHours())]); - } -} - -export function getCombinedDateAndTimeValues(date: Date, timeValues: string[], is24Hour: boolean, isMeridiemIndicatorFirst: boolean): Date { +export function getCombinedDateAndTimeValues(date: Date, hour: string, minute: string, second: string, meridiemIndicator: string, is24Hour: boolean): Date { const newDateTime = new Date(date.valueOf()); - let hours = 0; - let minutes = 0; - let seconds = 0; - - if (is24Hour) { - hours = parseInt(timeValues[0]); - minutes = parseInt(timeValues[1]); - seconds = parseInt(timeValues[2]); - } else { - let meridiemIndicator; - - if (/*!is24Hour && */isMeridiemIndicatorFirst) { - meridiemIndicator = timeValues[0]; - hours = parseInt(timeValues[1]); - minutes = parseInt(timeValues[2]); - seconds = parseInt(timeValues[3]); - } else /* !is24Hour && !isMeridiemIndicatorFirst */ { - hours = parseInt(timeValues[0]); - minutes = parseInt(timeValues[1]); - seconds = parseInt(timeValues[2]); - meridiemIndicator = timeValues[3]; - } + let hours = parseInt(hour); + let minutes = parseInt(minute); + let seconds = parseInt(second); + if (!is24Hour) { if (hours === 12) { hours = 0; } diff --git a/src/locales/helpers.ts b/src/locales/helpers.ts index 7851cbef..5b3c5999 100644 --- a/src/locales/helpers.ts +++ b/src/locales/helpers.ts @@ -2,14 +2,13 @@ import { useI18n as useVueI18n } from 'vue-i18n'; import moment from 'moment-timezone'; import 'moment-timezone/moment-timezone-utils'; -import type { PartialRecord, TypeAndName, TypeAndDisplayName, LocalizedSwitchOption } from '@/core/base.ts'; +import type { PartialRecord, NameValue, TypeAndName, TypeAndDisplayName, LocalizedSwitchOption } from '@/core/base.ts'; import { type LanguageInfo, type LanguageOption, ALL_LANGUAGES, DEFAULT_LANGUAGE } from '@/locales/index.ts'; import { type DateFormat, type TimeFormat, - type LocalizedMeridiemIndicator, type LocalizedDateTimeFormat, type LocalizedDateRange, type LocalizedRecentMonthDateRange, @@ -756,22 +755,20 @@ export function useI18n() { return allCurrencies; } - function getAllMeridiemIndicators(): LocalizedMeridiemIndicator { + function getAllMeridiemIndicators(): NameValue[] { const allMeridiemIndicators = MeridiemIndicator.values(); - const meridiemIndicatorNames = []; const localizedMeridiemIndicatorNames = []; for (let i = 0; i < allMeridiemIndicators.length; i++) { const indicator = allMeridiemIndicators[i]; - meridiemIndicatorNames.push(indicator.name); - localizedMeridiemIndicatorNames.push(t(`datetime.${indicator.name}.content`)); + localizedMeridiemIndicatorNames.push({ + name: t(`datetime.${indicator.name}.content`), + value: indicator.name + }); } - return { - values: meridiemIndicatorNames, - displayValues: localizedMeridiemIndicatorNames - }; + return localizedMeridiemIndicatorNames; } function getAllLongMonthNames(): string[] {