diff --git a/frontend/src/lib/components/ScriptVersionHistory.svelte b/frontend/src/lib/components/ScriptVersionHistory.svelte index 1cdbf0889b..74783882e0 100644 --- a/frontend/src/lib/components/ScriptVersionHistory.svelte +++ b/frontend/src/lib/components/ScriptVersionHistory.svelte @@ -8,7 +8,9 @@ import FlowModuleScript from './flows/content/FlowModuleScript.svelte' import { createEventDispatcher } from 'svelte' import Button from './common/button/Button.svelte' - import { ExternalLink, Pencil, ArrowRight, X } from 'lucide-svelte' + import { ExternalLink, Pencil, ArrowRight, X, Diff, Code } from 'lucide-svelte' + import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte' + import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte' const dispatch = createEventDispatcher() @@ -19,6 +21,7 @@ let deploymentMsgUpdate: string | undefined = undefined let selectedVersion: ScriptHistory | undefined = undefined + let selectedVersionIndex: number | undefined = undefined let versions: ScriptHistory[] | undefined = undefined let loading: boolean = false @@ -53,6 +56,9 @@ } loadVersions() + + let showDiff: boolean = false + let previousHash: string | undefined = undefined @@ -62,17 +68,34 @@ {#if !loading} {#if versions && versions.length > 0}
- {#each versions ?? [] as version} + {#each versions ?? [] as version, versionIndex} +
{ selectedVersion = version + selectedVersionIndex = versionIndex + + if (showDiff && versions && selectedVersionIndex === versions.length - 1) { + showDiff = false + } + + const availableVersions = versions?.slice(selectedVersionIndex + 1) + + if ( + previousHash && + !availableVersions?.find((v) => v.script_hash === previousHash) + ) { + previousHash = availableVersions?.[0]?.script_hash + } + deploymentMsgUpdate = undefined deploymentMsgUpdateMode = false }} @@ -168,7 +191,41 @@ {/if} - + + {#if selectedVersionIndex !== undefined && versions?.slice(selectedVersionIndex + 1).length} +
+
+ + + + +
+ + {#if showDiff} +
Versions:
+ + {/if} +
+ {:else} +
No previous version found
+ {/if} +
{/key} {:else} diff --git a/frontend/src/lib/components/flows/content/FlowModuleScript.svelte b/frontend/src/lib/components/flows/content/FlowModuleScript.svelte index 0ed67d672f..a019ae2cbc 100644 --- a/frontend/src/lib/components/flows/content/FlowModuleScript.svelte +++ b/frontend/src/lib/components/flows/content/FlowModuleScript.svelte @@ -1,5 +1,6 @@
@@ -47,7 +66,20 @@ {#if notFound}
script not found at {path} in workspace {$workspaceStore}
{:else if showAllCode} - + {#if showDiff} + {#key previousCode + code} + + {/key} + {:else} + + {/if} {:else}
diff --git a/frontend/src/routes/(root)/(logged)/scripts/get/[...hash]/+page.svelte b/frontend/src/routes/(root)/(logged)/scripts/get/[...hash]/+page.svelte index 5e999d7089..b8f8ade638 100644 --- a/frontend/src/routes/(root)/(logged)/scripts/get/[...hash]/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/scripts/get/[...hash]/+page.svelte @@ -475,7 +475,7 @@ {#if script} - (versionsDrawerOpen = false)}> + (versionsDrawerOpen = false)} noPadding>