fix: update skeleton mode indicators with new icon and styling for consistency across replay and settings pages
This commit is contained in:
@@ -5,6 +5,7 @@ import { useParams, useRouter } from 'next/navigation'
|
|||||||
import { getSite, type Site } from '@/lib/api/sites'
|
import { getSite, type Site } from '@/lib/api/sites'
|
||||||
import { getReplay, getReplayData, deleteReplay, formatDuration, type SessionReplay } from '@/lib/api/replays'
|
import { getReplay, getReplayData, deleteReplay, formatDuration, type SessionReplay } from '@/lib/api/replays'
|
||||||
import { toast } from 'sonner'
|
import { toast } from 'sonner'
|
||||||
|
import { LockClosedIcon } from '@radix-ui/react-icons'
|
||||||
import LoadingOverlay from '@/components/LoadingOverlay'
|
import LoadingOverlay from '@/components/LoadingOverlay'
|
||||||
import type { eventWithTime } from '@rrweb/types'
|
import type { eventWithTime } from '@rrweb/types'
|
||||||
import 'rrweb-player/dist/style.css'
|
import 'rrweb-player/dist/style.css'
|
||||||
@@ -207,7 +208,8 @@ export default function ReplayViewerPage() {
|
|||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
{replay.is_skeleton_mode && (
|
{replay.is_skeleton_mode && (
|
||||||
<span className="text-xs bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400 px-2 py-0.5 rounded">
|
<span className="inline-flex items-center gap-1.5 text-xs bg-brand-orange/10 text-brand-orange px-2 py-0.5 rounded">
|
||||||
|
<LockClosedIcon className="w-3 h-3 flex-shrink-0" />
|
||||||
Skeleton Mode
|
Skeleton Mode
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
@@ -282,8 +284,9 @@ export default function ReplayViewerPage() {
|
|||||||
<div className="pt-2 border-t border-neutral-200 dark:border-neutral-800">
|
<div className="pt-2 border-t border-neutral-200 dark:border-neutral-800">
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
{replay.is_skeleton_mode ? (
|
{replay.is_skeleton_mode ? (
|
||||||
<span className="text-xs bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400 px-2 py-1 rounded">
|
<span className="inline-flex items-center gap-1.5 text-xs bg-brand-orange/10 text-brand-orange px-2 py-1 rounded">
|
||||||
🔒 Skeleton Mode (Anonymous)
|
<LockClosedIcon className="w-3 h-3 flex-shrink-0" />
|
||||||
|
Skeleton Mode (Anonymous)
|
||||||
</span>
|
</span>
|
||||||
) : replay.consent_given ? (
|
) : replay.consent_given ? (
|
||||||
<span className="text-xs bg-green-100 dark:bg-green-900/30 text-green-600 dark:text-green-400 px-2 py-1 rounded">
|
<span className="text-xs bg-green-100 dark:bg-green-900/30 text-green-600 dark:text-green-400 px-2 py-1 rounded">
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { useParams, useRouter } from 'next/navigation'
|
|||||||
import { getSite, type Site } from '@/lib/api/sites'
|
import { getSite, type Site } from '@/lib/api/sites'
|
||||||
import { listReplays, formatDuration, type ReplayListItem, type ReplayFilters } from '@/lib/api/replays'
|
import { listReplays, formatDuration, type ReplayListItem, type ReplayFilters } from '@/lib/api/replays'
|
||||||
import { toast } from 'sonner'
|
import { toast } from 'sonner'
|
||||||
|
import { LockClosedIcon } from '@radix-ui/react-icons'
|
||||||
import LoadingOverlay from '@/components/LoadingOverlay'
|
import LoadingOverlay from '@/components/LoadingOverlay'
|
||||||
|
|
||||||
function formatDate(dateString: string) {
|
function formatDate(dateString: string) {
|
||||||
@@ -187,7 +188,8 @@ export default function ReplaysPage() {
|
|||||||
<td className="px-4 py-4">
|
<td className="px-4 py-4">
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
{replay.is_skeleton_mode && (
|
{replay.is_skeleton_mode && (
|
||||||
<span className="text-xs bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400 px-1.5 py-0.5 rounded">
|
<span className="inline-flex items-center gap-1 text-xs bg-brand-orange/10 text-brand-orange px-1.5 py-0.5 rounded">
|
||||||
|
<LockClosedIcon className="w-3 h-3 flex-shrink-0" />
|
||||||
Skeleton
|
Skeleton
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import {
|
|||||||
ExclamationTriangleIcon,
|
ExclamationTriangleIcon,
|
||||||
LightningBoltIcon,
|
LightningBoltIcon,
|
||||||
VideoIcon,
|
VideoIcon,
|
||||||
|
LockClosedIcon,
|
||||||
} from '@radix-ui/react-icons'
|
} from '@radix-ui/react-icons'
|
||||||
|
|
||||||
const TIMEZONES = [
|
const TIMEZONES = [
|
||||||
@@ -816,7 +817,10 @@ export default function SiteSettingsPage() {
|
|||||||
<div>
|
<div>
|
||||||
<div className="font-medium text-neutral-900 dark:text-white flex items-center gap-2">
|
<div className="font-medium text-neutral-900 dark:text-white flex items-center gap-2">
|
||||||
Anonymous Skeleton
|
Anonymous Skeleton
|
||||||
<span className="text-xs bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400 px-2 py-0.5 rounded">Privacy First</span>
|
<span className="inline-flex items-center gap-1 text-xs bg-brand-orange/10 text-brand-orange px-2 py-0.5 rounded">
|
||||||
|
<LockClosedIcon className="w-3 h-3 flex-shrink-0" />
|
||||||
|
Privacy First
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<p className="text-sm text-neutral-500 dark:text-neutral-400 mt-0.5">
|
<p className="text-sm text-neutral-500 dark:text-neutral-400 mt-0.5">
|
||||||
All text replaced with blocks (████), all inputs hidden. Layout and clicks preserved. No consent required.
|
All text replaced with blocks (████), all inputs hidden. Layout and clicks preserved. No consent required.
|
||||||
|
|||||||
Reference in New Issue
Block a user