mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-25 00:11:14 -05:00
Refactor log_request_metadata function
This commit is contained in:
@@ -88,16 +88,13 @@ interface ContactSubmission {
|
||||
user_id: string | null;
|
||||
submitter_username: string | null;
|
||||
submitter_reputation: number | null;
|
||||
submitter_profile_data: {
|
||||
submitter_profile: {
|
||||
display_name?: string;
|
||||
member_since?: string;
|
||||
stats?: {
|
||||
rides: number;
|
||||
coasters: number;
|
||||
parks: number;
|
||||
reviews: number;
|
||||
};
|
||||
reputation?: number;
|
||||
created_at?: string;
|
||||
coaster_count?: number;
|
||||
ride_count?: number;
|
||||
park_count?: number;
|
||||
review_count?: number;
|
||||
avatar_url?: string;
|
||||
} | null;
|
||||
name: string;
|
||||
@@ -163,7 +160,19 @@ export default function AdminContact() {
|
||||
queryFn: async () => {
|
||||
let query = supabase
|
||||
.from('contact_submissions')
|
||||
.select('*')
|
||||
.select(`
|
||||
*,
|
||||
submitter_profile:profiles!submitter_profile_id(
|
||||
avatar_url,
|
||||
display_name,
|
||||
username,
|
||||
created_at,
|
||||
coaster_count,
|
||||
ride_count,
|
||||
park_count,
|
||||
review_count
|
||||
)
|
||||
`)
|
||||
.order('created_at', { ascending: false });
|
||||
|
||||
// Filter archived based on toggle
|
||||
@@ -1044,7 +1053,7 @@ export default function AdminContact() {
|
||||
</div>
|
||||
|
||||
{/* User Context Section */}
|
||||
{selectedSubmission.submitter_profile_data && (
|
||||
{selectedSubmission.submitter_profile && (
|
||||
<div className="border rounded-lg p-4 bg-muted/30">
|
||||
<h4 className="font-semibold mb-3 flex items-center gap-2">
|
||||
<User className="h-4 w-4" />
|
||||
@@ -1052,8 +1061,8 @@ export default function AdminContact() {
|
||||
</h4>
|
||||
<div className="flex items-start gap-4">
|
||||
<Avatar className="h-12 w-12">
|
||||
{selectedSubmission.submitter_profile_data.avatar_url && (
|
||||
<AvatarImage src={selectedSubmission.submitter_profile_data.avatar_url} />
|
||||
{selectedSubmission.submitter_profile.avatar_url && (
|
||||
<AvatarImage src={selectedSubmission.submitter_profile.avatar_url} />
|
||||
)}
|
||||
<AvatarFallback>
|
||||
{selectedSubmission.submitter_username?.[0]?.toUpperCase() || 'U'}
|
||||
@@ -1064,9 +1073,9 @@ export default function AdminContact() {
|
||||
<span className="font-medium">
|
||||
@{selectedSubmission.submitter_username}
|
||||
</span>
|
||||
{selectedSubmission.submitter_profile_data.display_name && (
|
||||
{selectedSubmission.submitter_profile.display_name && (
|
||||
<span className="text-muted-foreground">
|
||||
({selectedSubmission.submitter_profile_data.display_name})
|
||||
({selectedSubmission.submitter_profile.display_name})
|
||||
</span>
|
||||
)}
|
||||
<Badge variant="secondary" className="gap-1">
|
||||
@@ -1074,25 +1083,23 @@ export default function AdminContact() {
|
||||
{selectedSubmission.submitter_reputation} rep
|
||||
</Badge>
|
||||
</div>
|
||||
{selectedSubmission.submitter_profile_data.member_since && (
|
||||
{selectedSubmission.submitter_profile.created_at && (
|
||||
<div className="text-sm text-muted-foreground">
|
||||
Member since {format(new Date(selectedSubmission.submitter_profile_data.member_since), 'MMM d, yyyy')}
|
||||
</div>
|
||||
)}
|
||||
{selectedSubmission.submitter_profile_data.stats && (
|
||||
<div className="flex items-center gap-3 text-sm flex-wrap">
|
||||
<span className="flex items-center gap-1">
|
||||
<TrendingUp className="h-3 w-3" />
|
||||
{selectedSubmission.submitter_profile_data.stats.rides} rides
|
||||
</span>
|
||||
<span>•</span>
|
||||
<span>{selectedSubmission.submitter_profile_data.stats.coasters} coasters</span>
|
||||
<span>•</span>
|
||||
<span>{selectedSubmission.submitter_profile_data.stats.parks} parks</span>
|
||||
<span>•</span>
|
||||
<span>{selectedSubmission.submitter_profile_data.stats.reviews} reviews</span>
|
||||
Member since {format(new Date(selectedSubmission.submitter_profile.created_at), 'MMM d, yyyy')}
|
||||
</div>
|
||||
)}
|
||||
<div className="flex items-center gap-3 text-sm flex-wrap">
|
||||
<span className="flex items-center gap-1">
|
||||
<TrendingUp className="h-3 w-3" />
|
||||
{selectedSubmission.submitter_profile.ride_count || 0} rides
|
||||
</span>
|
||||
<span>•</span>
|
||||
<span>{selectedSubmission.submitter_profile.coaster_count || 0} coasters</span>
|
||||
<span>•</span>
|
||||
<span>{selectedSubmission.submitter_profile.park_count || 0} parks</span>
|
||||
<span>•</span>
|
||||
<span>{selectedSubmission.submitter_profile.review_count || 0} reviews</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user