From 0bc45f18d0b8c956e5d453e8c11799bf3495ec23 Mon Sep 17 00:00:00 2001 From: sirin Date: Wed, 30 Oct 2024 01:22:22 +0700 Subject: [PATCH] fix: use objects as params for multiple props --- src/app/find/page.tsx | 2 +- src/lib/data/businessQuery.ts | 36 ++++++++++++++++++++++++++++++++--- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/app/find/page.tsx b/src/app/find/page.tsx index bcfc463..729609c 100644 --- a/src/app/find/page.tsx +++ b/src/app/find/page.tsx @@ -19,7 +19,7 @@ function FindContent() { data: businesses, isLoading: isLoadingBusinesses, error: businessError, - } = useQuery(getBusinessAndProject(supabase, query)); + } = useQuery(getBusinessAndProject(supabase, { businessName: query })); const isLoading = isLoadingBusinesses; const error = businessError; diff --git a/src/lib/data/businessQuery.ts b/src/lib/data/businessQuery.ts index 4938430..6d6d138 100644 --- a/src/lib/data/businessQuery.ts +++ b/src/lib/data/businessQuery.ts @@ -1,6 +1,27 @@ import { SupabaseClient } from "@supabase/supabase-js"; -export const getBusinessAndProject = (client: SupabaseClient, businessName: String | null) => { +export const getAllBusinesses = (client: SupabaseClient) => { + return client.from("business").select(` + id, + location, + business_name, + ...business_type ( + business_type:value + ), + joined_date, + ...user_id ( + user_id:id, + username, + full_name, + email + ) + `); +}; + +export const getBusinessAndProject = ( + client: SupabaseClient, + params: { businessName?: String | null; businessId?: number | null; single?: boolean } = { single: false } +) => { const query = client.from("business").select(` business_id:id, location, @@ -31,8 +52,17 @@ export const getBusinessAndProject = (client: SupabaseClient, businessName: Stri ) `); - if (businessName && businessName.trim() !== "") { - return query.ilike("business_name", `%${businessName}%`); + if (params.businessName && params.businessName.trim() !== "") { + return query.ilike("business_name", `%${params.businessName}%`); } + + if (params.businessId) { + query.eq("id", params.businessId); + } + + if (params.single) { + query.single(); + } + return query; };