Custom UI for Editing Forge Macro

UPDATE: Looks like what I’m trying to do isn’t supported by Forge yet. Nothing to see here, nothing to see. :slight_smile:

So, I’m currently trying to develop a custom UI with a Forge macro module. While I can build a macro that has its own custom UI for display, I’m not sure how to craft a custom config function. It’s not as simple as registering a custom function like it is for the resolver function. If I do that, I get a screen like this when I click the macro’s edit button in the editor (see screenshot).

My best bet, looking at the type signature, is that I need to export something that matches the return type of the render function:

export declare const render: (elem: ForgeElement) => (payload: LegacyBackendRuntimePayload, runtimeContext?: BackendRuntimeContext | undefined) => Promise<LegacyClientEffect[]>;

That seems suspect, though, as I don’t necessarily want to be using the ForgeElement types. The whole goal is to create my own custom UI for editing macro parameters so that I can include complex inputs, like Page Pickers. Is this simply impossible at present in Forge? Or can I somehow shoe-horn in the old connect modules for a custom macro editing experience?

I’ve got a sample repo at Bitbucket that I’ve been playing around with. Latest commit shows the naive attempt at using a resolver function, described above.

1 Like