use context for error navigation

pull/2179/head
Richard Harris 7 years ago
parent 79bbeb7ec7
commit e4e29b9a31

@ -12,9 +12,10 @@
</script> </script>
<script> <script>
import { onMount, beforeUpdate, createEventDispatcher } from 'svelte'; import { onMount, beforeUpdate, createEventDispatcher, getContext } from 'svelte';
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
const { navigate } = getContext('REPL');
export let mode; export let mode;
export let code; export let code;
@ -266,7 +267,7 @@
{#if error.filename} {#if error.filename}
<span <span
class='filename' class='filename'
on:click="{() => dispatch('navigate', { filename: error.filename })}" on:click="{() => navigate({ filename: error.filename })}"
>{error.filename}</span> >{error.filename}</span>
{/if} {/if}

@ -34,7 +34,6 @@
{errorLoc} {errorLoc}
{warningCount} {warningCount}
on:change on:change
on:navigate
/> />
{/if} {/if}
</div> </div>

@ -14,5 +14,4 @@
{errorLoc} {errorLoc}
{warningCount} {warningCount}
on:change on:change
on:navigate
/> />

@ -5,7 +5,7 @@
import { decode } from 'sourcemap-codec'; import { decode } from 'sourcemap-codec';
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
const { values } = getContext('REPL'); const { values, navigate } = getContext('REPL');
export let bundle; export let bundle;
export let dom; export let dom;
@ -313,7 +313,7 @@
{#if error.loc} {#if error.loc}
<strong> <strong>
{#if error.filename} {#if error.filename}
<span class="filename" on:click="{() => dispatch('navigate', { filename: error.filename })}">{error.filename}</span> <span class="filename" on:click="{() => navigate({ filename: error.filename })}">{error.filename}</span>
{/if} {/if}
({error.loc.line}:{error.loc.column}) ({error.loc.line}:{error.loc.column})

@ -44,10 +44,6 @@
viewer.setProp(prop, value); viewer.setProp(prop, value);
updateValues(prop, value); updateValues(prop, value);
} }
function navigate(event) {
// TODO handle navigation from error messages
}
</script> </script>
<style> <style>
@ -134,7 +130,6 @@
{props} {props}
{sourceError} {sourceError}
bind:error={runtimeError} bind:error={runtimeError}
on:navigate={navigate}
on:binding="{e => setPropFromViewer(e.detail.prop, e.detail.value)}" on:binding="{e => setPropFromViewer(e.detail.prop, e.detail.value)}"
/> />
{:else} {:else}

@ -35,7 +35,16 @@
setContext('REPL', { setContext('REPL', {
components, components,
values, values,
selected selected,
navigate: filename => {
const name = filename.replace(/\.svelte$/, '');
console.error(`TODO navigate`);
// if (selected.name === name) return;
// selected = components.find(c => c.name === name);
}
}); });
$: { $: {
@ -134,15 +143,6 @@
workers.bundler.postMessage({ type: 'bundle', components: $components }); workers.bundler.postMessage({ type: 'bundle', components: $components });
} }
function navigate(filename) {
const name = filename.replace(/\.svelte$/, '');
console.error(`TODO navigate`);
// if (selected.name === name) return;
// selected = components.find(c => c.name === name);
}
$: if (sourceError && $selected) { $: if (sourceError && $selected) {
sourceErrorLoc = sourceError.filename === `${$selected.name}.${$selected.type}` sourceErrorLoc = sourceError.filename === `${$selected.name}.${$selected.type}`
? sourceError.start ? sourceError.start

Loading…
Cancel
Save