// Composable for product lookup via Edge Function export interface ProductData { barcode: string name: string brand?: string quantity?: string image_url?: string category?: string cached?: boolean } export const useProductLookup = () => { const supabase = useSupabaseClient() const isLoading = ref(false) const error = ref(null) const lookupProduct = async (barcode: string): Promise => { isLoading.value = true error.value = null try { const { data, error: functionError } = await supabase.functions.invoke('product-lookup', { body: { barcode } }) if (functionError) { console.error('Product lookup error:', functionError) error.value = functionError.message || 'Failed to lookup product' // Return basic product data even on error return { barcode, name: `Product ${barcode}`, cached: false } } return data as ProductData } catch (err) { console.error('Unexpected error during product lookup:', err) error.value = err instanceof Error ? err.message : 'Unknown error' // Return basic product data even on error return { barcode, name: `Product ${barcode}`, cached: false } } finally { isLoading.value = false } } return { lookupProduct, isLoading: readonly(isLoading), error: readonly(error) } }