# Create node with conditional properties (tabs)

**URL:** <https://discourse.nodered.org/t/create-node-with-conditional-properties-tabs/79224>\
**Category:** Developing Nodes\
**Created:** [15 June 2023 08:11 UTC](https://discourse.nodered.org/t/create-node-with-conditional-properties-tabs/79224 "2023-06-15T08:11:45Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![BennyMeg](https://avatars.discourse-cdn.com/v4/letter/b/d07c76/32.png) [@BennyMeg](https://discourse.nodered.org/u/BennyMeg)\
**Post date:** [15 June 2023 08:11 UTC](https://discourse.nodered.org/t/create-node-with-conditional-properties-tabs/79224/1 "2023-06-15T08:11:45Z")

</div>

I am developing a new node (in v3) that control motor movement.

Most of the properties are shared but some of them are conditional base of the motor operation mode, i.e., the user can choose to define propery1 or property2 but not both of them.

Can I something similar to tabs in the properties panel so the user can select what set of properties to define such that only the relevant properties are visible.  
I would like to avoid creating multiple nodes since there are operation mode and the node function is similar.

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [15 June 2023 08:19 UTC](https://discourse.nodered.org/t/create-node-with-conditional-properties-tabs/79224/2 "2023-06-15T08:19:10Z")

</div>

MAYBE you need to have variables set by the user in/on the node.  
I'm more of a _subflow_ person, so this analogy may be wrong.

But in subflows, you can set user defined variables that are used by that node.  
So that may cover your _property1_ and _property2_ question.

So I have never built a node as you are trying to do. As said: I used subflows.

Sorry I can't help more.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [16 June 2023 06:23 UTC](https://discourse.nodered.org/t/create-node-with-conditional-properties-tabs/79224/3 "2023-06-16T06:23:55Z")

</div>

It depends how different the modes are. Normally we only use tabs if there are too many options to fit on a single properties page sensibly. For different modes we normally use a select drop-down that then shows or hides subsequent relevant fields. Eg see the delay node change between delay and rate limit modes of operation.

---

<div class="post-metadata">

**Author:** ![BennyMeg](https://avatars.discourse-cdn.com/v4/letter/b/d07c76/32.png) [@BennyMeg](https://discourse.nodered.org/u/BennyMeg)\
**Post date:** [16 June 2023 07:15 UTC](https://discourse.nodered.org/t/create-node-with-conditional-properties-tabs/79224/4 "2023-06-16T07:15:23Z")

</div>

That looks like a great solution. Can you please point me to the node implementation? I could not find it in @node-red/node-red-nodes.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [16 June 2023 07:18 UTC](https://discourse.nodered.org/t/create-node-with-conditional-properties-tabs/79224/5 "2023-06-16T07:18:56Z")

</div>

The delay node (and others) are here [node-red/packages/node\_modules/@node-red/nodes/core/function at master · node-red/node-red · GitHub](https://github.com/node-red/node-red/tree/master/packages/node_modules/@node-red/nodes/core/function)  
The key logic is in the oneditprepare function of the .html file eg line 262

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [30 June 2023 07:19 UTC](https://discourse.nodered.org/t/create-node-with-conditional-properties-tabs/79224/6 "2023-06-30T07:19:44Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
