36 lines
961 B
TypeScript
36 lines
961 B
TypeScript
import { createClient } from '@/lib/supabase/server'
|
|
import { redirect } from 'next/navigation'
|
|
import type { Order } from '@/lib/types'
|
|
import { MyOrdersClient } from './MyOrdersClient'
|
|
|
|
export default async function MyOrdersPage() {
|
|
const supabase = await createClient()
|
|
|
|
const { data: { user } } = await supabase.auth.getUser()
|
|
if (!user) redirect('/auth/login')
|
|
|
|
// Get user's company_id and fetch all company orders
|
|
const { data: dbUser } = await supabase
|
|
.from('users')
|
|
.select('company_id')
|
|
.eq('id', user.id)
|
|
.single()
|
|
|
|
let query = supabase.from('orders').select('*')
|
|
|
|
if (dbUser?.company_id) {
|
|
query = query.eq('company_id', dbUser.company_id)
|
|
} else {
|
|
query = query.eq('user_id', user.id)
|
|
}
|
|
|
|
const { data: orders, error } = await query.order('created_at', { ascending: false })
|
|
|
|
return (
|
|
<MyOrdersClient
|
|
orders={(orders as Order[]) || []}
|
|
error={error ? error.message : null}
|
|
/>
|
|
)
|
|
}
|