From 976c3d49dd3e44d550dc121b54a4bc8219b76c0d Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Tue, 3 Jan 2023 10:38:13 +0100 Subject: [PATCH] add context to context panel in apps --- .../components/apps/editor/AppEditor.svelte | 5 +- .../apps/editor/AppEditorHeader.svelte | 32 +++--- .../components/apps/editor/AppPreview.svelte | 3 +- .../editor/contextPanel/ContextPanel.svelte | 99 ++++++++++--------- frontend/src/lib/components/apps/rx.ts | 10 +- .../(logged)/apps/edit/[...path]/+page.svelte | 3 +- .../(logged)/apps/get/[...path]/+page.svelte | 3 +- .../[workspace]/[...secret]/+page.svelte | 2 + 8 files changed, 93 insertions(+), 64 deletions(-) diff --git a/frontend/src/lib/components/apps/editor/AppEditor.svelte b/frontend/src/lib/components/apps/editor/AppEditor.svelte index b7fdfcea64..bdbed8d7a7 100644 --- a/frontend/src/lib/components/apps/editor/AppEditor.svelte +++ b/frontend/src/lib/components/apps/editor/AppEditor.svelte @@ -86,7 +86,9 @@ mounted = true }) - $: mounted && ($worldStore = buildWorld($staticOutputs, $worldStore)) + $: context = { email: $userStore?.email, username: $userStore?.username } + + $: mounted && ($worldStore = buildWorld($staticOutputs, $worldStore, context)) $: previewing = $mode === 'preview' $: width = $breakpoint === 'sm' ? 'min-w-[400px] max-w-[656px]' : 'min-w-[710px] w-full' @@ -118,6 +120,7 @@ {breakpoint} {policy} isEditor + {context} /> {:else} diff --git a/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte b/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte index f18d3e8433..a35828d323 100644 --- a/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte +++ b/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte @@ -218,11 +218,13 @@ -
-
+
+
-
+
@@ -245,18 +247,22 @@
- -   The max width is 1168px and the content stay centered instead of taking the full page - width - - +
- + - - {getComponentNameById(componentId)} - -
+ + + {getComponentNameById(componentId)} + +
- -
- +
+ - { - connectInput(componentId, detail) - }} - /> + { + connectInput(componentId, detail) + }} + /> +
{/if} {/each} diff --git a/frontend/src/lib/components/apps/rx.ts b/frontend/src/lib/components/apps/rx.ts index 5763e245be..fab701947d 100644 --- a/frontend/src/lib/components/apps/rx.ts +++ b/frontend/src/lib/components/apps/rx.ts @@ -25,11 +25,17 @@ export type World = { export function buildWorld( components: Record, - previousWorld: World | undefined + previousWorld: World | undefined, + context: Record ): World { const newWorld = buildObservableWorld() - const outputsById: Record>> = {} const state = writable(0) + + const outputsById: Record>> = { + context: Object.fromEntries(Object.entries(context).map(([k, v]) => { + return [k, newWorld.newOutput('context', k, state, v)] + })) + } for (const [k, outputs] of Object.entries(components)) { outputsById[k] = {} diff --git a/frontend/src/routes/(root)/(logged)/apps/edit/[...path]/+page.svelte b/frontend/src/routes/(root)/(logged)/apps/edit/[...path]/+page.svelte index a08a44b37e..20b30cfff7 100644 --- a/frontend/src/routes/(root)/(logged)/apps/edit/[...path]/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/apps/edit/[...path]/+page.svelte @@ -1,7 +1,7 @@