diff --git a/frontend/src/lib/components/RunForm.svelte b/frontend/src/lib/components/RunForm.svelte index a818e0a66b..c994acc348 100644 --- a/frontend/src/lib/components/RunForm.svelte +++ b/frontend/src/lib/components/RunForm.svelte @@ -67,7 +67,15 @@ export let isValid = true - $: window.location.hash = computeSharableHash(args) + $: onArgsChange(args) + + function onArgsChange(args: any) { + try { + window.location.hash = computeSharableHash(args) + } catch (e) { + console.error('Impossible to set hash in args', e) + } + }
diff --git a/frontend/src/lib/utils.ts b/frontend/src/lib/utils.ts index 42a18e7152..373a64886f 100644 --- a/frontend/src/lib/utils.ts +++ b/frontend/src/lib/utils.ts @@ -670,12 +670,18 @@ export function extractCustomProperties(styleStr: string): string { export function computeSharableHash(args: any) { let nargs = {} - Object.entries(args).forEach(([k, v]) => { + for (let k in args) { + let v = args[k] if (v !== undefined) { // if + let size = roughSizeOfObject(v) > 1000000 + if (size) { + console.error(`Value at key ${k} too big (${size}) to be shared`) + return '' + } nargs[k] = JSON.stringify(v) } - }) + } try { let r = new URLSearchParams(nargs).toString() return r.length > 1000000 ? '' : r