diff --git a/src/components/sequencing/Sequences.svelte b/src/components/sequencing/Sequences.svelte index 76e3a73cae..f236f0ebc4 100644 --- a/src/components/sequencing/Sequences.svelte +++ b/src/components/sequencing/Sequences.svelte @@ -51,7 +51,7 @@ workspaceId = event.detail; if (browser) { - setQueryParam(SearchParameters.WORKSPACE_ID, `${workspaceId}` ?? null); + setQueryParam(SearchParameters.WORKSPACE_ID, `${workspaceId ?? null}`); } } @@ -78,9 +78,8 @@ }} disabled={workspace === undefined} on:click={() => { - goto( - `${base}/sequencing/new${'?' + SearchParameters.WORKSPACE_ID + '=' + getSearchParameterNumber(SearchParameters.WORKSPACE_ID) ?? ''}`, - ); + const workspaceId = getSearchParameterNumber(SearchParameters.WORKSPACE_ID); + goto(`${base}/sequencing/new${workspaceId ? '?' + SearchParameters.WORKSPACE_ID + '=' + workspaceId : ''}`); }} > New Sequence diff --git a/src/utilities/sequence-editor/sequence-linter.ts b/src/utilities/sequence-editor/sequence-linter.ts index cb4580e34f..135d0e2a6a 100644 --- a/src/utilities/sequence-editor/sequence-linter.ts +++ b/src/utilities/sequence-editor/sequence-linter.ts @@ -20,7 +20,7 @@ import { TOKEN_COMMAND, TOKEN_ERROR, TOKEN_REPEAT_ARG, TOKEN_REQUEST } from '../ import { TimeTypes } from '../../enums/time'; import { getGlobals, sequenceAdaptation } from '../../stores/sequence-adaptation'; import { CustomErrorCodes } from '../../workers/customCodes'; -import { addDefaultArgs, quoteEscape } from '../codemirror/codemirror-utils'; +import { addDefaultArgs, isHexValue, parseNumericArg, quoteEscape } from '../codemirror/codemirror-utils'; import { closeSuggestion, computeBlocks, openSuggestion } from '../codemirror/custom-folder'; import { getBalancedDuration, @@ -1185,13 +1185,15 @@ function validateArgument( break; } const { max, min } = dictArg.range; - const nodeTextAsNumber = parseFloat(argText); + const nodeTextAsNumber = parseNumericArg(argText, dictArgType); + const isHex = isHexValue(argText); if (nodeTextAsNumber < min || nodeTextAsNumber > max) { + const numFormat = (n: number) => (isHex ? `0x${n.toString(16).toUpperCase()}` : n); const message = max !== min - ? `Number out of range. Range is between ${min} and ${max} inclusive.` - : `Number out of range. Range is ${min}.`; + ? `Number out of range. Range is between ${numFormat(min)} and ${numFormat(max)} inclusive.` + : `Number out of range. Range is ${numFormat(min)}.`; diagnostics.push({ actions: max === min