Skip to content

Commit f209d52

Browse files
committed
reset button/modal, auto complete, wip error display, reactive update theme
1 parent 361a5ff commit f209d52

File tree

7 files changed

+601
-423
lines changed

7 files changed

+601
-423
lines changed

src/lib/components/DualShaderPreview.svelte

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,34 @@
55
66
let sharedCameraRef: THREE.PerspectiveCamera | null = null;
77
let sharedTargetRef = new THREE.Vector3(0, 0, 0);
8-
98
let shaderErrors: string[] = [];
109
10+
// Store reference shaders separately, these don't change during editing
11+
let referenceVertex = '';
12+
let referenceFragment = '';
13+
14+
// Update reference shaders only when task changes, not when user edits
15+
$: if ($taskStore.task) {
16+
referenceVertex = $taskStore.task.referenceVertexShader;
17+
referenceFragment = $taskStore.task.referenceFragmentShader;
18+
}
19+
1120
function setShaderErrors(errors: string[]) {
1221
shaderErrors = errors;
1322
}
1423
</script>
1524

1625
<div class="relative w-full h-full p-4">
1726
<div class="grid grid-cols-1 md:grid-cols-2 gap-x-4 gap-y-4 h-full">
18-
<!-- Reference Shader -->
27+
<!-- Reference Shader - Only recompiles when task changes -->
1928
<div class="flex flex-col min-h-[200px] md:min-h-0 h-full">
2029
<h3 class="text-xl font-medium text-muted-background pb-2">Reference</h3>
2130
<div class="relative flex-1">
2231
{#if $taskStore.task}
2332
<ShaderPreview
2433
task={$taskStore.task}
25-
vertexShader={$taskStore.task.referenceVertexShader}
26-
fragmentShader={$taskStore.task.referenceFragmentShader}
34+
vertexShader={referenceVertex}
35+
fragmentShader={referenceFragment}
2736
bind:sharedCameraRef
2837
bind:sharedTargetRef
2938
/>
@@ -35,7 +44,7 @@
3544
</div>
3645
</div>
3746

38-
<!-- User Output Shader -->
47+
<!-- User Output Shader - Recompiles on every edit -->
3948
<div class="flex flex-col min-h-[200px] md:min-h-0 h-full">
4049
<h3 class="text-xl font-medium text-muted-background pb-2">Output</h3>
4150
<div class="relative flex-1">
@@ -56,4 +65,4 @@
5665
</div>
5766
</div>
5867
</div>
59-
</div>
68+
</div>

src/lib/components/MobileHeader.svelte

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script lang="ts">
22
import { useSidebar } from "$lib/components/ui/sidebar/index.js";
33
import { PanelLeft } from "lucide-svelte";
4-
import { asset, base } from "$app/paths"; // <- import base
4+
import { asset, base } from "$app/paths";
55
import { IsMobile } from '$lib/hooks/is-mobile.svelte';
66
import { goto } from "$app/navigation";
77
@@ -30,18 +30,15 @@
3030

3131
<!-- Sidebar toggle button -->
3232
<button
33-
on:click={toggleSidebar}
33+
onclick={toggleSidebar}
3434
class="absolute left-4 p-2 rounded-md hover:bg-muted/50 transition"
3535
aria-label="Toggle sidebar"
3636
>
3737
<PanelLeft class="w-5 h-5 text-foreground" />
3838
</button>
3939

4040
<!-- Logo + title clickable -->
41-
<a
42-
class="flex items-center gap-2 cursor-pointer"
43-
on:click={navigateHome}
44-
>
41+
<a class="flex items-center gap-2 cursor-pointer" onclick={navigateHome}>
4542
<img src={asset('/favicon.svg')} alt="ShaderLab Logo" class="w-6 h-6 dark:invert" />
4643
<span class="font-semibold text-xl text-foreground">ShaderLab</span>
4744
</a>

0 commit comments

Comments
 (0)