diff --git a/packages/builder/src/components/design/settings/controls/URLVariableTestInput.svelte b/packages/builder/src/components/design/settings/controls/URLVariableTestInput.svelte index a75d7e625d..2aeb6f2205 100644 --- a/packages/builder/src/components/design/settings/controls/URLVariableTestInput.svelte +++ b/packages/builder/src/components/design/settings/controls/URLVariableTestInput.svelte @@ -2,7 +2,7 @@ import { onMount } from "svelte" import { Input, Label } from "@budibase/bbui" import { previewStore, selectedScreen } from "@/stores/builder" - import type { ComponentContext } from "@budibase/types" + import type { AppContext, ComponentContext } from "@budibase/types" export let baseRoute = "" @@ -31,7 +31,7 @@ // This function is needed to repopulate the test value from componentContext // when a user navigates to another component and then back again - const updateTestValueFromContext = (context: ComponentContext | null) => { + const updateTestValueFromContext = (context: AppContext | null) => { if (context?.url && !testValue) { const { wild, ...urlParams } = context.url const queryParams = context.query diff --git a/packages/builder/src/stores/builder/preview.ts b/packages/builder/src/stores/builder/preview.ts index 0fef91d6b9..d95903b3a3 100644 --- a/packages/builder/src/stores/builder/preview.ts +++ b/packages/builder/src/stores/builder/preview.ts @@ -1,6 +1,6 @@ import { get } from "svelte/store" import { BudiStore } from "../BudiStore" -import { PreviewDevice, ComponentContext } from "@budibase/types" +import { PreviewDevice, ComponentContext, AppContext } from "@budibase/types" type PreviewEventHandler = (name: string, payload?: any) => void @@ -8,7 +8,7 @@ interface PreviewState { previewDevice: PreviewDevice previewEventHandler: PreviewEventHandler | null showPreview: boolean - selectedComponentContext: ComponentContext | null + selectedComponentContext: AppContext | null } const INITIAL_PREVIEW_STATE: PreviewState = { diff --git a/packages/types/src/ui/components/index.ts b/packages/types/src/ui/components/index.ts index 455763abda..c34174120c 100644 --- a/packages/types/src/ui/components/index.ts +++ b/packages/types/src/ui/components/index.ts @@ -58,17 +58,26 @@ export interface ComponentSetting { self: boolean } } +interface ComponentAction { + type: string + suffix?: string +} + +interface ComponentStaticContextValue { + label: string + key: string + type: string // technically this is a long list of options but there are too many to enumerate +} export interface ComponentContext { type: ComponentContextType - scope: ComponentContextScopes - actions: any[] - url?: Record - query?: string - state?: Record + scope?: ComponentContextScopes + actions?: ComponentAction[] + suffix?: string + values?: ComponentStaticContextValue[] } -export type ComponentContextType = "context" | "action" +export type ComponentContextType = "action" | "static" | "schema" | "form" export const enum ComponentContextScopes { Local = "local", diff --git a/packages/types/src/ui/stores/preview.ts b/packages/types/src/ui/stores/preview.ts index 4d09366ff5..75309f5dda 100644 --- a/packages/types/src/ui/stores/preview.ts +++ b/packages/types/src/ui/stores/preview.ts @@ -1 +1,3 @@ export type PreviewDevice = "desktop" | "tablet" | "mobile" + +export type AppContext = Record