@@ -92,8 +106,8 @@
-
-
+ {/snippet}
+ {#snippet actions()}
{#if !$userStore?.operator}
{#if app.canWrite}
@@ -284,5 +298,5 @@
menuOpen = true
}}
/>
-
+ {/snippet}
diff --git a/frontend/src/lib/components/common/table/FlowRow.svelte b/frontend/src/lib/components/common/table/FlowRow.svelte
index 6f9409ac9f..734b997e24 100644
--- a/frontend/src/lib/components/common/table/FlowRow.svelte
+++ b/frontend/src/lib/components/common/table/FlowRow.svelte
@@ -35,16 +35,31 @@
import FlowHistory from '$lib/components/flows/FlowHistory.svelte'
import { getDeployUiSettings } from '$lib/components/home/deploy_ui'
- export let flow: Flow & { has_draft?: boolean; draft_only?: boolean; canWrite: boolean }
- export let marked: string | undefined
- export let starred: boolean
- export let shareModal: ShareModal
- export let moveDrawer: MoveDrawer
- export let deleteConfirmedCallback: (() => void) | undefined
- export let deploymentDrawer: DeployWorkspaceDrawer
- export let errorHandlerMuted: boolean
- export let depth: number = 0
- export let menuOpen: boolean = false
+ interface Props {
+ flow: Flow & { has_draft?: boolean; draft_only?: boolean; canWrite: boolean }
+ marked: string | undefined
+ starred: boolean
+ shareModal: ShareModal
+ moveDrawer: MoveDrawer
+ deleteConfirmedCallback: (() => void) | undefined
+ deploymentDrawer: DeployWorkspaceDrawer
+ errorHandlerMuted: boolean
+ depth?: number
+ menuOpen?: boolean
+ }
+
+ let {
+ flow,
+ marked,
+ starred,
+ shareModal,
+ moveDrawer,
+ deleteConfirmedCallback = $bindable(),
+ deploymentDrawer,
+ errorHandlerMuted,
+ depth = 0,
+ menuOpen = $bindable(false)
+ }: Props = $props()
const dispatch = createEventDispatcher()
@@ -71,8 +86,8 @@
sendUserToast(`Could not delete this flow ${err.body}`, true)
}
}
- let scheduleEditor: ScheduleEditor
- let flowHistory: FlowHistory
+ let scheduleEditor: ScheduleEditor | undefined = $state(undefined)
+ let flowHistory: FlowHistory | undefined = $state(undefined)
{#if menuOpen}
@@ -97,15 +112,15 @@
canFavorite={!flow.draft_only}
{depth}
>
-
+ {#snippet badges()}
{#if flow.archived}
archived
{/if}
-
-
+ {/snippet}
+ {#snippet actions()}
{#if !$userStore?.operator}
{#if flow.canWrite && !flow.archived}
@@ -218,7 +233,7 @@
displayName: 'Deployments',
icon: HistoryIcon,
action: () => {
- flowHistory.open()
+ flowHistory?.open()
},
hide: $userStore?.operator
},
@@ -291,5 +306,5 @@
menuOpen = true
}}
/>
-
+ {/snippet}
diff --git a/frontend/src/lib/components/common/table/RawAppRow.svelte b/frontend/src/lib/components/common/table/RawAppRow.svelte
index 8f84ba3bd7..143b1beb8e 100644
--- a/frontend/src/lib/components/common/table/RawAppRow.svelte
+++ b/frontend/src/lib/components/common/table/RawAppRow.svelte
@@ -18,17 +18,31 @@
import { isDeployable } from '$lib/utils_deployable'
import { getDeployUiSettings } from '$lib/components/home/deploy_ui'
- export let app: ListableRawApp & { canWrite: boolean }
- export let marked: string | undefined
- export let starred: boolean
- export let shareModal: ShareModal
- export let moveDrawer: MoveDrawer
- export let deleteConfirmedCallback: (() => void) | undefined
- export let deploymentDrawer: DeployWorkspaceDrawer
- export let depth: number = 0
- export let menuOpen: boolean = false
+ interface Props {
+ app: ListableRawApp & { canWrite: boolean }
+ marked: string | undefined
+ starred: boolean
+ shareModal: ShareModal
+ moveDrawer: MoveDrawer
+ deleteConfirmedCallback: (() => void) | undefined
+ deploymentDrawer: DeployWorkspaceDrawer
+ depth?: number
+ menuOpen?: boolean
+ }
- let updateAppDrawer: Drawer
+ let {
+ app,
+ marked,
+ starred,
+ shareModal,
+ moveDrawer,
+ deleteConfirmedCallback = $bindable(),
+ deploymentDrawer,
+ depth = 0,
+ menuOpen = $bindable(false)
+ }: Props = $props()
+
+ let updateAppDrawer: Drawer | undefined = $state(undefined)
const dispatch = createEventDispatcher()
@@ -66,10 +80,10 @@
canFavorite={true}
{depth}
>
-
+ {#snippet badges()}
-
-
+ {/snippet}
+ {#snippet actions()}
{#if !$userStore?.operator}
{#if app.canWrite}
@@ -143,5 +157,5 @@
menuOpen = true
}}
/>
-
+ {/snippet}
diff --git a/frontend/src/lib/components/common/table/Row.svelte b/frontend/src/lib/components/common/table/Row.svelte
index 388c29845b..293f3ff65f 100644
--- a/frontend/src/lib/components/common/table/Row.svelte
+++ b/frontend/src/lib/components/common/table/Row.svelte
@@ -7,26 +7,55 @@
import { goto } from '$lib/navigation'
import { triggerableByAI } from '$lib/actions/triggerableByAI'
- export let marked: string | undefined
- export let starred: boolean
- export let canFavorite: boolean = true
- export let errorHandlerMuted: boolean = false
-
const dispatch = createEventDispatcher()
- export let aiId: string | undefined = undefined
- export let aiDescription: string | undefined = undefined
- export let kind: 'script' | 'flow' | 'app' | 'raw_app' = 'script'
- export let summary: string | undefined = undefined
- export let path: string
- export let href: string
- export let workspaceId: string
- export let depth: number = 0
+ interface Props {
+ marked: string | undefined
+ starred: boolean
+ canFavorite?: boolean
+ errorHandlerMuted?: boolean
+ aiId?: string | undefined
+ aiDescription?: string | undefined
+ kind?: 'script' | 'flow' | 'app' | 'raw_app'
+ summary?: string | undefined
+ path: string
+ href: string
+ workspaceId: string
+ depth?: number
+ badges?: import('svelte').Snippet
+ actions?: import('svelte').Snippet
+ }
+
+ let {
+ marked,
+ starred,
+ canFavorite = true,
+ errorHandlerMuted = false,
+ aiId = undefined,
+ aiDescription = undefined,
+ kind = 'script',
+ summary = undefined,
+ path,
+ href,
+ workspaceId,
+ depth = 0,
+ badges,
+ actions
+ }: Props = $props()
let displayPath: string = (depth === 0 ? path : path?.split('/')?.slice(-1)?.[0]) ?? ''
-
{ goto(href) }}}>
+
{
+ goto(href)
+ }
+ }}
+>
{/if}
- {#if $$slots.badges}
+ {#if badges}
-
+ {@render badges?.()}
{/if}
@@ -79,6 +108,6 @@
{/if}
-
+ {@render actions?.()}
diff --git a/frontend/src/lib/components/common/table/ScriptRow.svelte b/frontend/src/lib/components/common/table/ScriptRow.svelte
index babc5cf1ea..2d2486295f 100644
--- a/frontend/src/lib/components/common/table/ScriptRow.svelte
+++ b/frontend/src/lib/components/common/table/ScriptRow.svelte
@@ -42,17 +42,33 @@
import Tooltip from '$lib/components/Tooltip.svelte'
import { getDeployUiSettings } from '$lib/components/home/deploy_ui'
- export let script: Script & { canWrite: boolean; use_codebase: boolean }
- export let marked: string | undefined
- export let starred: boolean
- export let shareModal: ShareModal
- export let moveDrawer: MoveDrawer
- export let deploymentDrawer: DeployWorkspaceDrawer
- export let deleteConfirmedCallback: (() => void) | undefined
- export let errorHandlerMuted: boolean
- export let showCode: (path: string, summary: string) => void
- export let depth: number = 0
- export let menuOpen: boolean = false
+ interface Props {
+ script: Script & { canWrite: boolean; use_codebase: boolean }
+ marked: string | undefined
+ starred: boolean
+ shareModal: ShareModal
+ moveDrawer: MoveDrawer
+ deploymentDrawer: DeployWorkspaceDrawer
+ deleteConfirmedCallback: (() => void) | undefined
+ errorHandlerMuted: boolean
+ showCode: (path: string, summary: string) => void
+ depth?: number
+ menuOpen?: boolean
+ }
+
+ let {
+ script,
+ marked,
+ starred,
+ shareModal,
+ moveDrawer,
+ deploymentDrawer,
+ deleteConfirmedCallback = $bindable(),
+ errorHandlerMuted,
+ showCode,
+ depth = 0,
+ menuOpen = $bindable(false)
+ }: Props = $props()
const dispatch = createEventDispatcher()
@@ -81,10 +97,10 @@
dispatch('change')
sendUserToast(`Deleted script ${path}`)
}
- let scheduleEditor: ScheduleEditor
+ let scheduleEditor: ScheduleEditor | undefined = $state(undefined)
const dlt: 'delete' = 'delete'
- let versionsDrawerOpen: boolean = false
+ let versionsDrawerOpen: boolean = $state(false)
{#if menuOpen}
@@ -108,7 +124,7 @@
canFavorite={!script.draft_only}
{depth}
>
-