diff --git a/naturewatch_camera_server/static/client/src/settings/ExposureSetting.js b/naturewatch_camera_server/static/client/src/settings/ExposureSetting.js index a90cf41..4f77ed7 100755 --- a/naturewatch_camera_server/static/client/src/settings/ExposureSetting.js +++ b/naturewatch_camera_server/static/client/src/settings/ExposureSetting.js @@ -1,5 +1,5 @@ import React from 'react'; -import {ToggleButtonGroup, ToggleButton} from 'react-bootstrap'; +import { ToggleButtonGroup, ToggleButton } from 'react-bootstrap'; class ExposureSetting extends React.Component { constructor(props) { @@ -44,8 +44,19 @@ class ExposureSetting extends React.Component { } } + // Inspired from https://www.codevscolor.com/javascript-nearest-number-in-array#method-3-using-sort- + findClosest = (arr, num) => { + if (arr == null) { + return + } + return arr.sort((a, b) => Math.abs(b - num) - Math.abs(a - num)).pop(); + } + getIndexFromShutterSpeed(shutterSpeed) { - for (var i=0; i < Object.keys(this.cameraShutterSpeeds).length; i++) { + // Get nearest value + shutterSpeed = this.findClosest(Object.values(this.cameraShutterSpeeds), shutterSpeed) + + for (var i = 0; i < Object.keys(this.cameraShutterSpeeds).length; i++) { if (Object.values(this.cameraShutterSpeeds)[i] === shutterSpeed) { return i; } @@ -72,12 +83,12 @@ class ExposureSetting extends React.Component { -
+
Auto Manual -
+
{this.renderDetailedSettings()} );