PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.3
Presto Player v4.3.3
4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / admin / dashboard / components / Skeletons / AnalyticsDetailSkeleton.js
presto-player / src / admin / dashboard / components / Skeletons Last commit date
AnalyticsDetailSkeleton.js 3 months ago AnalyticsPageSkeleton.js 3 months ago DashboardSkeleton.js 3 months ago MediaHubPageSkeleton.js 2 months ago MediaHubRowSkeleton.js 2 months ago SettingsSectionSkeleton.js 3 months ago SettingsSkeleton.js 3 months ago UserAnalyticsDetailSkeleton.js 3 months ago
AnalyticsDetailSkeleton.js
60 lines
1 import { Skeleton, Container } from "@bsf/force-ui";
2
3 const StatCardSkeleton = ({ hasChart = false }) => (
4 <div
5 className={`bg-background-primary border border-solid border-border-subtle rounded-xl shadow-sm p-5 flex flex-col gap-1 ${
6 hasChart ? "flex-1 min-h-0" : ""
7 }`}
8 >
9 <div className="px-1 py-1">
10 <Skeleton className="w-24 h-3.5 rounded-full" />
11 </div>
12 {hasChart ? (
13 <div className="px-1 py-1 flex-1 min-h-0">
14 <Skeleton className="!w-full !h-full min-h-[140px] rounded-md" />
15 </div>
16 ) : (
17 <div className="px-1 py-1">
18 <Skeleton className="w-20 h-8 rounded-full" />
19 </div>
20 )}
21 </div>
22 );
23
24 const AnalyticsDetailSkeleton = () => (
25 <Container
26 className="p-8 bg-background-secondary"
27 direction="column"
28 gap="2xl"
29 >
30 {/* Header: Back + Title + Edit + Date Picker */}
31 <div className="flex items-center gap-3">
32 <Skeleton className="w-8 h-8 rounded-md shrink-0" />
33 <div className="flex items-center gap-3 flex-1 min-w-0">
34 <Skeleton className="w-96 h-7 rounded-full" />
35 <Skeleton className="w-8 h-8 rounded-md shrink-0" />
36 </div>
37 <Skeleton className="w-60 h-8 rounded-sm shrink-0" />
38 </div>
39
40 {/* Main Content: Video + Stats */}
41 <div className="flex gap-6 items-stretch">
42 {/* Left: Video Player */}
43 <div className="flex-1 min-w-0">
44 <div className="w-full aspect-video rounded-xl overflow-hidden">
45 <Skeleton className="!w-full !h-full rounded-xl" />
46 </div>
47 </div>
48
49 {/* Right: Stat Cards */}
50 <div className="w-[500px] shrink-0 flex flex-col gap-6">
51 <StatCardSkeleton />
52 <StatCardSkeleton />
53 <StatCardSkeleton hasChart />
54 </div>
55 </div>
56 </Container>
57 );
58
59 export default AnalyticsDetailSkeleton;
60