From 521c4938ed773263f9a3b597631465736a3c733f Mon Sep 17 00:00:00 2001 From: Dhruv Ahuja Date: Thu, 6 Jul 2023 08:13:00 +0530 Subject: [PATCH] [wip]fix: use svelte component for optionsWidget --- frontend/src/components/widgets/WidgetLayout.svelte | 3 ++- frontend/src/components/widgets/WidgetRow.svelte | 4 +--- .../components/widgets/buttons/PopoverButton.svelte | 12 ++++++++---- frontend/src/wasm-communication/messages.ts | 4 +++- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/frontend/src/components/widgets/WidgetLayout.svelte b/frontend/src/components/widgets/WidgetLayout.svelte index dcd265ed13..7e8485ae40 100644 --- a/frontend/src/components/widgets/WidgetLayout.svelte +++ b/frontend/src/components/widgets/WidgetLayout.svelte @@ -1,5 +1,5 @@ diff --git a/frontend/src/components/widgets/WidgetRow.svelte b/frontend/src/components/widgets/WidgetRow.svelte index fb6d099c74..e2820a54eb 100644 --- a/frontend/src/components/widgets/WidgetRow.svelte +++ b/frontend/src/components/widgets/WidgetRow.svelte @@ -138,11 +138,9 @@ {/if} {@const popoverButton = narrowWidgetProps(component.props, "PopoverButton")} {#if popoverButton} - + {popoverButton.header} {popoverButton.text} - - {/if} {@const radioInput = narrowWidgetProps(component.props, "RadioInput")} diff --git a/frontend/src/components/widgets/buttons/PopoverButton.svelte b/frontend/src/components/widgets/buttons/PopoverButton.svelte index bc86a7c42d..553a6a7009 100644 --- a/frontend/src/components/widgets/buttons/PopoverButton.svelte +++ b/frontend/src/components/widgets/buttons/PopoverButton.svelte @@ -1,15 +1,18 @@ - {#if options_widget === undefined} + {#if optionsWidget === undefined} onClick()} icon={icon || "DropdownArrow"} size={16} {tooltip} data-floating-menu-spawner /> {:else} - onClick()} icon={icon || "DropdownArrow"} size={16} {options_widget} data-floating-menu-spawner /> + onClick()} icon={icon || "DropdownArrow"} size={16} options_widget={optionsWidget} data-floating-menu-spawner /> {/if} (open = detail)} type="Popover" direction="Bottom"> diff --git a/frontend/src/wasm-communication/messages.ts b/frontend/src/wasm-communication/messages.ts index 0c6cfab5cf..88d955a01e 100644 --- a/frontend/src/wasm-communication/messages.ts +++ b/frontend/src/wasm-communication/messages.ts @@ -4,6 +4,7 @@ import { Transform, Type, plainToClass } from "class-transformer"; import { type IconName, type IconSize } from "@graphite/utility-functions/icons"; import { type WasmEditorInstance, type WasmRawInstance } from "@graphite/wasm-communication/editor"; +import WidgetLayout from "~src/components/widgets/WidgetLayout.svelte"; export class JsMessage { // The marker provides a way to check if an object is a sub-class constructor for a jsMessage. @@ -932,7 +933,8 @@ export class PopoverButton extends WidgetProps { @Transform(({ value }: { value: string }) => value || undefined) tooltip!: string | undefined; - options_widget: WidgetLayout | undefined; + optionsWidget: WidgetLayout = defaultWidgetLayout(); + layoutTarget: unknown = undefined; } export type RadioEntryData = {