last commit implementation didn't even work properly but now it works

This commit is contained in:
Joonas 2023-01-14 20:03:30 +02:00
parent 901a569900
commit a23fbd322b
1 changed files with 18 additions and 13 deletions

View File

@ -12,7 +12,7 @@ export async function action({ request, params }) {
const clonedData = request.clone();
const formData = await clonedData.formData();
const post = formData.get("post");
let replying = formData.get("replying");
const replying = formData.get("replying");
const fileUploadHandler = unstable_createFileUploadHandler({
directory: './public/uploads/',
@ -41,18 +41,23 @@ export async function action({ request, params }) {
errors.post = "Post too long or short";
};
const currentThread = await prisma.thread.findUnique({
where: {
id: parseInt(threadId),
},
include: {
posts: true
},
});
if (replying !== "") {
let currentThreadreplyids = [];
const currentThread = await prisma.thread.findUnique({
where: {
id: parseInt(threadId),
},
include: {
posts: true
},
});
currentThread.posts.map(post => currentThreadreplyids.push(post.id));
if (typeof replying !== "string" || !parseInt(replying) || parseInt(replying) > currentThread.posts.length ) {
replying = ""
if (typeof replying !== "string" || !parseInt(replying) || !currentThreadreplyids.includes(parseInt(replying))) {
errors.replying = "bad reply id"
};
};
if (Object.keys(errors).length) {
return json(errors, { status: 422 });
};
@ -66,7 +71,7 @@ export async function action({ request, params }) {
},
});
return redirect(`/threads/${threadId}#${createPost.id}`);
return redirect(`/threads/${threadId}`);
};
export async function loader({ params }) {
@ -101,7 +106,7 @@ export default function Thread() {
return (
<Overlay>
<div className="flex flex-col p-12 bg-ctp-crust border outline rounded shadow-ctp-green shadow-lg">
<div className="bg-ctp-base rounded p-4">
<div id="OP" className="bg-ctp-base rounded p-4">
<span><strong>{data.title}</strong> Post id: <strong>{data.id}</strong> Created at: <strong>{new Date(data.createdAt).toLocaleString()}</strong> Reply count: <strong>{data.posts.length}</strong></span>
<br />
<div className="flex flex-col">