Gracy Bhardwaj
Gracy Bhardwaj
CCConvex Community
Created by Gracy Bhardwaj on 9/15/2024 in #support-community
Connecting backend to frontend and facing issues with convex
This worked, now I im trying to just add dummy data to see if everything works. I created a dummy.ts file and am placing it in my src file and have this import { convex } from "./api/convex"; // assuming this is where Convex client is initialized import call above but it is giving me an error Cannot find module './api/convex' or its corresponding type declarations.ts(2307)
12 replies
CCConvex Community
Created by Gracy Bhardwaj on 9/15/2024 in #support-community
Connecting backend to frontend and facing issues with convex
Now, I am getting this error: chunk-6BKLQ22S.js?v=61ceaea8:19413 Uncaught Error: [CONVEX Q(myFunctions:cropToFarmer)] [Request ID: 5f483ecd52308dc5] Server Error Could not find public function for 'myFunctions:cropToFarmer'. Did you forget to run npx convex dev or npx convex deploy? Called by client at OptimisticQueryResults.queryResult (convex_react.js?v=61ceaea8:684:13) at BaseConvexClient.localQueryResult (convex_react.js?v=61ceaea8:1952:40) at Object.localQueryResult (convex_react.js?v=61ceaea8:2348:34) at QueriesObserver.getLocalResults (convex_react.js?v=61ceaea8:2578:23) at getCurrentValue (convex_react.js?v=61ceaea8:2709:25) at convex_react.js?v=61ceaea8:2668:23 at basicStateReducer (chunk-6BKLQ22S.js?v=61ceaea8:11703:49) at updateReducer (chunk-6BKLQ22S.js?v=61ceaea8:11794:30) at updateState (chunk-6BKLQ22S.js?v=61ceaea8:12021:18) at Object.useState (chunk-6BKLQ22S.js?v=61ceaea8:12753:24) here is my main.tsx file: import React from 'react'; import ReactDOM from 'react-dom/client'; import App from './App.tsx'; import './index.css'; import { ClerkProvider } from '@clerk/clerk-react'; import { ConvexProvider, ConvexReactClient } from "convex/react"; // Initialize the Convex client const convex = new ConvexReactClient(import.meta.env.VITE_CONVEX_URL as string); // Import your publishable key for Clerk const PUBLISHABLE_KEY = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY; if (!PUBLISHABLE_KEY) { throw new Error("Missing Clerk Publishable Key"); } if (!convex) { throw new Error("Convex client failed to initialize"); } ReactDOM.createRoot(document.getElementById('root')!).render( <React.StrictMode> {/* Wrap your app in both ConvexProvider and ClerkProvider */} <ClerkProvider publishableKey={PUBLISHABLE_KEY} afterSignOutUrl="/"> <ConvexProvider client={convex}> <App /> </ConvexProvider> </ClerkProvider> </React.StrictMode> );
12 replies
CCConvex Community
Created by Gracy Bhardwaj on 9/15/2024 in #support-community
Connecting backend to frontend and facing issues with convex
What api.fileName should be we referencing to?
12 replies
CCConvex Community
Created by Gracy Bhardwaj on 9/15/2024 in #support-community
Connecting backend to frontend and facing issues with convex
We can also hop onto a zoom call if that is easier. I think that this is not a hard fix, just me and the mentors dont know how convex works to make this work
12 replies
CCConvex Community
Created by Gracy Bhardwaj on 9/15/2024 in #support-community
Connecting backend to frontend and facing issues with convex
const getRecords = useQuery(cropToFarmer, { farmer_id: farmerId }); // Pass function reference, not string in this? What should we be passing in the useQuery function. this is what we are sending to the frontend: export const cropToFarmer = query({ args: { farmer_id: v.string() }, handler: async (ctx, args) => { // Step 1: Get all crops for the farmer const crops = await ctx.db.query("crops").filter(q => q.eq("farmer_id", args.farmer_id)).collect(); const cropIds = crops.map(crop => crop.crop_id);
// Step 2: Get all sensors related to those crops const sensors = await ctx.db.query("sensors").filter(q => cropIds.includes(q.field("crop_id"))).collect(); const sensorIds = sensors.map(sensor => sensor.sensor_id);
// Step 3: Fetch all records related to the sensor ids const records = await ctx.db.query("records").filter(q => sensorIds.includes(q.field("sensor_id"))).collect();
// Returning the records return records; }, }); but in this: function CropDashboard({ farmerId }: CropDashboardProps) { // Fetch records from the Convex backend for the given farmerId const getRecords = useQuery(cropToFarmer, { farmer_id: farmerId }); // Pass function reference, not string
const [crops, setCrops] = useState<Record[]>([]); // Using Record type useEffect(() => { if (getRecords) { // Update the crop data based on the records fetched const updatedCrops = getRecords.map(record => ({ name: Sensor ${record.sensor_id}, humidity: ${record.humidity}%, temp: ${record.temp}°C, uvi: ${record.uv} (Moderate), })); setCrops(updatedCrops); } }, [getRecords]); the cropToFarmer and record field are giving the errors: Argument of type 'RegisteredQuery<"public", { farmer_id: string; }, Promise<any[]>>' is not assignable to parameter of type 'FunctionReference<"query">'.ts(2345) which i believe is due to the convex
12 replies