mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2026-07-21 03:01:51 +00:00
Add import type whenever possible
This commit is contained in:
@@ -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';
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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<{
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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'> {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Settings } from '../../settings/reducers/settings';
|
||||
import type { Settings } from '../../settings/reducers/settings';
|
||||
|
||||
export interface CommonVisitsProps {
|
||||
settings: Settings;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user