Add import type whenever possible

This commit is contained in:
Alejandro Celaya
2023-02-18 10:40:37 +01:00
parent 7add854b40
commit 2a5480da79
317 changed files with 955 additions and 807 deletions

View File

@@ -1,13 +1,13 @@
import { useParams } from 'react-router-dom';
import { CommonVisitsProps } from './types/CommonVisitsProps';
import { ShlinkVisitsParams } from '../api/types';
import { DomainVisits as DomainVisitsState, LoadDomainVisits } from './reducers/domainVisits';
import { ReportExporter } from '../common/services/ReportExporter';
import type { CommonVisitsProps } from './types/CommonVisitsProps';
import type { ShlinkVisitsParams } from '../api/types';
import type { DomainVisits as DomainVisitsState, LoadDomainVisits } from './reducers/domainVisits';
import type { ReportExporter } from '../common/services/ReportExporter';
import { boundToMercureHub } from '../mercure/helpers/boundToMercureHub';
import { Topics } from '../mercure/helpers/Topics';
import { useGoBack } from '../utils/helpers/hooks';
import { toApiParams } from './types/helpers';
import { NormalizedVisit } from './types';
import type { NormalizedVisit } from './types';
import { VisitsStats } from './VisitsStats';
import { VisitsHeader } from './VisitsHeader';

View File

