A very performant and light (2mb in memory) link shortener and tracker. Written in Rust and React and uses Postgres/SQLite.

Revert "Lazy load Statistics Modal"

This reverts commit 62feb55702a13cb2fdf0008729575ee98f85eeab.

Changed files
+14 -20
frontend
+13 -19
frontend/src/components/LinkList.tsx
···
-
import { lazy, Suspense } from 'react'
-
import { useEffect, useState } from 'react'
import { Link } from '../types/api'
import { getAllLinks, deleteLink } from '../api/client'
···
DialogFooter,
} from "@/components/ui/dialog"
-
const StatisticsModal = lazy(() => import('./StatisticsModal'))
+
import { StatisticsModal } from "./StatisticsModal"
interface LinkListProps {
refresh?: number;
···
const baseUrl = window.location.origin
navigator.clipboard.writeText(`${baseUrl}/${shortCode}`)
toast({
-
description: (
-
<>
-
Link copied to clipboard
-
<br />
-
You can add ?source=TextHere to the end of the link to track the source of clicks
-
</>
-
),
+
description: (
+
<>
+
Link copied to clipboard
+
<br />
+
You can add ?source=TextHere to the end of the link to track the source of clicks
+
</>
+
),
})
}
···
</div>
</CardContent>
</Card>
-
{statsModal.isOpen && (
-
<Suspense fallback={<div>Loading...</div>}>
-
<StatisticsModal
-
isOpen={statsModal.isOpen}
-
onClose={() => setStatsModal({ isOpen: false, linkId: null })}
-
linkId={statsModal.linkId!}
-
/>
-
</Suspense>
-
)}
+
<StatisticsModal
+
isOpen={statsModal.isOpen}
+
onClose={() => setStatsModal({ isOpen: false, linkId: null })}
+
linkId={statsModal.linkId!}
+
/>
</>
)
}
+1 -1
frontend/src/components/StatisticsModal.tsx
···
return null;
};
-
export default function StatisticsModal({ isOpen, onClose, linkId }: StatisticsModalProps) {
+
export function StatisticsModal({ isOpen, onClose, linkId }: StatisticsModalProps) {
const [clicksOverTime, setClicksOverTime] = useState<EnhancedClickStats[]>([]);
const [sourcesData, setSourcesData] = useState<SourceStats[]>([]);
const [loading, setLoading] = useState(true);