Add power conversion entries and responsive nav tweaks
This commit is contained in:
@@ -13,6 +13,8 @@
|
||||
let val2 = '';
|
||||
let val3 = '';
|
||||
let activeField: 1 | 2 | 3 = 1;
|
||||
let swapSnapshot: { val1: string; val2: string } | null = null;
|
||||
let isSwapFlipped = false;
|
||||
|
||||
$: has3 = ['3col', '3col-mul'].includes(config.type) || !!config.labels.in3;
|
||||
$: isTextInput = ['base', 'text-bin', 'bin-text', 'dec-frac', 'dms-dd', 'dd-dms'].includes(config.type);
|
||||
@@ -24,7 +26,13 @@
|
||||
|
||||
let paramsInitializing = true;
|
||||
|
||||
function resetSwapState() {
|
||||
swapSnapshot = null;
|
||||
isSwapFlipped = false;
|
||||
}
|
||||
|
||||
function handleInput(source: 1 | 2 | 3) {
|
||||
resetSwapState();
|
||||
activeField = source;
|
||||
const result = solve(config, source, val1, val2, val3);
|
||||
if (source !== 1) val1 = result.val1;
|
||||
@@ -33,14 +41,23 @@
|
||||
}
|
||||
|
||||
function swap() {
|
||||
[val1, val2] = [val2, val1];
|
||||
handleInput(1);
|
||||
if (isSwapFlipped && swapSnapshot) {
|
||||
val1 = swapSnapshot.val1;
|
||||
val2 = swapSnapshot.val2;
|
||||
resetSwapState();
|
||||
} else {
|
||||
swapSnapshot = { val1, val2 };
|
||||
[val1, val2] = [val2, val1];
|
||||
isSwapFlipped = true;
|
||||
}
|
||||
activeField = activeField === 1 ? 2 : 1;
|
||||
}
|
||||
|
||||
function clear() {
|
||||
val1 = '';
|
||||
val2 = '';
|
||||
val3 = '';
|
||||
resetSwapState();
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
|
||||
Reference in New Issue
Block a user