Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    wrong buttons order in AdaptiveMenu with visibleWhen and embeddedComponent

    SmartClient Version: v13.1p_2025-03-12/AllModules Development Only (built 2025-03-12)

    Safari, Chrome, Firefox on MacOS

    Hello, I've just managed to replicate a problem that I noticed in my application. It happens in an AdaptiveMenu which has an embeddedComponent as the last item, and some items have a visibleWhen which evaluates to false. Please try this test case in the showcase:

    Code:
    isc.DynamicForm.create({
        ID: "exampleForm",
        width: "100%",
        fields: [
            {
                name: "username",
                title: "Username",
                type: "text",
                width: "*",
                required: true,
                defaultValue: "bob"
            },
            {
                name: "email",
                title: "Email",
                required: true,
                width: "*",
                type: "text",
                defaultValue: "bob@isomorphic.com"
            }
        ]
    });
    
    isc.AdaptiveMenu.create({
        ID: "adaptiveMenu",
        menuButtonTitle: "More...",
        align: "center",
        defaultLayoutAlign: "center",
        items: [
            {
                title: "Foo Bar",
                icon: "Edit"
            },
            {
                title: "Foo Bar",
                icon: "Edit"
            },
    
            {
                title: "Foo Bar",
                icon: "Edit"
            },
            {
                title: "Foo Bar Bar",
                icon: "Edit"
            },
            {
                title: "Foo Bar",
                icon: "Cancel",
                visibleWhen: {fieldName: "exampleForm.values.username", operator: "notEqual", value: "bob"}
            },
            {
                title: "Foo Bar Bar",
                icon: "Cancel",
                visibleWhen: {fieldName: "exampleForm.values.username", operator: "notEqual", value: "bob"}
            },
            {
                title: "second-last",
                icon: "Close",
                visibleWhen: {fieldName: "exampleForm.values.username", operator: "equals", value: "bob"}
            },
            {
                title: "Edit",
                showRollOver: false,
                embeddedComponent: isc.HStack.create({
                    snapTo: "TR",
                    height: "100%",
                    width: 190,
                    membersMargin: 3,
                    layoutMarginBottom: 5,
                    defaultLayoutAlign: "center",
                    members: [
                        isc.IButton.create({title: "Cut", autoFit:true, click: "isc.say(this.title)"}),
                        isc.IButton.create({title: "Copy", autoFit:true, click: "isc.say(this.title)"}),
                        isc.IButton.create({title: "Paste", autoFit:true, click: "isc.say(this.title)"})
                    ]
                }),
                embeddedComponentFields: ["key"]
            }
        ]
    });
    
    isc.ToolStrip.create({
        ID: "toolStrip",
        height: 40,
        width: "100%",
        layoutMargin: 0,
        defaultLayoutAlign: "center",
        members: [adaptiveMenu]
    });
    
    isc.Window.create({
        ID: "testWindow",
        title: isc.version,
        maximized: true,
        showFooter: true,
        items: [exampleForm],
        footerControls: [toolStrip]
    }).show()
    You'll see that the embeddedComponent isn't in the last position; instead, the second-to-last item is:

    Click image for larger version

Name:	2025-03-12 21.42.49.jpg
Views:	36
Size:	32.5 KB
ID:	275367

    You'll also see a couple WARN in the console:

    Code:
    *21:34:21.216:TMR7:WARN:FilteredList:isc_FilteredList_7 (dataSource: isc_DataSource_4, created by: undefined):Invalid observation: Target is not an object.  target: null, methodName: dataChanged, action: 'observer.dataSourceDataChanged(dsRequest,dsResponse)'

    #2
    This has been fixed in builds starting on March 20.

    Comment


      #3
      SmartClient Version: v13.1p_2025-03-20/Enterprise Deployment (built 2025-03-20)

      Hello, I can confirm it's fixed, both in the showcase and in my application, thank you very much!

      Comment

      Working...
      X