# How do you generate dynamically in Navigator the UI input widgets?

**URL:** <https://forum.canton.network/t/how-do-you-generate-dynamically-in-navigator-the-ui-input-widgets/6396>\
**Category:** App Development\
**Created:** [April 10, 2023, 10:20am UTC](https://forum.canton.network/t/how-do-you-generate-dynamically-in-navigator-the-ui-input-widgets/6396 "2023-04-10T10:20:12Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![gyorgybalazsi](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/gyorgybalazsi/32/684_2.png) [@gyorgybalazsi](https://forum.canton.network/u/gyorgybalazsi)\
**Post date:** [April 10, 2023, 10:20am UTC](https://forum.canton.network/t/how-do-you-generate-dynamically-in-navigator-the-ui-input-widgets/6396/1 "2023-04-10T10:20:12Z")

</div>

I want to create UI input widgets always mirroring the data types in the Daml model for myself.

---

<div class="post-metadata">

**Author:** ![cocreature](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/cocreature/32/36_2.png) [@cocreature](https://forum.canton.network/u/cocreature)\
**Post date:** [April 10, 2023, 5:18pm UTC](https://forum.canton.network/t/how-do-you-generate-dynamically-in-navigator-the-ui-input-widgets/6396/2 "2023-04-10T17:18:43Z")

</div>

I don’t think this is supported at the moment. Generally, I would recommend to build your own UI based on the react bindings and not rely on customizing navigator.

---

<div class="post-metadata">

**Author:** ![gyorgybalazsi](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/gyorgybalazsi/32/684_2.png) [@gyorgybalazsi](https://forum.canton.network/u/gyorgybalazsi)\
**Post date:** [April 10, 2023, 5:26pm UTC](https://forum.canton.network/t/how-do-you-generate-dynamically-in-navigator-the-ui-input-widgets/6396/3 "2023-04-10T17:26:20Z")

</div>

Yes, my question was not clearly formulated.

I don’t want to customize Navigator, I want to build my own UI in a way that the input widgets are dynamically generated.

I’m just interested how this works with Navigator to maybe get some inspiration.

---

<div class="post-metadata">

**Author:** ![cocreature](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/cocreature/32/36_2.png) [@cocreature](https://forum.canton.network/u/cocreature)\
**Post date:** [April 10, 2023, 5:33pm UTC](https://forum.canton.network/t/how-do-you-generate-dynamically-in-navigator-the-ui-input-widgets/6396/4 "2023-04-10T17:33:29Z")

</div>

Oh I see, if you want to build generic apps that are not specific to a given Daml model then you often have to fetch the packages from the ledger and parse them to gather various kinds of metadata, e.g., the list of choices. You’re largely on your own there but at a high-level you’ll have to do this:

1. Fetch the packages from the [package service]( The thing is the **contractId** which I’m trying to `show` and **persist** has been already created in a separate transaction)
2. Decode the [Daml-LF protobuf](https://github.com/digital-asset/daml/blob/b446fba6d886580d74fbedfb90d9820203c9eac2/daml-lf/archive/src/stable/protobuf/com/daml/daml_lf_1_15/daml_lf_1.proto)
3. Process the decoded Daml-LF in some form to extract whatever info your tooling needs.

Both the JSON API and Navigator do something similar here.

---

<div class="post-metadata">

**Author:** ![gyorgybalazsi](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/gyorgybalazsi/32/684_2.png) [@gyorgybalazsi](https://forum.canton.network/u/gyorgybalazsi)\
**Post date:** [April 10, 2023, 5:56pm UTC](https://forum.canton.network/t/how-do-you-generate-dynamically-in-navigator-the-ui-input-widgets/6396/5 "2023-04-10T17:56:26Z")

</div>

Thank you!
