diff --git a/src/settings/RealTimeUpdates.js b/src/settings/RealTimeUpdates.js
index 80d65fbe..d2de544a 100644
--- a/src/settings/RealTimeUpdates.js
+++ b/src/settings/RealTimeUpdates.js
@@ -1,7 +1,7 @@
import React from 'react';
import { Card, CardBody, CardHeader } from 'reactstrap';
import PropTypes from 'prop-types';
-import Checkbox from '../utils/Checkbox';
+import ToggleSwitch from '../utils/ToggleSwitch';
import { SettingsType } from './reducers/settings';
const propTypes = {
@@ -13,9 +13,9 @@ const RealTimeUpdates = ({ settings: { realTimeUpdates }, setRealTimeUpdates })
Real-time updates
-
+
Enable or disable real-time updates, when using Shlink v2.2.0 or newer.
-
+
);
diff --git a/src/utils/ToggleSwitch.js b/src/utils/ToggleSwitch.js
new file mode 100644
index 00000000..b64407e1
--- /dev/null
+++ b/src/utils/ToggleSwitch.js
@@ -0,0 +1,27 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import classNames from 'classnames';
+import { v4 as uuid } from 'uuid';
+
+const propTypes = {
+ checked: PropTypes.bool.isRequired,
+ onChange: PropTypes.func.isRequired,
+ children: PropTypes.oneOfType([ PropTypes.string, PropTypes.node ]),
+ className: PropTypes.string,
+};
+
+const ToggleSwitch = ({ checked, onChange, className, children }) => {
+ const id = uuid();
+ const onChecked = (e) => onChange(e.target.checked, e);
+
+ return (
+
+
+
+
+ );
+};
+
+ToggleSwitch.propTypes = propTypes;
+
+export default ToggleSwitch;
diff --git a/src/visits/helpers/LineChartCard.js b/src/visits/helpers/LineChartCard.js
index d3f3593e..bd4a1808 100644
--- a/src/visits/helpers/LineChartCard.js
+++ b/src/visits/helpers/LineChartCard.js
@@ -17,7 +17,7 @@ import { fillTheGaps } from '../../utils/helpers/visits';
import './LineChartCard.scss';
import { useToggle } from '../../utils/helpers/hooks';
import { rangeOf } from '../../utils/utils';
-import Checkbox from '../../utils/Checkbox';
+import ToggleSwitch from '../../utils/ToggleSwitch';
const propTypes = {
title: PropTypes.string,
@@ -167,9 +167,9 @@ const LineChartCard = ({ title, visits, highlightedVisits, highlightedLabel = 'S
-
+
Skip dates with no visits
-
+
diff --git a/test/visits/helpers/LineChartCard.test.js b/test/visits/helpers/LineChartCard.test.js
index 5d692f5b..348ba365 100644
--- a/test/visits/helpers/LineChartCard.test.js
+++ b/test/visits/helpers/LineChartCard.test.js
@@ -4,7 +4,7 @@ import { CardHeader, DropdownItem } from 'reactstrap';
import { Line } from 'react-chartjs-2';
import moment from 'moment';
import LineChartCard from '../../../src/visits/helpers/LineChartCard';
-import Checkbox from '../../../src/utils/Checkbox';
+import ToggleSwitch from '../../../src/utils/ToggleSwitch';
describe('', () => {
let wrapper;
@@ -90,7 +90,7 @@ describe('', () => {
]);
expect(wrapper.find(Line).prop('data').labels).toHaveLength(2);
- wrapper.find(Checkbox).simulate('change');
+ wrapper.find(ToggleSwitch).simulate('change');
expect(wrapper.find(Line).prop('data').labels).toHaveLength(4);
});
});