Skip to content

Commit 3150e03

Browse files
committed
allow overflow for monaco tooltips, allow nulls for backgrounds/wdigets json schema
1 parent 49f5f9e commit 3150e03

5 files changed

Lines changed: 43 additions & 10 deletions

File tree

cmd/generateschema/main-generateschema.go

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,26 @@ type WidgetsMetaSchemaHints struct {
105105
TermDurable *bool `json:"term:durable,omitempty"`
106106
}
107107

108-
func generateSchema(template any, dir string) error {
108+
// allowNullValues wraps the top-level additionalProperties of a map schema with
109+
// anyOf: [originalSchema, {type: "null"}] so that setting a key to null is valid
110+
// (e.g. "bg@foo": null to remove a default entry).
111+
func allowNullValues(schema *jsonschema.Schema) {
112+
if schema.AdditionalProperties != nil && schema.AdditionalProperties != jsonschema.TrueSchema && schema.AdditionalProperties != jsonschema.FalseSchema {
113+
original := schema.AdditionalProperties
114+
schema.AdditionalProperties = &jsonschema.Schema{
115+
AnyOf: []*jsonschema.Schema{
116+
original,
117+
{Type: "null"},
118+
},
119+
}
120+
}
121+
}
122+
123+
func generateSchema(template any, dir string, allowNull bool) error {
109124
settingsSchema := jsonschema.Reflect(template)
125+
if allowNull {
126+
allowNullValues(settingsSchema)
127+
}
110128

111129
jsonSettingsSchema, err := json.MarshalIndent(settingsSchema, "", " ")
112130
if err != nil {
@@ -147,6 +165,7 @@ func generateWidgetsSchema(dir string) error {
147165

148166
widgetsTemplate := make(map[string]wconfig.WidgetConfigType)
149167
widgetsSchema := r.Reflect(&widgetsTemplate)
168+
allowNullValues(widgetsSchema)
150169

151170
jsonWidgetsSchema, err := json.MarshalIndent(widgetsSchema, "", " ")
152171
if err != nil {
@@ -163,19 +182,19 @@ func generateWidgetsSchema(dir string) error {
163182
}
164183

165184
func main() {
166-
err := generateSchema(&wconfig.SettingsType{}, WaveSchemaSettingsFileName)
185+
err := generateSchema(&wconfig.SettingsType{}, WaveSchemaSettingsFileName, false)
167186
if err != nil {
168187
log.Fatalf("settings schema error: %v", err)
169188
}
170189

171190
connectionTemplate := make(map[string]wconfig.ConnKeywords)
172-
err = generateSchema(&connectionTemplate, WaveSchemaConnectionsFileName)
191+
err = generateSchema(&connectionTemplate, WaveSchemaConnectionsFileName, false)
173192
if err != nil {
174193
log.Fatalf("connections schema error: %v", err)
175194
}
176195

177196
aiPresetsTemplate := make(map[string]wconfig.AiSettingsType)
178-
err = generateSchema(&aiPresetsTemplate, WaveSchemaAiPresetsFileName)
197+
err = generateSchema(&aiPresetsTemplate, WaveSchemaAiPresetsFileName, false)
179198
if err != nil {
180199
log.Fatalf("ai presets schema error: %v", err)
181200
}
@@ -186,13 +205,13 @@ func main() {
186205
}
187206

188207
backgroundsTemplate := make(map[string]wconfig.BackgroundConfigType)
189-
err = generateSchema(&backgroundsTemplate, WaveSchemaBackgroundsFileName)
208+
err = generateSchema(&backgroundsTemplate, WaveSchemaBackgroundsFileName, true)
190209
if err != nil {
191210
log.Fatalf("backgrounds schema error: %v", err)
192211
}
193212

194213
waveAITemplate := make(map[string]wconfig.AIModeConfigType)
195-
err = generateSchema(&waveAITemplate, WaveSchemaWaveAIFileName)
214+
err = generateSchema(&waveAITemplate, WaveSchemaWaveAIFileName, false)
196215
if err != nil {
197216
log.Fatalf("waveai schema error: %v", err)
198217
}

frontend/app/view/codeeditor/codeeditor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ export function CodeEditor({ blockId, text, language, fileName, readonly, onChan
9393
}, [minimapEnabled, stickyScrollEnabled, wordWrap, fontSize, readonly]);
9494

9595
return (
96-
<div className="flex flex-col w-full h-full overflow-hidden items-center justify-center">
96+
<div className="flex flex-col w-full h-full items-center justify-center">
9797
<div className="flex flex-col h-full w-full" ref={divRef}>
9898
<MonacoCodeEditor
9999
readonly={readonly}

frontend/app/view/waveconfig/waveconfig.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ const WaveConfigView = memo(({ blockId, model }: ViewComponentProps<WaveConfigVi
276276
</button>
277277
</div>
278278
)}
279-
<div className="flex-1 overflow-hidden">
279+
<div className="flex-1 min-h-0">
280280
{isLoading ? (
281281
<div className="flex items-center justify-center h-full text-muted-foreground">
282282
Loading...

schema/backgrounds.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,14 @@
4040
}
4141
},
4242
"additionalProperties": {
43-
"$ref": "#/$defs/BackgroundConfigType"
43+
"anyOf": [
44+
{
45+
"$ref": "#/$defs/BackgroundConfigType"
46+
},
47+
{
48+
"type": "null"
49+
}
50+
]
4451
},
4552
"type": "object"
4653
}

schema/widgets.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,14 @@
224224
}
225225
},
226226
"additionalProperties": {
227-
"$ref": "#/$defs/WidgetConfigType"
227+
"anyOf": [
228+
{
229+
"$ref": "#/$defs/WidgetConfigType"
230+
},
231+
{
232+
"type": "null"
233+
}
234+
]
228235
},
229236
"type": "object"
230237
}

0 commit comments

Comments
 (0)