fix!?
This commit is contained in:
@@ -41,6 +41,7 @@ export default function NewChatForm() {
|
||||
|
||||
// Get vendor profile first
|
||||
const vendorResponse = await authAxios.get('/auth/me');
|
||||
console.log("Vendor auth response:", vendorResponse.data);
|
||||
|
||||
// Extract vendor ID properly
|
||||
const vendorId = vendorResponse.data.vendor?._id;
|
||||
@@ -51,16 +52,32 @@ export default function NewChatForm() {
|
||||
return;
|
||||
}
|
||||
|
||||
// Fetch stores
|
||||
const storesResponse = await authAxios.get(`/storefront`);
|
||||
setVendorStores(storesResponse.data);
|
||||
// Fetch store
|
||||
const storeResponse = await authAxios.get(`/storefront`);
|
||||
console.log("Store response:", storeResponse.data);
|
||||
|
||||
if (storesResponse.data.length > 0) {
|
||||
setSelectedStore(storesResponse.data[0]._id);
|
||||
// Handle both array and single object responses
|
||||
if (Array.isArray(storeResponse.data)) {
|
||||
// If it's an array, use it as is
|
||||
setVendorStores(storeResponse.data);
|
||||
|
||||
if (storeResponse.data.length > 0) {
|
||||
setSelectedStore(storeResponse.data[0]._id);
|
||||
}
|
||||
} else if (storeResponse.data && typeof storeResponse.data === 'object' && storeResponse.data._id) {
|
||||
// If it's a single store object, convert it to an array with one element
|
||||
const singleStore = [storeResponse.data];
|
||||
setVendorStores(singleStore);
|
||||
setSelectedStore(storeResponse.data._id);
|
||||
} else {
|
||||
console.error("Expected store data but received:", storeResponse.data);
|
||||
setVendorStores([]);
|
||||
toast.error("Failed to load store data in expected format");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error fetching stores:", error);
|
||||
toast.error("Failed to load stores");
|
||||
console.error("Error fetching store:", error);
|
||||
toast.error("Failed to load store");
|
||||
setVendorStores([]);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -158,20 +175,39 @@ export default function NewChatForm() {
|
||||
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="store">Store</Label>
|
||||
<select
|
||||
id="store"
|
||||
value={selectedStore}
|
||||
onChange={(e) => setSelectedStore(e.target.value)}
|
||||
className="w-full rounded-md border border-input bg-background px-3 py-2"
|
||||
required
|
||||
>
|
||||
<option value="" disabled>Select a store</option>
|
||||
{vendorStores.map((store) => (
|
||||
<option key={store._id} value={store._id}>
|
||||
{store.name}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
{vendorStores.length === 0 ? (
|
||||
<div>
|
||||
<p className="text-sm text-muted-foreground p-2 border rounded-md">
|
||||
No store available. Please create a store first.
|
||||
</p>
|
||||
</div>
|
||||
) : vendorStores.length === 1 ? (
|
||||
<div className="p-2 border rounded-md bg-muted/20">
|
||||
<p className="text-sm font-medium">
|
||||
{vendorStores[0].name}
|
||||
</p>
|
||||
<input
|
||||
type="hidden"
|
||||
value={vendorStores[0]._id}
|
||||
name="storeId"
|
||||
/>
|
||||
</div>
|
||||
) : (
|
||||
<select
|
||||
id="store"
|
||||
value={selectedStore}
|
||||
onChange={(e) => setSelectedStore(e.target.value)}
|
||||
className="w-full rounded-md border border-input bg-background px-3 py-2"
|
||||
required
|
||||
>
|
||||
<option value="" disabled>Select a store</option>
|
||||
{vendorStores.map((store) => (
|
||||
<option key={store._id} value={store._id}>
|
||||
{store.name}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
|
||||
Reference in New Issue
Block a user