Skip to content

Missing iconClass in widget config causes crash while loading on mobile #983

@duckblaster

Description

@duckblaster

How often can you reproduce it?

  • Always
  • Sometimes
  • Rarely
  • Unable
  • I didn’t try

Description:

If there is a widget configured without an iconClass when the mobile sidebar loads it throws an error about Cannot read property 'replace' of undefined at line 40 of _sidebarTab.js:

this.buttonNode = put(this.tabsButtonNode, 'li a[role=tab] i.' + this.iconClass.replace(/ /g, '.') + '<<');

Steps to reproduce:

Remove the iconClass from a widget config and load it on a mobile device. If using the mobile emulation in browser devtools you need to reload to trigger the mobile sidebar.

  1. Include a JS Bin (or equivalent) link if possible. You can use this as a starting point. Alternatively create a Gist
  2. Detail the exact steps taken to produce the problem
  3. Include a gif if possible; you can use LICEcap to make a gif: http://www.cockos.com/licecap/
  4. Check the browser console for errors (Use F12 to access the console)

Expected results:

Either a fallback icon or an error in the dev tools regardless of whether it is loaded on mobile or desktop, so it is more obvious, other widgets should continue to load.
image

Actual results:

Cryptic error about Cannot read property 'replace' of undefined, other widgets listed after the problematic entry fail to load.
image

Environment:

Software Version
CMV Version latest master
Browser latest chrome
Operating system windows, android, iphone

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions