Remove RFV outside click clear
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m22s
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m22s
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
||||||
import { Link, useOutletContext } from 'react-router-dom';
|
import { Link, useOutletContext } from 'react-router-dom';
|
||||||
import { ChevronLeft, ChevronRight, Download, Filter, Loader2, Search, Users } from 'lucide-react';
|
import { ChevronLeft, ChevronRight, Download, Filter, Loader2, Search, Users } from 'lucide-react';
|
||||||
import DateRangePicker from '../components/DateRangePicker';
|
import DateRangePicker from '../components/DateRangePicker';
|
||||||
@@ -159,7 +159,6 @@ const Rfm = () => {
|
|||||||
const [selectedSegmentKey, setSelectedSegmentKey] = useState('');
|
const [selectedSegmentKey, setSelectedSegmentKey] = useState('');
|
||||||
const [currentPage, setCurrentPage] = useState(1);
|
const [currentPage, setCurrentPage] = useState(1);
|
||||||
const [itemsPerPage, setItemsPerPage] = useState(20);
|
const [itemsPerPage, setItemsPerPage] = useState(20);
|
||||||
const segmentFocusRef = useRef<HTMLDivElement | null>(null);
|
|
||||||
|
|
||||||
const loadRfm = useCallback(async (range: DateRange, options?: { force?: boolean }) => {
|
const loadRfm = useCallback(async (range: DateRange, options?: { force?: boolean }) => {
|
||||||
const cachedAnalytics = options?.force ? undefined : getCachedRfmAnalytics(range);
|
const cachedAnalytics = options?.force ? undefined : getCachedRfmAnalytics(range);
|
||||||
@@ -217,18 +216,10 @@ const Rfm = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handlePointerDown = (event: PointerEvent) => {
|
|
||||||
const target = event.target;
|
|
||||||
if (target instanceof Node && segmentFocusRef.current?.contains(target)) return;
|
|
||||||
clearSegmentFocus();
|
|
||||||
};
|
|
||||||
|
|
||||||
document.addEventListener('keydown', handleKeyDown);
|
document.addEventListener('keydown', handleKeyDown);
|
||||||
document.addEventListener('pointerdown', handlePointerDown);
|
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
document.removeEventListener('keydown', handleKeyDown);
|
document.removeEventListener('keydown', handleKeyDown);
|
||||||
document.removeEventListener('pointerdown', handlePointerDown);
|
|
||||||
};
|
};
|
||||||
}, [clearSegmentFocus, segmentFilter, selectedSegmentKey]);
|
}, [clearSegmentFocus, segmentFilter, selectedSegmentKey]);
|
||||||
|
|
||||||
@@ -381,7 +372,7 @@ const Rfm = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div ref={segmentFocusRef} className="space-y-6">
|
<div className="space-y-6">
|
||||||
<div className="grid grid-cols-1 xl:grid-cols-[minmax(0,1fr)_340px] gap-6">
|
<div className="grid grid-cols-1 xl:grid-cols-[minmax(0,1fr)_340px] gap-6">
|
||||||
<section className="bg-dark-card p-5 rounded-2xl border border-dark-border shadow-sm">
|
<section className="bg-dark-card p-5 rounded-2xl border border-dark-border shadow-sm">
|
||||||
<div className="mb-4 flex flex-col gap-3 lg:flex-row lg:items-end lg:justify-between">
|
<div className="mb-4 flex flex-col gap-3 lg:flex-row lg:items-end lg:justify-between">
|
||||||
|
|||||||
Reference in New Issue
Block a user