From 29412b0b8cf567549075fa6517eb7e9c26e19d16 Mon Sep 17 00:00:00 2001 From: edinstance Date: Sat, 19 Oct 2024 13:23:35 +0100 Subject: [PATCH 1/3] feat: prompts page and edit prompts page as well as schema changes --- app/prompts/[promptId]/page.tsx | 79 ++++++++++++++ app/prompts/page.tsx | 90 ++++++++++++++++ convex/_generated/api.d.ts | 2 + convex/init.ts | 1 + convex/maps.ts | 28 ++++- convex/prompts.ts | 186 ++++++++++++++++++++++++++++++++ convex/schema.ts | 6 ++ convex/scores.ts | 9 +- models/index.ts | 66 +----------- 9 files changed, 399 insertions(+), 68 deletions(-) create mode 100644 app/prompts/[promptId]/page.tsx create mode 100644 app/prompts/page.tsx create mode 100644 convex/prompts.ts diff --git a/app/prompts/[promptId]/page.tsx b/app/prompts/[promptId]/page.tsx new file mode 100644 index 0000000..070882d --- /dev/null +++ b/app/prompts/[promptId]/page.tsx @@ -0,0 +1,79 @@ +"use client"; + +import { Button } from "@/components/ui/button"; +import { Input } from "@/components/ui/input"; +import { api } from "@/convex/_generated/api"; +import { useMutation, useQuery } from "convex/react"; +import Link from "next/link"; +import { useRouter } from "next/navigation"; +import { useEffect, useState } from "react"; + +export default function editPromtPage({ + params, +}: { + params: { promptId: string }; +}) { + const prompt = useQuery(api.prompts.getPromptById, { + promptId: params.promptId, + }); + console.log(prompt); + const updatePrompt = useMutation(api.prompts.updatePrompt); + + const [promptName, setPromptName] = useState(""); + const [promptText, setPromptText] = useState(""); + + useEffect(() => { + if (prompt) { + setPromptName(prompt.promptName); + setPromptText(prompt.prompt); + } + }, [prompt]); + + const handlePromptNameChange = (e: React.ChangeEvent) => { + setPromptName(e.target.value); + }; + + const handlePromptTextChange = ( + e: React.ChangeEvent, + ) => { + setPromptText(e.target.value); + }; + + const router = useRouter(); + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + if (!prompt) return; + + updatePrompt({ promptId: prompt._id, promptName, prompt: promptText }); + router.push("/prompts"); + }; + + return ( +
+
+
+

Edit your prompt

+
+ + + + +
+
+
+ +