diff --git a/components/helpers/StickyHeader.js b/components/common/StickyHeader.js
similarity index 64%
rename from components/helpers/StickyHeader.js
rename to components/common/StickyHeader.js
index 62dcb74a..639709f9 100644
--- a/components/helpers/StickyHeader.js
+++ b/components/common/StickyHeader.js
@@ -12,17 +12,18 @@ export default function StickyHeader({
}) {
const { ref: scrollRef, isSticky } = useSticky({ scrollElement });
const { ref: measureRef, dimensions } = useMeasure();
+ const active = enabled && isSticky;
return (
{children}
diff --git a/components/helpers/CheckVisible.js b/components/helpers/CheckVisible.js
deleted file mode 100644
index a150f725..00000000
--- a/components/helpers/CheckVisible.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import { useState, useRef, useEffect } from 'react';
-
-function isInViewport(element) {
- const rect = element.getBoundingClientRect();
- return !(
- rect.bottom < 0 ||
- rect.right < 0 ||
- rect.left > window.innerWidth ||
- rect.top > window.innerHeight
- );
-}
-
-export default function CheckVisible({ className, children }) {
- const [visible, setVisible] = useState(false);
- const ref = useRef();
-
- useEffect(() => {
- const checkPosition = () => {
- if (ref.current) {
- const state = isInViewport(ref.current);
- if (state !== visible) {
- setVisible(state);
- }
- }
- };
-
- checkPosition();
-
- window.addEventListener('scroll', checkPosition);
-
- return () => {
- window.removeEventListener('scroll', checkPosition);
- };
- }, [visible]);
-
- return (
-
- {typeof children === 'function' ? children(visible) : children}
-
- );
-}
diff --git a/components/input/DateFilter.js b/components/input/DateFilter.js
index a340fe48..b10388e7 100644
--- a/components/input/DateFilter.js
+++ b/components/input/DateFilter.js
@@ -18,7 +18,7 @@ function DateFilter({ websiteId, value, className }) {
const [showPicker, setShowPicker] = useState(false);
async function handleDateChange(value) {
- if (value === 'all') {
+ if (value === 'all' && websiteId) {
const data = await get(`/websites/${websiteId}`);
if (data) {
diff --git a/components/input/RefreshButton.js b/components/input/RefreshButton.js
index 031e4ee6..a5c8493b 100644
--- a/components/input/RefreshButton.js
+++ b/components/input/RefreshButton.js
@@ -1,6 +1,6 @@
import { useIntl } from 'react-intl';
import { LoadingButton, Icon, Tooltip } from 'react-basics';
-import { setDateRange } from 'store/websites';
+import { setWebsiteDateRange } from 'store/websites';
import useDateRange from 'hooks/useDateRange';
import Icons from 'components/icons';
import { labels } from 'components/messages';
@@ -12,9 +12,9 @@ function RefreshButton({ websiteId, isLoading }) {
function handleClick() {
if (!isLoading && dateRange) {
if (/^\d+/.test(dateRange.value)) {
- setDateRange(websiteId, dateRange.value);
+ setWebsiteDateRange(websiteId, dateRange.value);
} else {
- setDateRange(websiteId, dateRange);
+ setWebsiteDateRange(websiteId, dateRange);
}
}
}
diff --git a/components/input/SettingsButton.js b/components/input/SettingsButton.js
index 46a01e13..3a6068e3 100644
--- a/components/input/SettingsButton.js
+++ b/components/input/SettingsButton.js
@@ -18,7 +18,12 @@ export default function SettingsButton() {
-
+ e.stopPropagation()}
+ >