Skip to content

Commit 04f2ec1

Browse files
committed
fix: add 24h switch and bugs fixes
Fixes Timezones <> Countries reactivity Fix current timezone field to be readonlt Added 24h format switch
1 parent c68388f commit 04f2ec1

File tree

2 files changed

+21
-19
lines changed

2 files changed

+21
-19
lines changed

components.d.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -130,29 +130,22 @@ declare module '@vue/runtime-core' {
130130
MetaTagGenerator: typeof import('./src/tools/meta-tag-generator/meta-tag-generator.vue')['default']
131131
MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default']
132132
NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default']
133-
NButton: typeof import('naive-ui')['NButton']
134-
NCode: typeof import('naive-ui')['NCode']
135133
NCollapseTransition: typeof import('naive-ui')['NCollapseTransition']
136134
NConfigProvider: typeof import('naive-ui')['NConfigProvider']
135+
NDatePicker: typeof import('naive-ui')['NDatePicker']
136+
NDivider: typeof import('naive-ui')['NDivider']
137+
NDynamicInput: typeof import('naive-ui')['NDynamicInput']
137138
NEllipsis: typeof import('naive-ui')['NEllipsis']
138-
NForm: typeof import('naive-ui')['NForm']
139139
NFormItem: typeof import('naive-ui')['NFormItem']
140140
NH1: typeof import('naive-ui')['NH1']
141141
NH3: typeof import('naive-ui')['NH3']
142142
NIcon: typeof import('naive-ui')['NIcon']
143-
NImage: typeof import('naive-ui')['NImage']
144143
NInput: typeof import('naive-ui')['NInput']
145-
NInputGroup: typeof import('naive-ui')['NInputGroup']
146-
NInputGroupLabel: typeof import('naive-ui')['NInputGroupLabel']
147-
NInputNumber: typeof import('naive-ui')['NInputNumber']
148144
NLayout: typeof import('naive-ui')['NLayout']
149145
NLayoutSider: typeof import('naive-ui')['NLayoutSider']
150146
NMenu: typeof import('naive-ui')['NMenu']
151-
NScrollbar: typeof import('naive-ui')['NScrollbar']
152147
NSelect: typeof import('naive-ui')['NSelect']
153-
NSlider: typeof import('naive-ui')['NSlider']
154148
NSpace: typeof import('naive-ui')['NSpace']
155-
NStatistic: typeof import('naive-ui')['NStatistic']
156149
NSwitch: typeof import('naive-ui')['NSwitch']
157150
NumeronymGenerator: typeof import('./src/tools/numeronym-generator/numeronym-generator.vue')['default']
158151
OtpCodeGeneratorAndValidator: typeof import('./src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue')['default']
@@ -180,6 +173,7 @@ declare module '@vue/runtime-core' {
180173
TextStatistics: typeof import('./src/tools/text-statistics/text-statistics.vue')['default']
181174
TextToBinary: typeof import('./src/tools/text-to-binary/text-to-binary.vue')['default']
182175
TextToNatoAlphabet: typeof import('./src/tools/text-to-nato-alphabet/text-to-nato-alphabet.vue')['default']
176+
TextToUnicode: typeof import('./src/tools/text-to-unicode/text-to-unicode.vue')['default']
183177
TimezoneConverter: typeof import('./src/tools/timezone-converter/timezone-converter.vue')['default']
184178
TokenDisplay: typeof import('./src/tools/otp-code-generator-and-validator/token-display.vue')['default']
185179
'TokenGenerator.tool': typeof import('./src/tools/token-generator/token-generator.tool.vue')['default']

src/tools/timezone-converter/timezone-converter.vue

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ function convertMinsToHrsMins(minutes: number) {
1616
1717
const otherTimezones = useStorage<{ name: string }[]>('timezone-conv:zones', [{ name: 'Etc/GMT' }]);
1818
const currentTimezone = useStorage<string>('timezone-conv:current', browserTimezone);
19+
const use24HourTimeFormat = useStorage<boolean>('timezone-conv:24h', true);
20+
1921
const now = Date.now();
2022
const currentDatetimeRange = ref<[number, number]>([now, now]);
2123
const currentTimezoneOffset = computed(() => {
@@ -27,7 +29,7 @@ function convertToTimezone(tz: string, timestamp: number) {
2729
+ getTimezoneOffset(currentTimezone.value, new Date()) * 60 * 1000
2830
- getTimezoneOffset(browserTimezone, new Date()) * 60 * 1000,
2931
).toLocaleString(undefined,
30-
{ timeZone: tz, timeZoneName: undefined, hour12: false });
32+
{ timeZone: tz, timeZoneName: undefined, hour12: !use24HourTimeFormat.value });
3133
}
3234
3335
const tzToCountriesInput = ref(browserTimezone);
@@ -58,12 +60,18 @@ const countryToTimezonesOutput = computed(() => ctz.getTimezonesForCountry(count
5860
mb-2
5961
/>
6062

61-
<input-copyable
62-
label="Current Timezone Offset (min)"
63-
label-position="left"
64-
:value="currentTimezoneOffset"
65-
mb-2
66-
/>
63+
<n-space justify="space-evenly">
64+
<input-copyable
65+
label="Current Timezone Offset (min)"
66+
label-position="left"
67+
:value="currentTimezoneOffset"
68+
readonly
69+
mb-2
70+
/>
71+
<n-form-item label="Use 24 hour time format" label-placement="left">
72+
<n-switch v-model:value="use24HourTimeFormat" />
73+
</n-form-item>
74+
</n-space>
6775

6876
<c-card title="Date-Time in other timezones">
6977
<n-dynamic-input
@@ -92,9 +100,9 @@ const countryToTimezonesOutput = computed(() => ctz.getTimezonesForCountry(count
92100

93101
<c-card title="Country to Timezones" mb-2>
94102
<c-select
103+
v-model:value="countryToTimezonesInput"
95104
label="Country"
96105
label-position="left"
97-
:value="countryToTimezonesInput"
98106
searchable
99107
:options="allCountries"
100108
/>
@@ -110,9 +118,9 @@ const countryToTimezonesOutput = computed(() => ctz.getTimezonesForCountry(count
110118

111119
<c-card title="Timezones to Countries" mb-2>
112120
<c-select
121+
v-model:value="tzToCountriesInput"
113122
label="Timezone"
114123
label-position="left"
115-
:value="tzToCountriesInput"
116124
searchable
117125
:options="allTimezones"
118126
/>

0 commit comments

Comments
 (0)