From 5c6979122d0d0aa013c1faca507f83e98e6e17d0 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Wed, 30 Jun 2021 02:36:13 +0200 Subject: [PATCH] Extracted VisitsFilter type from component for general usage --- src/visits/ShortUrlVisits.tsx | 2 +- src/visits/VisitsStats.tsx | 6 +++--- src/visits/helpers/VisitsFilterDropdown.tsx | 7 +------ src/visits/types/helpers.ts | 3 +-- src/visits/types/index.ts | 5 +++++ test/visits/helpers/VisitsFilterDropdown.test.tsx | 4 ++-- 6 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/visits/ShortUrlVisits.tsx b/src/visits/ShortUrlVisits.tsx index 538b4eea..fd858578 100644 --- a/src/visits/ShortUrlVisits.tsx +++ b/src/visits/ShortUrlVisits.tsx @@ -34,7 +34,7 @@ const ShortUrlVisits = ({ exportVisits }: VisitsExporter) => boundToMercureHub(( }: ShortUrlVisitsProps) => { const { shortCode } = params; const { domain } = parseQuery<{ domain?: string }>(search); - const loadVisits = (params: Partial) => getShortUrlVisits(shortCode, { ...params, domain }); + const loadVisits = (params: ShlinkVisitsParams) => getShortUrlVisits(shortCode, { ...params, domain }); const exportCsv = (visits: NormalizedVisit[]) => exportVisits( `short-url_${shortUrlDetail.shortUrl?.shortUrl.replace(/https?:\/\//g, '')}_visits.csv`, visits, diff --git a/src/visits/VisitsStats.tsx b/src/visits/VisitsStats.tsx index feb354f1..5d1fc1f4 100644 --- a/src/visits/VisitsStats.tsx +++ b/src/visits/VisitsStats.tsx @@ -21,15 +21,15 @@ import SortableBarGraph from './helpers/SortableBarGraph'; import GraphCard from './helpers/GraphCard'; import LineChartCard from './helpers/LineChartCard'; import VisitsTable from './VisitsTable'; -import { NormalizedOrphanVisit, NormalizedVisit, VisitsInfo } from './types'; +import { NormalizedOrphanVisit, NormalizedVisit, VisitsFilter, VisitsInfo } from './types'; import OpenMapModalBtn from './helpers/OpenMapModalBtn'; import { processStatsFromVisits } from './services/VisitsParser'; -import { VisitsFilter, VisitsFilterDropdown } from './helpers/VisitsFilterDropdown'; +import { VisitsFilterDropdown } from './helpers/VisitsFilterDropdown'; import { HighlightableProps, highlightedVisitsToStats, normalizeAndFilterVisits } from './types/helpers'; import './VisitsStats.scss'; export interface VisitsStatsProps { - getVisits: (params: Partial) => void; + getVisits: (params: ShlinkVisitsParams) => void; visitsInfo: VisitsInfo; settings: Settings; selectedServer: SelectedServer; diff --git a/src/visits/helpers/VisitsFilterDropdown.tsx b/src/visits/helpers/VisitsFilterDropdown.tsx index 6cbdcdc9..3c98bd0e 100644 --- a/src/visits/helpers/VisitsFilterDropdown.tsx +++ b/src/visits/helpers/VisitsFilterDropdown.tsx @@ -1,13 +1,8 @@ import { DropdownItem, DropdownItemProps } from 'reactstrap'; // eslint-disable-line import/named -import { OrphanVisitType } from '../types'; +import { OrphanVisitType, VisitsFilter } from '../types'; import { DropdownBtn } from '../../utils/DropdownBtn'; import { hasValue } from '../../utils/utils'; -export interface VisitsFilter { - orphanVisitsType?: OrphanVisitType | undefined; - excludeBots?: boolean; -} - interface VisitsFilterDropdownProps { onChange: (filters: VisitsFilter) => void; selected?: VisitsFilter; diff --git a/src/visits/types/helpers.ts b/src/visits/types/helpers.ts index 00d248d8..d81a3d72 100644 --- a/src/visits/types/helpers.ts +++ b/src/visits/types/helpers.ts @@ -1,8 +1,7 @@ import { countBy, filter, groupBy, pipe, prop } from 'ramda'; import { normalizeVisits } from '../services/VisitsParser'; -import { VisitsFilter } from '../helpers/VisitsFilterDropdown'; import { hasValue } from '../../utils/utils'; -import { Visit, OrphanVisit, CreateVisit, NormalizedVisit, NormalizedOrphanVisit, Stats } from './index'; +import { Visit, OrphanVisit, CreateVisit, NormalizedVisit, NormalizedOrphanVisit, Stats, VisitsFilter } from './index'; export const isOrphanVisit = (visit: Visit): visit is OrphanVisit => visit.hasOwnProperty('visitedUrl'); diff --git a/src/visits/types/index.ts b/src/visits/types/index.ts index ffaccb47..be415e53 100644 --- a/src/visits/types/index.ts +++ b/src/visits/types/index.ts @@ -94,3 +94,8 @@ export interface VisitsStats { citiesForMap: Record; visitedUrls: Stats; } + +export interface VisitsFilter { + orphanVisitsType?: OrphanVisitType | undefined; + excludeBots?: boolean; +} diff --git a/test/visits/helpers/VisitsFilterDropdown.test.tsx b/test/visits/helpers/VisitsFilterDropdown.test.tsx index 9476ac9c..10cbaecc 100644 --- a/test/visits/helpers/VisitsFilterDropdown.test.tsx +++ b/test/visits/helpers/VisitsFilterDropdown.test.tsx @@ -1,7 +1,7 @@ import { shallow, ShallowWrapper } from 'enzyme'; import { DropdownItem } from 'reactstrap'; -import { OrphanVisitType } from '../../../src/visits/types'; -import { VisitsFilter, VisitsFilterDropdown } from '../../../src/visits/helpers/VisitsFilterDropdown'; +import { OrphanVisitType, VisitsFilter } from '../../../src/visits/types'; +import { VisitsFilterDropdown } from '../../../src/visits/helpers/VisitsFilterDropdown'; describe('', () => { let wrapper: ShallowWrapper;