'use client'

import React, { useState } from 'react'
import ModelViewer from '@/components/ModelViewer'

export default function Home() {
  const [modelInfo, setModelInfo] = useState<{
    meshes: unknown[]
    boundingBox: {
      min: { x: number; y: number; z: number }
      max: { x: number; y: number; z: number }
    }
  } | null>(null)
  const [error, setError] = useState<string | null>(null)

  const handleModelLoaded = (data: {
    meshes: unknown[]
    boundingBox: {
      min: { x: number; y: number; z: number }
      max: { x: number; y: number; z: number }
    }
  }) => {
    setModelInfo(data)
    setError(null)
    console.log('Model loaded successfully:', data)
  }

  const handleError = (errorMessage: string) => {
    setError(errorMessage)
    setModelInfo(null)
  }

  return (
    <div className="relative h-screen">
      <ModelViewer
        modelPath="/models/EXPO_АР_PostRecon_level.gltf"
        onModelLoaded={handleModelLoaded}
        onError={handleError}
      />

      {error && (
        <div className="absolute top-4 right-4 left-4 z-50 rounded-lg bg-red-600/90 p-4 text-sm text-white md:right-auto md:left-4 md:w-80">
          <strong>Error:</strong> {error}
        </div>
      )}

      {modelInfo && (
        <div className="absolute top-4 right-4 z-50 max-w-xs rounded-lg bg-black/80 p-4 text-sm text-white">
          <h3 className="mb-3 text-base font-semibold">EXPO Building Model</h3>

          <div className="space-y-1 text-xs text-gray-300">
            <div>🖱️ Left click + drag: Rotate</div>
            <div>🖱️ Right click + drag: Pan</div>
            <div>🖱️ Scroll: Zoom in/out</div>
          </div>
        </div>
      )}
    </div>
  )
}
