0

Do you have a better way to create this if / elseif sentence?

 if ((navigator.userAgent.indexOf('Opera') || navigator.userAgent.indexOf('OPR')) != -1) {
      this.state.isBrowserAllowed = true;
    } else if (navigator.userAgent.indexOf('Chrome') != -1) {
      this.state.isBrowserAllowed = true;
    } else if (navigator.userAgent.indexOf('Safari') != -1) {
      this.state.isBrowserAllowed = true;
    } else if (navigator.userAgent.indexOf('Firefox') != -1) {
      this.state.isBrowserAllowed = true;
    }
norbitrial
  • 13,852
  • 6
  • 27
  • 54
Alejandro Arias
  • 187
  • 1
  • 9

1 Answers1

4

I'd use a regular expression instead.

this.setState({
  ...this.state,
  isBrowserAllowed: /Opera|OPR|Chrome|Safari|Firefox/.test(navigator.userAgent)
});

Also, as the comment notes, state should not be mutated in React - use setState instead.

CertainPerformance
  • 313,535
  • 40
  • 245
  • 254