1
0
Fork 0
mirror of synced 2024-09-20 19:33:10 +12:00

authenticated iframe PoC

This commit is contained in:
Martin McKeaveney 2024-08-06 18:46:23 +01:00
parent e16929b574
commit ac62a9a5a8
3 changed files with 140 additions and 104 deletions

View file

@ -56,6 +56,7 @@ export const getBindableProperties = (asset, componentId) => {
const stateBindings = getStateBindings() const stateBindings = getStateBindings()
const selectedRowsBindings = getSelectedRowsBindings(asset) const selectedRowsBindings = getSelectedRowsBindings(asset)
const roleBindings = getRoleBindings() const roleBindings = getRoleBindings()
const embedBindings = getEmbedBindings()
return [ return [
...contextBindings, ...contextBindings,
...urlBindings, ...urlBindings,
@ -64,6 +65,7 @@ export const getBindableProperties = (asset, componentId) => {
...deviceBindings, ...deviceBindings,
...selectedRowsBindings, ...selectedRowsBindings,
...roleBindings, ...roleBindings,
...embedBindings,
] ]
} }
@ -823,6 +825,26 @@ export const getActionBindings = (actions, actionId) => {
return bindings return bindings
} }
/**
* Gets all device bindings for embeds.
*/
const getEmbedBindings = () => {
let bindings = []
const safeEmbed = makePropSafe("embed")
bindings = [
{
type: "context",
runtimeBinding: `${safeEmbed}.`,
readableBinding: `ParentData`,
category: "Embed",
icon: "DevicePhone",
display: { type: "object", name: "Parent Data" },
},
]
return bindings
}
/** /**
* Gets the schema for a certain datasource plus. * Gets the schema for a certain datasource plus.
* The options which can be passed in are: * The options which can be passed in are:

View file

@ -42,6 +42,7 @@
import FreeFooter from "components/FreeFooter.svelte" import FreeFooter from "components/FreeFooter.svelte"
import MaintenanceScreen from "components/MaintenanceScreen.svelte" import MaintenanceScreen from "components/MaintenanceScreen.svelte"
import SnippetsProvider from "./context/SnippetsProvider.svelte" import SnippetsProvider from "./context/SnippetsProvider.svelte"
import EmbedProvider from "./context/EmbedProvider.svelte"
// Provide contexts // Provide contexts
setContext("sdk", SDK) setContext("sdk", SDK)
@ -160,6 +161,7 @@
{#if $environmentStore.maintenance.length > 0} {#if $environmentStore.maintenance.length > 0}
<MaintenanceScreen maintenanceList={$environmentStore.maintenance} /> <MaintenanceScreen maintenanceList={$environmentStore.maintenance} />
{:else} {:else}
<EmbedProvider>
<DeviceBindingsProvider> <DeviceBindingsProvider>
<UserBindingsProvider> <UserBindingsProvider>
<StateBindingsProvider> <StateBindingsProvider>
@ -273,6 +275,7 @@
</StateBindingsProvider> </StateBindingsProvider>
</UserBindingsProvider> </UserBindingsProvider>
</DeviceBindingsProvider> </DeviceBindingsProvider>
</EmbedProvider>
{/if} {/if}
</div> </div>
<KeyboardManager /> <KeyboardManager />

View file

@ -0,0 +1,11 @@
<script>
import Provider from "./Provider.svelte"
$: data = window.parent?.data
$: console.log("parentWindow", data)
</script>
<Provider key="embed" {data}>
<slot />
</Provider>