11import type { BrickEventHandler , BrickEventsMap } from "@next-core/types" ;
2- import type { Component , EventHandler } from "@next-tsx/parser" ;
2+ import type {
3+ Component ,
4+ EventHandler ,
5+ TypeEventHandlerCallback ,
6+ } from "@next-tsx/parser" ;
37import type { ConvertOptions } from "./interfaces.js" ;
48
59export function convertEvents ( component : Component , options : ConvertOptions ) {
@@ -99,18 +103,11 @@ function convertEventHandler(
99103 ? "state.refresh"
100104 : "context.refresh" ,
101105 args : [ handler . payload . name ] ,
106+ callback : convertCallback ( handler . callback , options ) ,
102107 } ;
103108 case "call_api" : {
104109 const { api, http, tool, params, isRawProvider } = handler . payload ;
105110
106- const success = handler . callback ?. success
107- ? convertEventHandlers ( handler . callback . success , options )
108- : undefined ;
109-
110- const error = handler . callback ?. error
111- ? convertEventHandlers ( handler . callback . error , options )
112- : undefined ;
113-
114111 return {
115112 key : handler . key ,
116113 ...( isRawProvider
@@ -132,12 +129,21 @@ function convertEventHandler(
132129 useProvider : `${ api } ${ api . includes ( ":" ) ? "" : ":*" } ` ,
133130 params,
134131 } ) ,
135- callback : {
136- ...( success && { success } ) ,
137- ...( error && { error } ) ,
138- } ,
132+ callback : convertCallback ( handler . callback , options ) ,
139133 } ;
140134 }
135+ case "update_ref" :
136+ return {
137+ key : handler . key ,
138+ ...( handler . payload . scope === "template"
139+ ? {
140+ targetRef : handler . payload . ref ,
141+ }
142+ : {
143+ target : `${ options . rootId ? `[data-root-id="${ options . rootId } "] ` : "" } [data-ref="${ handler . payload . ref } "]` ,
144+ } ) ,
145+ properties : handler . payload . properties ,
146+ } ;
141147 case "call_ref" :
142148 return {
143149 key : handler . key ,
@@ -208,3 +214,24 @@ function convertEventHandler(
208214 } ;
209215 }
210216}
217+
218+ function convertCallback (
219+ callback : TypeEventHandlerCallback | undefined ,
220+ options : ConvertOptions
221+ ) : {
222+ success ?: BrickEventHandler [ ] ;
223+ error ?: BrickEventHandler [ ] ;
224+ } {
225+ const success = callback ?. success
226+ ? convertEventHandlers ( callback . success , options )
227+ : undefined ;
228+
229+ const error = callback ?. error
230+ ? convertEventHandlers ( callback . error , options )
231+ : undefined ;
232+
233+ return {
234+ ...( success && { success } ) ,
235+ ...( error && { error } ) ,
236+ } ;
237+ }
0 commit comments