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()}
);