Changing tiddler on switch of sidebar tab

78 views
Skip to first unread message

Scott Sauyet

unread,
Nov 29, 2021, 4:08:22 PM11/29/21
to TiddlyWiki
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

Álvaro

unread,
Dec 3, 2021, 7:50:55 AM12/3/21
to TiddlyWiki

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

Scott Sauyet

unread,
Dec 3, 2021, 6:06:07 PM12/3/21
to TiddlyWiki
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!

Álvaro

unread,
Dec 4, 2021, 12:21:30 PM12/4/21
to TiddlyWiki
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)

Scott Sauyet

unread,
Dec 6, 2021, 8:22:21 AM12/6/21
to TiddlyWiki
Thank you very much.  I won't get back to this until midweek, but it does look as though it will work. 

Cheer,

  -- Scott

Scott Sauyet

unread,
Dec 8, 2021, 4:40:35 PM12/8/21
to TiddlyWiki
I guess I have the syntax wrong.  This isn't working:

<div class="tc-sidebar-lists tc-sidebar-tabs"> <$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]] }}}"/> </div>

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

Any suggestions?

  -- Scott

Álvaro

unread,
Dec 9, 2021, 12:06:08 PM12/9/21
to TiddlyWiki
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)

Scott Sauyet

unread,
Dec 9, 2021, 2:08:40 PM12/9/21
to TiddlyWiki
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

Reply all
Reply to author
Forward
0 new messages