From 301b45e31c5ce3c5eb7a5cf96bd3995f64e6b429 Mon Sep 17 00:00:00 2001
From: bdbkun <1308709+mbof@users.noreply.github.com>
Date: Wed, 21 Aug 2024 22:39:49 +0000
Subject: [PATCH] Add support for nautical units to the Time dialog.
---
.../src/lib/components/toolbar/tools/Time.svelte | 13 ++++++++++---
website/src/lib/units.ts | 4 ++++
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/website/src/lib/components/toolbar/tools/Time.svelte b/website/src/lib/components/toolbar/tools/Time.svelte
index c4b45ec6..e26774fc 100644
--- a/website/src/lib/components/toolbar/tools/Time.svelte
+++ b/website/src/lib/components/toolbar/tools/Time.svelte
@@ -10,7 +10,8 @@
import {
distancePerHourToSecondsPerDistance,
getConvertedVelocity,
- milesToKilometers
+ milesToKilometers,
+ nauticalMilesToKilometers
} from '$lib/units';
import { CalendarDate, type DateValue } from '@internationalized/date';
import { CalendarClock, CirclePlay, CircleStop, CircleX, Timer, Zap } from 'lucide-svelte';
@@ -129,6 +130,8 @@
}
if ($distanceUnits === 'imperial') {
speedValue = milesToKilometers(speedValue);
+ } else if ($distanceUnits === 'nautical') {
+ speedValue = nauticalMilesToKilometers(speedValue);
}
return speedValue;
}
@@ -190,8 +193,10 @@
{#if $distanceUnits === 'imperial'}
{$_('units.miles_per_hour')}
- {:else}
+ {:else if $distanceUnits === 'metric'}
{$_('units.kilometers_per_hour')}
+ {:else if $distanceUnits === 'nautical'}
+ {$_('units.knots')}
{/if}
{:else}
@@ -204,8 +209,10 @@
{#if $distanceUnits === 'imperial'}
{$_('units.minutes_per_mile')}
- {:else}
+ {:else if $distanceUnits === 'metric'}
{$_('units.minutes_per_kilometer')}
+ {:else if $distanceUnits === 'nautical'}
+ {$_('units.minutes_per_nautical_mile')}
{/if}
{/if}
diff --git a/website/src/lib/units.ts b/website/src/lib/units.ts
index 9035ee10..d251da4e 100644
--- a/website/src/lib/units.ts
+++ b/website/src/lib/units.ts
@@ -20,6 +20,10 @@ export function kilometersToNauticalMiles(value: number) {
return value * 0.539957;
}
+export function nauticalMilesToKilometers(value: number) {
+ return value * 1.852;
+}
+
export function celsiusToFahrenheit(value: number) {
return value * 1.8 + 32;
}