Refactor the WidgetLayout struct to remove SubLayout and avoid sending LayoutTarget to frontend

This commit is contained in:
Keavon Chambers
2025-12-04 02:44:54 -08:00
parent 4581689d9c
commit 3c4ad8b720
50 changed files with 207 additions and 247 deletions
+7 -7
View File
@@ -3,7 +3,6 @@ import { writable } from "svelte/store";
import { type Editor } from "@graphite/editor";
import { type IconName } from "@graphite/icons";
import {
defaultWidgetLayout,
DisplayDialog,
DisplayDialogDismiss,
UpdateDialogButtons,
@@ -11,6 +10,7 @@ import {
UpdateDialogColumn2,
patchWidgetLayout,
TriggerDisplayThirdPartyLicensesDialog,
type LayoutGroup,
} from "@graphite/messages";
export function createDialogState(editor: Editor) {
@@ -18,9 +18,9 @@ export function createDialogState(editor: Editor) {
visible: false,
title: "",
icon: "" as IconName,
buttons: defaultWidgetLayout(),
column1: defaultWidgetLayout(),
column2: defaultWidgetLayout(),
buttons: [] as LayoutGroup[],
column1: [] as LayoutGroup[],
column2: [] as LayoutGroup[],
// Special case for the crash dialog because we cannot handle button widget callbacks from Rust once the editor has panicked
panicDetails: "",
});
@@ -44,9 +44,9 @@ export function createDialogState(editor: Editor) {
state.title = "Crash";
state.panicDetails = panicDetails;
state.column1 = defaultWidgetLayout();
state.column2 = defaultWidgetLayout();
state.buttons = defaultWidgetLayout();
state.column1 = [];
state.column2 = [];
state.buttons = [];
return state;
});
+7 -7
View File
@@ -4,7 +4,6 @@ import { writable } from "svelte/store";
import { type Editor } from "@graphite/editor";
import {
defaultWidgetLayout,
patchWidgetLayout,
UpdateDocumentBarLayout,
UpdateDocumentModeLayout,
@@ -14,17 +13,18 @@ import {
UpdateNodeGraphControlBarLayout,
UpdateGraphViewOverlay,
UpdateGraphFadeArtwork,
type LayoutGroup,
} from "@graphite/messages";
export function createDocumentState(editor: Editor) {
const state = writable({
// Layouts
documentModeLayout: defaultWidgetLayout(),
toolOptionsLayout: defaultWidgetLayout(),
documentBarLayout: defaultWidgetLayout(),
toolShelfLayout: defaultWidgetLayout(),
workingColorsLayout: defaultWidgetLayout(),
nodeGraphControlBarLayout: defaultWidgetLayout(),
documentModeLayout: [] as LayoutGroup[],
toolOptionsLayout: [] as LayoutGroup[],
documentBarLayout: [] as LayoutGroup[],
toolShelfLayout: [] as LayoutGroup[],
workingColorsLayout: [] as LayoutGroup[],
nodeGraphControlBarLayout: [] as LayoutGroup[],
// Graph view overlay
graphViewOverlayOpen: false,
fadeArtwork: 100,