Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5a6da7e507 | ||
|
|
b58640beb2 | ||
|
|
140ba10df6 |
@@ -24,7 +24,7 @@ export default async function DevicesPage({
|
|||||||
</div>
|
</div>
|
||||||
<Card className="bp-glass">
|
<Card className="bp-glass">
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
<CardTitle className="text-base">Known devices</CardTitle>
|
<CardTitle className="text-sm">Known devices</CardTitle>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent className="flex flex-col gap-3">
|
<CardContent className="flex flex-col gap-3">
|
||||||
<DevicesTable devices={devices} />
|
<DevicesTable devices={devices} />
|
||||||
|
|||||||
+1
-1
@@ -56,7 +56,7 @@ export default async function DashboardPage() {
|
|||||||
|
|
||||||
<Card className="bp-glass">
|
<Card className="bp-glass">
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
<CardTitle className="text-base">Recent sessions</CardTitle>
|
<CardTitle className="text-sm">Recent sessions</CardTitle>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent className="flex flex-col gap-3">
|
<CardContent className="flex flex-col gap-3">
|
||||||
<SessionsTable sessions={recentSessions} />
|
<SessionsTable sessions={recentSessions} />
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ export default async function SessionDetailPage({ params }: { params: Promise<{
|
|||||||
|
|
||||||
<Card className="bp-glass">
|
<Card className="bp-glass">
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
<CardTitle className="text-base">Intensity timeline</CardTitle>
|
<CardTitle className="text-sm">Intensity timeline</CardTitle>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent>
|
<CardContent>
|
||||||
<SessionTimelineChart timeline={timeline} />
|
<SessionTimelineChart timeline={timeline} />
|
||||||
@@ -81,7 +81,7 @@ export default async function SessionDetailPage({ params }: { params: Promise<{
|
|||||||
|
|
||||||
<Card className="bp-glass">
|
<Card className="bp-glass">
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
<CardTitle className="text-base">Devices</CardTitle>
|
<CardTitle className="text-sm">Devices</CardTitle>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent className="flex flex-col gap-1">
|
<CardContent className="flex flex-col gap-1">
|
||||||
{detail.devices.map((d) => (
|
{detail.devices.map((d) => (
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export default async function SessionsPage({
|
|||||||
</div>
|
</div>
|
||||||
<Card className="bp-glass">
|
<Card className="bp-glass">
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
<CardTitle className="text-base">History</CardTitle>
|
<CardTitle className="text-sm">History</CardTitle>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent className="flex flex-col gap-3">
|
<CardContent className="flex flex-col gap-3">
|
||||||
<SessionsTable sessions={sessions} />
|
<SessionsTable sessions={sessions} />
|
||||||
|
|||||||
@@ -64,7 +64,29 @@ export function SessionTimelineChart({ timeline }: { timeline: TimelineRow[] })
|
|||||||
className="bp-readout text-xs"
|
className="bp-readout text-xs"
|
||||||
/>
|
/>
|
||||||
<YAxis domain={[0, 100]} tickLine={false} axisLine={false} width={32} className="bp-readout text-xs" />
|
<YAxis domain={[0, 100]} tickLine={false} axisLine={false} width={32} className="bp-readout text-xs" />
|
||||||
<ChartTooltip content={<ChartTooltipContent />} />
|
<ChartTooltip
|
||||||
|
content={
|
||||||
|
<ChartTooltipContent
|
||||||
|
formatter={(value, name) => {
|
||||||
|
const itemConfig = config[name as string];
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div
|
||||||
|
className="h-2.5 w-2.5 shrink-0 rounded-[2px]"
|
||||||
|
style={{ backgroundColor: itemConfig?.color }}
|
||||||
|
/>
|
||||||
|
<div className="flex flex-1 items-center justify-between gap-4 leading-none">
|
||||||
|
<span className="text-muted-foreground">{itemConfig?.label ?? name}</span>
|
||||||
|
<span className="bp-readout font-medium text-foreground">
|
||||||
|
{typeof value === "number" ? value.toLocaleString() : String(value)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>
|
||||||
{series.map(([sessionDeviceId]) => (
|
{series.map(([sessionDeviceId]) => (
|
||||||
<Area
|
<Area
|
||||||
key={sessionDeviceId}
|
key={sessionDeviceId}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export function DeviceUsageTable({ devices }: { devices: DeviceUsageRow[] }) {
|
|||||||
return (
|
return (
|
||||||
<Card className="bp-glass">
|
<Card className="bp-glass">
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
<CardTitle className="text-base">Device usage</CardTitle>
|
<CardTitle className="text-sm">Device usage</CardTitle>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent className="text-sm text-muted-foreground">No device activity yet.</CardContent>
|
<CardContent className="text-sm text-muted-foreground">No device activity yet.</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
@@ -26,7 +26,7 @@ export function DeviceUsageTable({ devices }: { devices: DeviceUsageRow[] }) {
|
|||||||
return (
|
return (
|
||||||
<Card className="bp-glass">
|
<Card className="bp-glass">
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
<CardTitle className="text-base">Device usage</CardTitle>
|
<CardTitle className="text-sm">Device usage</CardTitle>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent>
|
<CardContent>
|
||||||
<Table>
|
<Table>
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "sexy",
|
"name": "sexy",
|
||||||
"version": "0.9.3",
|
"version": "0.9.5",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
|
|||||||
Reference in New Issue
Block a user