This commit is contained in:
daniel31x13 2023-11-07 08:03:35 -05:00
parent 6f5245cbc4
commit cb5b1751c0
7 changed files with 243 additions and 248 deletions

View File

@ -60,8 +60,7 @@ export default function Dropdown({
} }
}, [points, dropdownHeight]); }, [points, dropdownHeight]);
return ( return !points || pos ? (
(!points || pos) && (
<ClickAwayHandler <ClickAwayHandler
onMount={(e) => { onMount={(e) => {
setDropdownHeight(e.height); setDropdownHeight(e.height);
@ -85,9 +84,7 @@ export default function Dropdown({
const inner = e && ( const inner = e && (
<div className="cursor-pointer rounded-md"> <div className="cursor-pointer rounded-md">
<div className="flex items-center gap-2 py-1 px-2 hover:bg-slate-200 dark:hover:bg-neutral-700 duration-100"> <div className="flex items-center gap-2 py-1 px-2 hover:bg-slate-200 dark:hover:bg-neutral-700 duration-100">
<p className="text-black dark:text-white select-none"> <p className="text-black dark:text-white select-none">{e.name}</p>
{e.name}
</p>
</div> </div>
</div> </div>
); );
@ -105,6 +102,5 @@ export default function Dropdown({
); );
})} })}
</ClickAwayHandler> </ClickAwayHandler>
) ) : null;
);
} }

View File

@ -7,12 +7,14 @@ export default async function importFromHTMLFile(
userId: number, userId: number,
rawData: string rawData: string
) { ) {
try {
const dom = new JSDOM(rawData); const dom = new JSDOM(rawData);
const document = dom.window.document; const document = dom.window.document;
const folders = document.querySelectorAll("H3"); const folders = document.querySelectorAll("H3");
await prisma
.$transaction(
async () => {
// @ts-ignore // @ts-ignore
for (const folder of folders) { for (const folder of folders) {
const findCollection = await prisma.user.findUnique({ const findCollection = await prisma.user.findUnique({
@ -92,9 +94,10 @@ export default async function importFromHTMLFile(
}); });
} }
} }
} catch (err) { },
console.log(err); { timeout: 30000 }
} )
.catch((err) => console.log(err));
return { response: "Success.", status: 200 }; return { response: "Success.", status: 200 };
} }

View File

@ -5,10 +5,10 @@ import createFolder from "@/lib/api/storage/createFolder";
export default async function getData(userId: number, rawData: string) { export default async function getData(userId: number, rawData: string) {
const data: Backup = JSON.parse(rawData); const data: Backup = JSON.parse(rawData);
console.log(typeof data); await prisma
.$transaction(
async () => {
// Import collections // Import collections
try {
for (const e of data.collections) { for (const e of data.collections) {
e.name = e.name.trim(); e.name = e.name.trim();
@ -83,9 +83,10 @@ export default async function getData(userId: number, rawData: string) {
}); });
} }
} }
} catch (err) { },
console.log(err); { timeout: 30000 }
} )
.catch((err) => console.log(err));
return { response: "Success.", status: 200 }; return { response: "Success.", status: 200 };
} }

View File

@ -32,7 +32,9 @@ export default async function deleteUserById(
} }
// Delete the user and all related data within a transaction // Delete the user and all related data within a transaction
await prisma.$transaction(async (prisma) => { await prisma
.$transaction(
async (prisma) => {
// Delete whitelisted users // Delete whitelisted users
await prisma.whitelistedUser.deleteMany({ await prisma.whitelistedUser.deleteMany({
where: { userId }, where: { userId },
@ -60,7 +62,7 @@ export default async function deleteUserById(
}); });
// Delete archive folders // Delete archive folders
await removeFolder({ filePath: `archives/${collection.id}` }); removeFolder({ filePath: `archives/${collection.id}` });
} }
// Delete collections after cleaning up related data // Delete collections after cleaning up related data
@ -81,7 +83,10 @@ export default async function deleteUserById(
await prisma.user.delete({ await prisma.user.delete({
where: { id: userId }, where: { id: userId },
}); });
}); },
{ timeout: 20000 }
)
.catch((err) => console.log(err));
if (process.env.STRIPE_SECRET_KEY) { if (process.env.STRIPE_SECRET_KEY) {
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, { const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, {

View File

@ -1,10 +0,0 @@
import { NextApiRequest, NextApiResponse } from "next";
import { getToken } from "next-auth/jwt";
export default async (req: NextApiRequest, res: NextApiResponse) => {
// if using `NEXTAUTH_SECRET` env variable, we detect it, and you won't actually need to `secret`
// const token = await getToken({ req })
// const token = await getToken({ req });
// console.log("JSON Web Token", token);
// res.end();
};

View File

@ -8,7 +8,7 @@ import verifyUser from "@/lib/api/verifyUser";
export const config = { export const config = {
api: { api: {
bodyParser: { bodyParser: {
sizeLimit: process.env.IMPORT_SIZE_LIMIT || "2mb", sizeLimit: `${process.env.IMPORT_SIZE_LIMIT || "5"}mb`,
}, },
}, },
}; };

View File

@ -29,7 +29,7 @@ export interface Member {
} }
export interface CollectionIncludingMembersAndLinkCount export interface CollectionIncludingMembersAndLinkCount
extends Omit<Collection, "id" | "createdAt" | "ownerId"> { extends Omit<Collection, "id" | "createdAt" | "ownerId" | "updatedAt"> {
id?: number; id?: number;
ownerId?: number; ownerId?: number;
createdAt?: string; createdAt?: string;