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
  • 14,716
  • 7
  • 32
  • 59
Alejandro Arias
  • 187
  • 2
  • 10

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
  • 356,069
  • 52
  • 309
  • 320