[tw5] Changing tiddler on switch of sidebar tab

I’m building a a documentation TW5 and was hoping to dynamically toggle the vanilla theme’s $:/themes/tiddlywiki/vanilla/options/sidebarlayout tiddler between fluid-fixed and fixed-fluid based upon which sidebar tab is loaded. Is there a straightforward way to do this? It looks as though Actions will let me make the change, but I don’t know how to capture the event. Is there a simple mechanism.

The broader picture is that I have lots of content including large diagrams and at least one Reveal presentation and much more, much of which is better shown in a wide story river, but I also want to include TiddlyMindMap and be able to easily edit and adjust the diagram, which seems to need a wide sidebar. I thought that if I could simply change that tiddler before the new sidebar tab is shown, it would handle this. But other suggestions for how to achieve this behavior would be gratefully accepted.

Thanks,

– Scott

I don’t know if I understand you.

In $:/core/ui/SideBarSegments/tabs you have the tabs macro, it save the current tab in a tiddler and it has a optional parameter for actions. Tabs macro documentation

Maybe you can use the action parameter to use an action-setfield to change the text of the tiddler $:/themes/tiddlywiki/vanilla/options/sidebarlayout depends on the selected tab with a filtered transclusion

That looks like it might work. I still have to figure out the conditional logic, but that should be doable.

Thank you very much, Álvaro!

1 Like

The conditional would be something like

{{{ [[$:/state/tab/sidebar–595412856]get[text]match[$:/core/ui/SideBar/Open]then[fluid-fixed]else[fixed-fluid]] }}}

You can create a tiddler with the above filtered transclusion and then you can view how the text changes depend on of current tab in sidebar ($:/core/ui/SideBar/Open vs the rest of tabs)

Thank you very much. I won’t get back to this until midweek, but it does look as though it will work.

Cheer,

– Scott

1 Like

I guess I have the syntax wrong. This isn’t working:

<$macrocall $name="tabs" tabsList="[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]" default={{$:/config/DefaultSidebarTab}} state="$:/state/tab/sidebar" class="tc-sidebar-tabs-main" explicitState="$:/state/tab/sidebar--595412856" $action-setfield="$tiddler= $:/themes/tiddlywiki/vanilla/options/sidebarlayout text={{{ [[$:/state/tab/sidebar--595412856]get[text]match[$:/core/ui/SideBar/Open]then[fluid-fixed]else[fixed-fluid]] }}}"/>

I’m not sure how to embed the action-setfield inside the macrocall. The examples all have them inside $button widgets.

Any suggestions?

– Scott

In the macrocall widget you have to use the params of the macro. It would be action=X , where X is the your action-setfield widget, but I don’t know if we can use the widget directly inside the triple doble quotes “”" or we need create a macro for the action (something like documentation does in Using action string attributes in ActionWidgets but using the macrocall instead of button)

Thank you for your time and your suggestions. I think this seems to be beyond my beginner’s knowledge level on TW. I am using the TW for a presentation next week and need to spend more time on the content. I hope to get back to this to figure it out sometime soon, because I would still love to have this, but I will drop it for now.

Thanks, again Álvaro,

– Scott