import { ViewLocationCard } from '@/app/ui/ViewLocationCard'; import { fetchLocationById, setSeenByTenantAt, validateShareAccess } from '@/app/lib/actions/locationActions'; import { getUserSettingsByUserId } from '@/app/lib/actions/userSettingsActions'; import { notFound } from 'next/navigation'; import { myAuth } from '@/app/lib/auth'; export default async function LocationViewPage({ shareId }: { shareId: string }) { // Validate share access (checks checksum + TTL, extracts locationId) const accessValidation = await validateShareAccess(shareId); if (!accessValidation.valid || !accessValidation.locationId) { return (

{accessValidation.error || 'This content is no longer shared'}

); } const locationId = accessValidation.locationId; // Fetch location const location = await fetchLocationById(locationId); if (!location) { return notFound(); } // Fetch user settings for the location owner const userSettings = await getUserSettingsByUserId(location.userId); // Check if the page was accessed by an authenticated user who is the owner const session = await myAuth(); const isOwner = session?.user?.id === location.userId; // If the page is not visited by the owner, mark it as seen by tenant if (!isOwner) { await setSeenByTenantAt(locationId); } return ( ); }