diff --git a/src/plugins/built-in/globalSearch/Calculator.svelte b/src/plugins/built-in/globalSearch/Calculator.svelte index 8197ab49..9202f8cb 100644 --- a/src/plugins/built-in/globalSearch/Calculator.svelte +++ b/src/plugins/built-in/globalSearch/Calculator.svelte @@ -64,7 +64,7 @@ isCalculating = true; // Let mathjs handle everything - const evaluated = math.evaluate(input); + const evaluated = math.evaluate(input.replace('**', '^')); // Format the result if (evaluated !== undefined) { @@ -103,7 +103,7 @@ } finally { isCalculating = false; } - }, 3); + }, 2); $effect(() => { processInput(searchTerm); @@ -119,17 +119,17 @@

Calculator

-
+
{searchTerm}
-
+
{inputUnit || 'Question'}
-
+
@@ -137,10 +137,10 @@ {#if !isCalculating}
-
+
{result}
-
+
{outputUnit || 'Result'}
diff --git a/src/plugins/built-in/globalSearch/SearchBar.svelte b/src/plugins/built-in/globalSearch/SearchBar.svelte index e0932f2e..951cd679 100644 --- a/src/plugins/built-in/globalSearch/SearchBar.svelte +++ b/src/plugins/built-in/globalSearch/SearchBar.svelte @@ -113,10 +113,15 @@ } }); + $effect(() => { + if (combinedResults.length === 0 && calculatorResult && commandPalleteOpen) { + selectedIndex = 0; + } + }); + const selectNext = () => { - if (calculatorResult && selectedIndex === -1) { - selectedIndex = 0; // Move from calculator to first search result - } else if (selectedIndex < combinedResults.length - 1) { + const maxIndex = (calculatorResult ? 1 : 0) + combinedResults.length - 1; + if (selectedIndex < maxIndex) { selectedIndex++; } }; @@ -124,18 +129,15 @@ const selectPrev = () => { if (selectedIndex > 0) { selectedIndex--; - } else if (selectedIndex === 0 && calculatorResult) { - selectedIndex = -1; // Move from first search result to calculator } }; const executeSelected = () => { - if (selectedIndex === -1 && calculatorResult) { - if (calculatorResult) { - navigator.clipboard.writeText(calculatorResult); - } + if (calculatorResult && selectedIndex === 0) { + navigator.clipboard.writeText(calculatorResult); } else { - combinedResults[selectedIndex]?.item.action(); + const resultIndex = calculatorResult ? selectedIndex - 1 : selectedIndex; + combinedResults[resultIndex]?.item.action(); } commandPalleteOpen = false; }; @@ -196,21 +198,21 @@ updateCalculatorState(e.detail)} /> {#if combinedResults.length > 0}
    {#each combinedResults as result, i (result.id)} - {@const isSelected = selectedIndex === i} + {@const isSelected = selectedIndex === (calculatorResult ? i + 1 : i)} {@const item = result.item}
  • {#if result.type === 'command'} {@const staticItem = item as StaticCommandItem}