mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2026-07-31 08:01:53 +00:00
Added button to export visits as CSV
This commit is contained in:
@@ -9,6 +9,8 @@ import { Settings } from '../settings/reducers/settings';
|
||||
import { ShortUrlVisits as ShortUrlVisitsState } from './reducers/shortUrlVisits';
|
||||
import ShortUrlVisitsHeader from './ShortUrlVisitsHeader';
|
||||
import VisitsStats from './VisitsStats';
|
||||
import { VisitsExporter } from './services/VisitsExporter';
|
||||
import { NormalizedVisit } from './types';
|
||||
|
||||
export interface ShortUrlVisitsProps extends RouteComponentProps<{ shortCode: string }> {
|
||||
getShortUrlVisits: (shortCode: string, query?: ShlinkVisitsParams) => void;
|
||||
@@ -19,7 +21,7 @@ export interface ShortUrlVisitsProps extends RouteComponentProps<{ shortCode: st
|
||||
settings: Settings;
|
||||
}
|
||||
|
||||
const ShortUrlVisits = boundToMercureHub(({
|
||||
const ShortUrlVisits = ({ exportVisits }: VisitsExporter) => boundToMercureHub(({
|
||||
history: { goBack },
|
||||
match: { params, url },
|
||||
location: { search },
|
||||
@@ -33,6 +35,10 @@ const ShortUrlVisits = boundToMercureHub(({
|
||||
const { shortCode } = params;
|
||||
const { domain } = parseQuery<{ domain?: string }>(search);
|
||||
const loadVisits = (params: Partial<ShlinkVisitsParams>) => getShortUrlVisits(shortCode, { ...params, domain });
|
||||
const exportCsv = (visits: NormalizedVisit[]) => exportVisits(
|
||||
`short-url_${shortUrlDetail.shortUrl?.shortUrl.replace(/https?:\/\//g, '')}_visits.csv`,
|
||||
visits,
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
getShortUrlDetail(shortCode, domain);
|
||||
@@ -46,6 +52,7 @@ const ShortUrlVisits = boundToMercureHub(({
|
||||
baseUrl={url}
|
||||
domain={domain}
|
||||
settings={settings}
|
||||
exportCsv={exportCsv}
|
||||
>
|
||||
<ShortUrlVisitsHeader shortUrlDetail={shortUrlDetail} shortUrlVisits={shortUrlVisits} goBack={goBack} />
|
||||
</VisitsStats>
|
||||
|
||||
Reference in New Issue
Block a user