@@ -1,13 +1,13 @@
import { boundToMercureHub } from '../mercure/helpers/boundToMercureHub';
import { Topics } from '../mercure/helpers/Topics';
import { useGoBack } from '../utils/helpers/hooks';
import { ReportExporter } from '../common/services/ReportExporter';
import type { ReportExporter } from '../common/services/ReportExporter';
import { VisitsStats } from './VisitsStats';
import { NormalizedVisit, VisitsParams } from './types';
import { CommonVisitsProps } from './types/CommonVisitsProps';
import type { NormalizedVisit, VisitsParams } from './types';
import type { CommonVisitsProps } from './types/CommonVisitsProps';
import { toApiParams } from './types/helpers';
import { VisitsHeader } from './VisitsHeader';
import { LoadVisits, VisitsInfo } from './reducers/types';
import type { LoadVisits, VisitsInfo } from './reducers/types';
export interface NonOrphanVisitsProps extends CommonVisitsProps {
getNonOrphanVisits: (params: LoadVisits) => void;

View File

@@ -1,14 +1,14 @@
import { boundToMercureHub } from '../mercure/helpers/boundToMercureHub';
import { Topics } from '../mercure/helpers/Topics';
import { useGoBack } from '../utils/helpers/hooks';
import { ReportExporter } from '../common/services/ReportExporter';
import type { ReportExporter } from '../common/services/ReportExporter';
import { VisitsStats } from './VisitsStats';
import { NormalizedVisit, VisitsParams } from './types';
import { CommonVisitsProps } from './types/CommonVisitsProps';
import type { NormalizedVisit, VisitsParams } from './types';
import type { CommonVisitsProps } from './types/CommonVisitsProps';
import { toApiParams } from './types/helpers';
import { VisitsHeader } from './VisitsHeader';
import { VisitsInfo } from './reducers/types';
import { LoadOrphanVisits } from './reducers/orphanVisits';
import type { VisitsInfo } from './reducers/types';
import type { LoadOrphanVisits } from './reducers/orphanVisits';
export interface OrphanVisitsProps extends CommonVisitsProps {
getOrphanVisits: (params: LoadOrphanVisits) => void;

View File

@@ -3,17 +3,17 @@ import { useLocation, useParams } from 'react-router-dom';
import { boundToMercureHub } from '../mercure/helpers/boundToMercureHub';
import { parseQuery } from '../utils/helpers/query';
import { Topics } from '../mercure/helpers/Topics';
import { ShortUrlDetail } from '../short-urls/reducers/shortUrlDetail';
import type { ShortUrlDetail } from '../short-urls/reducers/shortUrlDetail';
import { useGoBack } from '../utils/helpers/hooks';
import { ReportExporter } from '../common/services/ReportExporter';
import { LoadShortUrlVisits, ShortUrlVisits as ShortUrlVisitsState } from './reducers/shortUrlVisits';
import type { ReportExporter } from '../common/services/ReportExporter';
import type { LoadShortUrlVisits, ShortUrlVisits as ShortUrlVisitsState } from './reducers/shortUrlVisits';
import { ShortUrlVisitsHeader } from './ShortUrlVisitsHeader';
import { VisitsStats } from './VisitsStats';
import { NormalizedVisit, VisitsParams } from './types';
import { CommonVisitsProps } from './types/CommonVisitsProps';
import type { NormalizedVisit, VisitsParams } from './types';
import type { CommonVisitsProps } from './types/CommonVisitsProps';
import { toApiParams } from './types/helpers';
import { urlDecodeShortCode } from '../short-urls/helpers';
import { ShortUrlIdentifier } from '../short-urls/data';
import type { ShortUrlIdentifier } from '../short-urls/data';
export interface ShortUrlVisitsProps extends CommonVisitsProps {
getShortUrlVisits: (params: LoadShortUrlVisits) => void;

View File

@@ -1,8 +1,8 @@
import { UncontrolledTooltip } from 'reactstrap';
import { ExternalLink } from 'react-external-link';
import { ShortUrlDetail } from '../short-urls/reducers/shortUrlDetail';
import type { ShortUrlDetail } from '../short-urls/reducers/shortUrlDetail';
import { Time } from '../utils/dates/Time';
import { ShortUrlVisits } from './reducers/shortUrlVisits';
import type { ShortUrlVisits } from './reducers/shortUrlVisits';
import { VisitsHeader } from './VisitsHeader';
import './ShortUrlVisitsHeader.scss';

View File

@@ -1,15 +1,15 @@
import { useParams } from 'react-router-dom';
import { boundToMercureHub } from '../mercure/helpers/boundToMercureHub';
import { ColorGenerator } from '../utils/services/ColorGenerator';
import { ShlinkVisitsParams } from '../api/types';
import type { ColorGenerator } from '../utils/services/ColorGenerator';
import type { ShlinkVisitsParams } from '../api/types';
import { Topics } from '../mercure/helpers/Topics';
import { useGoBack } from '../utils/helpers/hooks';
import { ReportExporter } from '../common/services/ReportExporter';
import { LoadTagVisits, TagVisits as TagVisitsState } from './reducers/tagVisits';
import type { ReportExporter } from '../common/services/ReportExporter';
import type { LoadTagVisits, TagVisits as TagVisitsState } from './reducers/tagVisits';
import { TagVisitsHeader } from './TagVisitsHeader';
import { VisitsStats } from './VisitsStats';
import { NormalizedVisit } from './types';
import { CommonVisitsProps } from './types/CommonVisitsProps';
import type { NormalizedVisit } from './types';
import type { CommonVisitsProps } from './types/CommonVisitsProps';
import { toApiParams } from './types/helpers';
export interface TagVisitsProps extends CommonVisitsProps {

View File

@@ -1,7 +1,7 @@
import { Tag } from '../tags/helpers/Tag';
import { ColorGenerator } from '../utils/services/ColorGenerator';
import type { ColorGenerator } from '../utils/services/ColorGenerator';
import { VisitsHeader } from './VisitsHeader';
import { TagVisits } from './reducers/tagVisits';
import type { TagVisits } from './reducers/tagVisits';
import './ShortUrlVisitsHeader.scss';
interface TagVisitsHeaderProps {

View File

@@ -1,10 +1,10 @@
import { Button, Card } from 'reactstrap';
import { FC, PropsWithChildren, ReactNode } from 'react';
import type { FC, PropsWithChildren, ReactNode } from 'react';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faArrowLeft } from '@fortawesome/free-solid-svg-icons';
import { ShortUrlVisitsCount } from '../short-urls/helpers/ShortUrlVisitsCount';
import { ShortUrl } from '../short-urls/data';
import { Visit } from './types';
import type { ShortUrl } from '../short-urls/data';
import type { Visit } from './types';
type VisitsHeaderProps = PropsWithChildren<{
visits: Visit[];

View File

@@ -1,31 +1,34 @@
import { isEmpty, pipe, propEq, values } from 'ramda';
import { useState, useEffect, useMemo, FC, useRef, PropsWithChildren } from 'react';
import type { FC, PropsWithChildren } from 'react';
import { useState, useEffect, useMemo, useRef } from 'react';
import { Button, Progress, Row } from 'reactstrap';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faCalendarAlt, faMapMarkedAlt, faList, faChartPie } from '@fortawesome/free-solid-svg-icons';
import { IconDefinition } from '@fortawesome/fontawesome-common-types';
import type { IconDefinition } from '@fortawesome/fontawesome-common-types';
import { Route, Routes, Navigate, useLocation } from 'react-router-dom';
import classNames from 'classnames';
import { DateRangeSelector } from '../utils/dates/DateRangeSelector';
import { Message } from '../utils/Message';
import { Result } from '../utils/Result';
import { ShlinkApiError } from '../api/ShlinkApiError';
import { Settings } from '../settings/reducers/settings';
import type { Settings } from '../settings/reducers/settings';
import { prettify } from '../utils/helpers/numbers';
import { NavPillItem, NavPills } from '../utils/NavPills';
import { ExportBtn } from '../utils/ExportBtn';
import { LineChartCard } from './charts/LineChartCard';
import { VisitsTable } from './VisitsTable';
import { NormalizedOrphanVisit, NormalizedVisit, VisitsParams } from './types';
import type { NormalizedOrphanVisit, NormalizedVisit, VisitsParams } from './types';
import { OpenMapModalBtn } from './helpers/OpenMapModalBtn';
import { normalizeVisits, processStatsFromVisits } from './services/VisitsParser';
import { VisitsFilterDropdown } from './helpers/VisitsFilterDropdown';
import { HighlightableProps, highlightedVisitsToStats } from './types/helpers';
import type { HighlightableProps } from './types/helpers';
import { highlightedVisitsToStats } from './types/helpers';
import { DoughnutChartCard } from './charts/DoughnutChartCard';
import { SortableBarChartCard } from './charts/SortableBarChartCard';
import { VisitsInfo } from './reducers/types';
import type { VisitsInfo } from './reducers/types';
import { useVisitsQuery } from './helpers/hooks';
import { DateInterval, DateRange, toDateRange } from '../utils/helpers/dateIntervals';
import type { DateInterval, DateRange } from '../utils/helpers/dateIntervals';
import { toDateRange } from '../utils/helpers/dateIntervals';
export type VisitsStatsProps = PropsWithChildren<{
getVisits: (params: VisitsParams, doIntervalFallback?: boolean) => void;

View File

@@ -6,12 +6,13 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { UncontrolledTooltip } from 'reactstrap';
import { SimplePaginator } from '../common/SimplePaginator';
import { SearchField } from '../utils/SearchField';
import { determineOrderDir, Order, sortList } from '../utils/helpers/ordering';
import type { Order } from '../utils/helpers/ordering';
import { determineOrderDir, sortList } from '../utils/helpers/ordering';
import { prettify } from '../utils/helpers/numbers';
import { Time } from '../utils/dates/Time';
import { TableOrderIcon } from '../utils/table/TableOrderIcon';
import { MediaMatcher } from '../utils/types';
import { NormalizedOrphanVisit, NormalizedVisit } from './types';
import type { MediaMatcher } from '../utils/types';
import type { NormalizedOrphanVisit, NormalizedVisit } from './types';
import './VisitsTable.scss';
export interface VisitsTableProps {

View File

@@ -1,5 +1,5 @@
import { Card, CardHeader, CardBody, CardFooter } from 'reactstrap';
import { FC, PropsWithChildren, ReactNode } from 'react';
import type { FC, PropsWithChildren, ReactNode } from 'react';
import './ChartCard.scss';
type ChartCardProps = PropsWithChildren<{

View File

@@ -1,10 +1,11 @@
import { FC, useState, memo } from 'react';
import { Chart, ChartData, ChartDataset, ChartOptions } from 'chart.js';
import type { FC } from 'react';
import { useState, memo } from 'react';
import type { Chart, ChartData, ChartDataset, ChartOptions } from 'chart.js';
import { keys, values } from 'ramda';
import { Doughnut } from 'react-chartjs-2';
import { renderPieChartLabel } from '../../utils/helpers/charts';
import { isDarkThemeEnabled, PRIMARY_DARK_COLOR, PRIMARY_LIGHT_COLOR } from '../../utils/theme';
import { Stats } from '../types';
import type { Stats } from '../types';
import { DoughnutChartLegend } from './DoughnutChartLegend';
interface DoughnutChartProps {

View File

@@ -1,5 +1,5 @@
import { FC } from 'react';
import { Stats } from '../types';
import type { FC } from 'react';
import type { Stats } from '../types';
import { DoughnutChart } from './DoughnutChart';
import { ChartCard } from './ChartCard';

View File

@@ -1,5 +1,5 @@
import { FC } from 'react';
import { Chart } from 'chart.js';
import type { FC } from 'react';
import type { Chart } from 'chart.js';
import './DoughnutChartLegend.scss';
interface DoughnutChartLegendProps {

View File

@@ -1,11 +1,12 @@
import { FC, MutableRefObject, useRef } from 'react';
import { ChartData, ChartDataset, ChartOptions, InteractionItem } from 'chart.js';
import type { FC, MutableRefObject } from 'react';
import { useRef } from 'react';
import type { ChartData, ChartDataset, ChartOptions, InteractionItem } from 'chart.js';
import { keys, values } from 'ramda';
import { Bar, getElementAtEvent } from 'react-chartjs-2';
import { fillTheGaps } from '../../utils/helpers/visits';
import { pointerOnHover, renderChartLabel } from '../../utils/helpers/charts';
import { prettify } from '../../utils/helpers/numbers';
import { Stats } from '../types';
import type { Stats } from '../types';
import { HIGHLIGHTED_COLOR, HIGHLIGHTED_COLOR_ALPHA, MAIN_COLOR, MAIN_COLOR_ALPHA } from '../../utils/theme';
export interface HorizontalBarChartProps {

View File

@@ -1,4 +1,5 @@
import { useState, useMemo, MutableRefObject, useRef } from 'react';
import type { MutableRefObject } from 'react';
import { useState, useMemo, useRef } from 'react';
import {
Card,
CardHeader,
@@ -21,8 +22,8 @@ import {
startOfISOWeek,
endOfISOWeek,
} from 'date-fns';
import { ChartData, ChartDataset, ChartOptions, InteractionItem } from 'chart.js';
import { NormalizedVisit, Stats } from '../types';
import type { ChartData, ChartDataset, ChartOptions, InteractionItem } from 'chart.js';
import type { NormalizedVisit, Stats } from '../types';
import { fillTheGaps } from '../../utils/helpers/visits';
import { useToggle } from '../../utils/helpers/hooks';
import { rangeOf } from '../../utils/utils';

View File

@@ -1,13 +1,15 @@
import { FC, ReactNode, useState } from 'react';
import type { FC, ReactNode } from 'react';
import { useState } from 'react';
import { fromPairs, pipe, reverse, sortBy, splitEvery, toLower, toPairs, type, zipObj } from 'ramda';
import { rangeOf } from '../../utils/utils';
import { Order } from '../../utils/helpers/ordering';
import type { Order } from '../../utils/helpers/ordering';
import { SimplePaginator } from '../../common/SimplePaginator';
import { roundTen } from '../../utils/helpers/numbers';
import { OrderingDropdown } from '../../utils/OrderingDropdown';
import { PaginationDropdown } from '../../utils/PaginationDropdown';
import { Stats, StatsRow } from '../types';
import { HorizontalBarChart, HorizontalBarChartProps } from './HorizontalBarChart';
import type { Stats, StatsRow } from '../types';
import type { HorizontalBarChartProps } from './HorizontalBarChart';
import { HorizontalBarChart } from './HorizontalBarChart';
import { ChartCard } from './ChartCard';
interface SortableBarChartCardProps extends Omit<HorizontalBarChartProps, 'max'> {

View File

@@ -1,8 +1,9 @@
import { FC } from 'react';
import type { FC } from 'react';
import { Modal, ModalBody } from 'reactstrap';
import { MapContainer, TileLayer, Marker, Popup, MapContainerProps } from 'react-leaflet';
import type { MapContainerProps } from 'react-leaflet';
import { MapContainer, TileLayer, Marker, Popup } from 'react-leaflet';
import { prop } from 'ramda';
import { CityStats } from '../types';
import type { CityStats } from '../types';
import './MapModal.scss';
interface MapModalProps {

View File

@@ -3,7 +3,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faMapMarkedAlt as mapIcon } from '@fortawesome/free-solid-svg-icons';
import { Button, Dropdown, DropdownItem, DropdownMenu, UncontrolledTooltip } from 'reactstrap';
import { useDomId, useToggle } from '../../utils/helpers/hooks';
import { CityStats } from '../types';
import type { CityStats } from '../types';
import { MapModal } from './MapModal';
import './OpenMapModalBtn.scss';

View File

@@ -1,5 +1,6 @@
import { DropdownItem, DropdownItemProps } from 'reactstrap';
import { OrphanVisitType, VisitsFilter } from '../types';
import type { DropdownItemProps } from 'reactstrap';
import { DropdownItem } from 'reactstrap';
import type { OrphanVisitType, VisitsFilter } from '../types';
import { DropdownBtn } from '../../utils/DropdownBtn';
import { hasValue } from '../../utils/utils';

View File

@@ -1,12 +1,14 @@
import { DeepPartial } from '@reduxjs/toolkit';
import type { DeepPartial } from '@reduxjs/toolkit';
import { useLocation, useNavigate } from 'react-router-dom';
import { useMemo } from 'react';
import { isEmpty, isNil, mergeDeepRight, pipe } from 'ramda';
import { DateRange, datesToDateRange } from '../../utils/helpers/dateIntervals';
import { OrphanVisitType, VisitsFilter } from '../types';
import type { DateRange } from '../../utils/helpers/dateIntervals';
import { datesToDateRange } from '../../utils/helpers/dateIntervals';
import type { OrphanVisitType, VisitsFilter } from '../types';
import { parseQuery, stringifyQuery } from '../../utils/helpers/query';
import { formatIsoDate } from '../../utils/helpers/date';
import { BooleanString, parseBooleanToString } from '../../utils/utils';
import type { BooleanString } from '../../utils/utils';
import { parseBooleanToString } from '../../utils/utils';
interface VisitsQuery {
startDate?: string;

View File

@@ -1,11 +1,12 @@
import { flatten, prop, range, splitEvery } from 'ramda';
import { createAction, createSlice } from '@reduxjs/toolkit';
import { ShlinkPaginator, ShlinkVisits, ShlinkVisitsParams } from '../../api/types';
import { CreateVisit, Visit } from '../types';
import { DateInterval, dateToMatchingInterval } from '../../utils/helpers/dateIntervals';
import { LoadVisits, VisitsInfo, VisitsLoaded } from './types';
import type { ShlinkPaginator, ShlinkVisits, ShlinkVisitsParams } from '../../api/types';
import type { CreateVisit, Visit } from '../types';
import type { DateInterval } from '../../utils/helpers/dateIntervals';
import { dateToMatchingInterval } from '../../utils/helpers/dateIntervals';
import type { LoadVisits, VisitsInfo, VisitsLoaded } from './types';
import { createAsyncThunk } from '../../utils/helpers/redux';
import { ShlinkState } from '../../container/types';
import type { ShlinkState } from '../../container/types';
import { parseApiError } from '../../api/utils';
import { createNewVisits } from './visitCreation';

View File

@@ -1,8 +1,8 @@
import { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
import type { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
import { isBetween } from '../../utils/helpers/date';
import { createVisitsAsyncThunk, createVisitsReducer, lastVisitLoaderForLoader } from './common';
import { domainMatches } from '../../short-urls/helpers';
import { LoadVisits, VisitsInfo } from './types';
import type { LoadVisits, VisitsInfo } from './types';
const REDUCER_PREFIX = 'shlink/domainVisits';

View File

@@ -1,7 +1,7 @@
import { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
import type { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
import { isBetween } from '../../utils/helpers/date';
import { createVisitsAsyncThunk, createVisitsReducer, lastVisitLoaderForLoader } from './common';
import { VisitsInfo } from './types';
import type { VisitsInfo } from './types';
const REDUCER_PREFIX = 'shlink/orphanVisits';

View File

@@ -1,9 +1,9 @@
import { OrphanVisit, OrphanVisitType } from '../types';
import { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
import type { OrphanVisit, OrphanVisitType } from '../types';
import type { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
import { isOrphanVisit } from '../types/helpers';
import { isBetween } from '../../utils/helpers/date';
import { createVisitsAsyncThunk, createVisitsReducer, lastVisitLoaderForLoader } from './common';
import { LoadVisits, VisitsInfo } from './types';
import type { LoadVisits, VisitsInfo } from './types';
const REDUCER_PREFIX = 'shlink/orphanVisits';

View File

@@ -1,9 +1,9 @@
import { shortUrlMatches } from '../../short-urls/helpers';
import { ShortUrlIdentifier } from '../../short-urls/data';
import { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
import type { ShortUrlIdentifier } from '../../short-urls/data';
import type { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
import { isBetween } from '../../utils/helpers/date';
import { createVisitsAsyncThunk, createVisitsReducer, lastVisitLoaderForLoader } from './common';
import { LoadVisits, VisitsInfo } from './types';
import type { LoadVisits, VisitsInfo } from './types';
const REDUCER_PREFIX = 'shlink/shortUrlVisits';

View File

@@ -1,7 +1,7 @@
import { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
import type { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
import { isBetween } from '../../utils/helpers/date';
import { createVisitsAsyncThunk, createVisitsReducer, lastVisitLoaderForLoader } from './common';
import { LoadVisits, VisitsInfo } from './types';
import type { LoadVisits, VisitsInfo } from './types';
const REDUCER_PREFIX = 'shlink/tagVisits';

View File

@@ -1,7 +1,7 @@
import { ShlinkVisitsParams } from '../../../api/types';
import { DateInterval } from '../../../utils/helpers/dateIntervals';
import { ProblemDetailsError } from '../../../api/types/errors';
import { Visit } from '../../types';
import type { ShlinkVisitsParams } from '../../../api/types';
import type { DateInterval } from '../../../utils/helpers/dateIntervals';
import type { ProblemDetailsError } from '../../../api/types/errors';
import type { Visit } from '../../types';
export interface VisitsInfo {
visits: Visit[];

View File

@@ -1,5 +1,6 @@
import { createAction, PayloadAction } from '@reduxjs/toolkit';
import { CreateVisit } from '../types';
import type { PayloadAction } from '@reduxjs/toolkit';
import { createAction } from '@reduxjs/toolkit';
import type { CreateVisit } from '../types';
export type CreateVisitsAction = PayloadAction<{
createdVisits: CreateVisit[];

View File

@@ -1,6 +1,7 @@
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
import { ShlinkVisitsOverview } from '../../api/types';
import { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
import type { PayloadAction } from '@reduxjs/toolkit';
import { createSlice } from '@reduxjs/toolkit';
import type { ShlinkVisitsOverview } from '../../api/types';
import type { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
import { createAsyncThunk } from '../../utils/helpers/redux';
import { groupNewVisitsByType } from '../types/helpers';
import { createNewVisits } from './visitCreation';

View File

@@ -1,7 +1,7 @@
import { isNil, map } from 'ramda';
import { extractDomain, parseUserAgent } from '../../utils/helpers/visits';
import { hasValue } from '../../utils/utils';
import { CityStats, NormalizedVisit, Stats, Visit, VisitsStats } from '../types';
import type { CityStats, NormalizedVisit, Stats, Visit, VisitsStats } from '../types';
import { isNormalizedOrphanVisit, isOrphanVisit } from '../types/helpers';
/* eslint-disable no-param-reassign */

View File

@@ -1,4 +1,4 @@
import Bottle from 'bottlejs';
import type Bottle from 'bottlejs';
import { prop } from 'ramda';
import { MapModal } from '../helpers/MapModal';
import { createNewVisits } from '../reducers/visitCreation';
@@ -11,7 +11,7 @@ import { getTagVisits, tagVisitsReducerCreator } from '../reducers/tagVisits';
import { getDomainVisits, domainVisitsReducerCreator } from '../reducers/domainVisits';
import { getOrphanVisits, orphanVisitsReducerCreator } from '../reducers/orphanVisits';
import { getNonOrphanVisits, nonOrphanVisitsReducerCreator } from '../reducers/nonOrphanVisits';
import { ConnectDecorator } from '../../container/types';
import type { ConnectDecorator } from '../../container/types';
import { loadVisitsOverview, visitsOverviewReducerCreator } from '../reducers/visitsOverview';
import * as visitsParser from './VisitsParser';
import { DomainVisits } from '../DomainVisits';

View File

@@ -1,4 +1,4 @@
import { Settings } from '../../settings/reducers/settings';
import type { Settings } from '../../settings/reducers/settings';
export interface CommonVisitsProps {
settings: Settings;

View File

@@ -1,7 +1,7 @@
import { countBy, groupBy, pipe, prop } from 'ramda';
import { formatIsoDate } from '../../utils/helpers/date';
import { ShlinkVisitsParams } from '../../api/types';
import { CreateVisit, NormalizedOrphanVisit, NormalizedVisit, OrphanVisit, Stats, Visit, VisitsParams } from './index';
import type { ShlinkVisitsParams } from '../../api/types';
import type { CreateVisit, NormalizedOrphanVisit, NormalizedVisit, OrphanVisit, Stats, Visit, VisitsParams } from './index';
export const isOrphanVisit = (visit: Visit): visit is OrphanVisit => (visit as OrphanVisit).visitedUrl !== undefined;

View File

@@ -1,5 +1,5 @@
import { ShortUrl } from '../../short-urls/data';
import { DateRange } from '../../utils/helpers/dateIntervals';
import type { ShortUrl } from '../../short-urls/data';
import type { DateRange } from '../../utils/helpers/dateIntervals';
export type OrphanVisitType = 'base_url' | 'invalid_short_url' | 'regular_404';