Skip to content

Sidebar Navigation Items Do Not Display

When a user clicks a sidebar functional area to expand it, the section may fail to display its child navigation items. The browser console may also report a Set.prototype.has error while Lowgile attempts to render the expanded sidebar content.

The following symptoms may occur:

  • The application sidebar initially loads with the functional area collapsed.

  • Clicking the functional area to expand it triggers an error.

  • The functional area does not expand, or its child navigation items do not appear.

  • The child navigation items appear to be configured correctly in the MainLayoutSidebar editor.

  • The browser console reports:

    Method Set.prototype.has called on incompatible receiver #<Set>
  • The stack trace identifies the generated MainLayoutSidebar.html template.

The browser reports this error when the compiled sidebar code calls the Set.prototype.has() method on a value that is not recognized as a valid JavaScript Set at runtime.

The failed operation prevents the affected part of the sidebar template from rendering. The console trace identifies the generated MainLayoutSidebar.html template, but it does not identify which component configuration or stored runtime state supplied the incompatible value.

First, verify the affected screen’s configuration:

  1. Open the application’s MainLayout screen and confirm that it references the application’s MainLayoutSidebar screen.
  2. Open MainLayoutSidebar and locate the affected parent Navigation Item inside its Navigation List.
  3. In the parent navigation item’s Content Area, confirm that the If component contains the associated child navigation items.
  4. Confirm that screen intended for each child Navigation Item exists in the current application module.
  5. If an intended screen does not exist, create and configure it before continuing.
  6. Select each child Navigation Item and confirm that Link to Screen has the correct value.
  7. If not, set it to the correct screen.
  8. Save your changes before continuing.

  9. Wait for the application to complete a successful build.
  10. Run the application and expand the affected parent navigation item.
  11. If the child navigation items still do not appear, open the browser console, and confirm whether the error identifies MainLayoutSidebar.html.

If the configuration is correct but the error continues, consider replacing the application’s MainLayoutSidebar screen with the original MainLayoutSidebar screen from the Common module (or from another working application).

Tip

Before deleting the affected screen, record any application-specific navigation settings that must be restored.

  1. Delete the affected application’s MainLayoutSidebar screen.
  2. In the Common module or the other application, locate and copy the MainLayoutSidebar screen.
  3. Paste the copied screen into the application using the exact ID MainLayoutSidebar.
  4. Open the copied screen and review its properties for module-specific references.
  5. Set Link to Screen for each navigation item to the correct application screen.
  6. Open the application’s MainLayout screen and confirm that it still references the MainLayoutSidebar screen.
  7. Save your changes before continuing.

  8. Wait for the application to complete a successful build.
  9. Confirm that the navigation items appear when the functional area is expanded.

Caution

Copied screens retain their original references. Always review screen destinations, bindings, expressions, and actions after copying a screen between modules.

If the copied MainLayoutSidebar screen produces the same error after a successful build, collect:

  • The complete browser-console stack trace,
  • The application module and sidebar screen names,
  • The MainLayout and MainLayoutSidebar screen properties,
  • The build time and result, and
  • The troubleshooting steps already completed.

Provide this information to the Lowgile platform administrator. The remaining problem may require investigation of the generated sidebar code or stored runtime state.