diff --git a/README.md b/README.md
index 057c91e2aa..ea3642aec3 100644
--- a/README.md
+++ b/README.md
@@ -70,10 +70,10 @@ https://user-images.githubusercontent.com/275584/218350457-bc2fdc3b-e667-4da5-a2
3. Make it flow! You can chain your scripts or scripts made by the community
shared on [WindmillHub](https://hub.windmill.dev).
- 
+ 
4. Build complex UI on top of your scripts and flows.
- 
+ 
Scripts and flows can also be triggered by a cron schedule '_/5 _ \* \* \*' or
through webhooks.
@@ -123,7 +123,7 @@ instance from local commands. See
### Running scripts locally
You can run your script locally easily, you simply need to pass the right
-environment variables for the `wmill` client library to fetch resource and
+environment variables for the `wmill` client library to fetch resources and
variables from your instance if necessary. See more:
diff --git a/frontend/src/lib/components/apps/components/buttons/AppButton.svelte b/frontend/src/lib/components/apps/components/buttons/AppButton.svelte
index 220bab3abb..007432bd82 100644
--- a/frontend/src/lib/components/apps/components/buttons/AppButton.svelte
+++ b/frontend/src/lib/components/apps/components/buttons/AppButton.svelte
@@ -67,8 +67,6 @@
}
}
- $: resolvedConfig?.triggerOnAppLoad && runnableComponent?.runComponent()
-
let errors: Record = {}
$: errorsMessage = Object.values(errors)
.filter((x) => x != '')
@@ -119,6 +117,7 @@
{render}
{outputs}
{extraKey}
+ refreshOnStart={resolvedConfig.triggerOnAppLoad}
>
{#if errorsMessage}
diff --git a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte
index a2ad55a79e..cd39fee424 100644
--- a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte
+++ b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte
@@ -34,6 +34,7 @@
export let recomputeOnInputChanged: boolean = false
export let loading = false
export let recomputableByRefreshButton: boolean = true
+ export let refreshOnStart: boolean = false
const {
worldStore,
@@ -54,13 +55,13 @@
$runnableComponents[id] = {
autoRefresh: autoRefresh && recomputableByRefreshButton,
+ refreshOnStart,
cb: async (inlineScript?: InlineScript) => {
await executeComponent(true, inlineScript)
}
}
if (!$worldStore.initializedComponents.includes(id)) {
- console.log('adding', id)
$worldStore.initializedComponents = [...$worldStore.initializedComponents, id]
}
diff --git a/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte b/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte
index c2392111e8..311bdf279a 100644
--- a/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte
+++ b/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte
@@ -40,6 +40,7 @@
export let recomputeIds: string[] = []
export let outputs: { result: Output; loading: Output }
export let extraKey: string | undefined = undefined
+ export let refreshOnStart: boolean = false
const { staticExporter, noBackend, componentControl, runnableComponents } =
getContext('AppViewerContext')
@@ -101,6 +102,7 @@
{:else if componentInput.type === 'runnable' && isRunnableDefined(componentInput)}
{
- if (!$runnableComponents?.[id]?.autoRefresh) {
+ if (
+ !$runnableComponents?.[id]?.autoRefresh &&
+ (!isFirstLoad || !$runnableComponents?.[id]?.refreshOnStart)
+ ) {
return
}
return $runnableComponents?.[id]?.cb?.()
diff --git a/frontend/src/lib/components/apps/types.ts b/frontend/src/lib/components/apps/types.ts
index 5b4f5555d7..fe80803b69 100644
--- a/frontend/src/lib/components/apps/types.ts
+++ b/frontend/src/lib/components/apps/types.ts
@@ -138,7 +138,14 @@ export type AppViewerContext = {
connectingInput: Writable
breakpoint: Writable
runnableComponents: Writable<
- Record Promise }>
+ Record<
+ string,
+ {
+ autoRefresh: boolean
+ refreshOnStart?: boolean
+ cb: (inlineScript?: InlineScript) => Promise
+ }
+ >
>
staticExporter: Writable any>>
appPath: string
diff --git a/frontend/src/routes/(root)/(logged)/+page.svelte b/frontend/src/routes/(root)/(logged)/+page.svelte
index 7eafd4536b..5a1a8a3f4f 100644
--- a/frontend/src/routes/(root)/(logged)/+page.svelte
+++ b/frontend/src/routes/(root)/(logged)/+page.svelte
@@ -23,7 +23,9 @@
type Tab = 'hubscripts' | 'hubflows' | 'hubapps' | 'workspace'
- let tab: Tab = (window.location.hash?.replace('#', '') as Tab | undefined) ?? 'workspace'
+ let tab: Tab = window.location.hash?.includes('#')
+ ? (window.location.hash?.replace('#', '') as Tab)
+ : 'workspace'
let filter: string = ''
let flowViewer: Drawer