fix: nextjs bugs with data mutations

This commit is contained in:
swve 2023-06-19 21:12:31 +02:00
parent e0c4cffef6
commit 52bc9e556b
10 changed files with 110 additions and 105 deletions

View file

@ -6,7 +6,7 @@ export async function GET(request: NextRequest) {
revalidateTag(tag); revalidateTag(tag);
return NextResponse.json( return NextResponse.json(
{ revalidated: true, now: Date.now() }, { revalidated: true, now: Date.now(), tag },
{ {
status: 200, status: 200,
headers: { headers: {

View file

@ -1,14 +1,17 @@
'use client'; 'use client';
import { AuthContext } from '@components/Security/AuthProvider'; import { AuthContext } from '@components/Security/AuthProvider';
import { getUriWithOrg } from '@services/config/config';
import { deleteCollection } from '@services/courses/collections'; import { deleteCollection } from '@services/courses/collections';
import { revalidateTags } from '@services/utils/ts/requests'; import { revalidateTags } from '@services/utils/ts/requests';
import { Link, Trash } from 'lucide-react'; import { Link, Trash } from 'lucide-react';
import { useRouter } from 'next/navigation';
import React from 'react' import React from 'react'
const CollectionAdminEditsArea = (props: any) => { const CollectionAdminEditsArea = (props: any) => {
const org_roles_values = ["admin", "owner"]; const org_roles_values = ["admin", "owner"];
const user_roles_values = ["role_admin"]; const user_roles_values = ["role_admin"];
const router = useRouter();
const auth: any = React.useContext(AuthContext); const auth: any = React.useContext(AuthContext);
@ -38,7 +41,8 @@ const CollectionAdminEditsArea = (props: any) => {
await deleteCollection(collectionId); await deleteCollection(collectionId);
revalidateTags(["collections"]); revalidateTags(["collections"]);
// reload the page // reload the page
window.location.reload(); router.refresh();
router.push(getUriWithOrg(props.orgslug, "/collections"));
} }
// this is amazingly terrible code, but gotta release that MVP // this is amazingly terrible code, but gotta release that MVP
@ -51,7 +55,7 @@ const CollectionAdminEditsArea = (props: any) => {
<button className="rounded-md text-sm px-3 font-bold text-red-800 bg-red-200 w-16 flex justify-center items-center" onClick={() => deleteCollectionUI(props.collection_id)}> <button className="rounded-md text-sm px-3 font-bold text-red-800 bg-red-200 w-16 flex justify-center items-center" onClick={() => deleteCollectionUI(props.collection_id)}>
Delete <Trash size={10}></Trash> Delete <Trash size={10}></Trash>
</button> </button>
</div> </div>
) )
} else { } else {

View file

@ -45,7 +45,9 @@ function NewCollection(params: any) {
}; };
await createCollection(collection); await createCollection(collection);
revalidateTags(["collections"]); revalidateTags(["collections"]);
router.prefetch(getUriWithOrg(orgslug, "/collections"));
router.push(getUriWithOrg(orgslug, "/collections")); router.push(getUriWithOrg(orgslug, "/collections"));
router.refresh();
}; };

View file

@ -52,7 +52,7 @@ const CollectionsPage = async (params: any) => {
<div className="home_collections flex flex-wrap"> <div className="home_collections flex flex-wrap">
{collections.map((collection: any) => ( {collections.map((collection: any) => (
<div className="pr-8 flex flex-col" key={collection.collection_id}> <div className="pr-8 flex flex-col" key={collection.collection_id}>
<CollectionAdminEditsArea collection_id={collection.collection_id} collection={collection} /> <CollectionAdminEditsArea org_id={org_id} collection_id={collection.collection_id} collection={collection} />
<Link href={getUriWithOrg(orgslug, "/collection/" + removeCollectionPrefix(collection.collection_id))}> <Link href={getUriWithOrg(orgslug, "/collection/" + removeCollectionPrefix(collection.collection_id))}>
<div className="inset-0 ring-1 ring-inset ring-black/10 rounded-lg shadow-xl relative w-[249px] h-[180px] bg-cover flex flex-col items-center justify-center bg-indigo-600 font-bold text-zinc-50" > <div className="inset-0 ring-1 ring-inset ring-black/10 rounded-lg shadow-xl relative w-[249px] h-[180px] bg-cover flex flex-col items-center justify-center bg-indigo-600 font-bold text-zinc-50" >
<h1 className="font-bold text-lg py-2 justify-center mb-2">{collection.name}</h1> <h1 className="font-bold text-lg py-2 justify-center mb-2">{collection.name}</h1>

View file

@ -11,6 +11,7 @@ import React from 'react'
import Image from 'next/image'; import Image from 'next/image';
import { AuthContext } from '@components/Security/AuthProvider'; import { AuthContext } from '@components/Security/AuthProvider';
import { revalidateTags } from '@services/utils/ts/requests'; import { revalidateTags } from '@services/utils/ts/requests';
import { useRouter } from 'next/navigation';
interface CourseProps { interface CourseProps {
orgslug: string; orgslug: string;
@ -26,12 +27,13 @@ function Courses(props: CourseProps) {
const orgslug = props.orgslug; const orgslug = props.orgslug;
const courses = props.courses; const courses = props.courses;
const [newCourseModal, setNewCourseModal] = React.useState(false); const [newCourseModal, setNewCourseModal] = React.useState(false);
const router = useRouter();
async function deleteCourses(course_id: any) { async function deleteCourses(course_id: any) {
await deleteCourseFromBackend(course_id); await deleteCourseFromBackend(course_id);
revalidateTags(['courses']); revalidateTags(['courses']);
// terrible, nextjs right now doesn't mutate the page when the data changes
window.location.reload(); router.refresh();
} }
async function closeNewCourseModal() { async function closeNewCourseModal() {
@ -40,7 +42,6 @@ function Courses(props: CourseProps) {
return ( return (
<div> <div>
<div className='max-w-7xl mx-auto px-4'> <div className='max-w-7xl mx-auto px-4'>

View file

@ -4,6 +4,7 @@ import { Field, Form, Formik } from 'formik';
import { updateOrganization, uploadOrganizationLogo } from '@services/settings/org'; import { updateOrganization, uploadOrganizationLogo } from '@services/settings/org';
import { UploadCloud } from 'lucide-react'; import { UploadCloud } from 'lucide-react';
import { revalidateTags } from '@services/utils/ts/requests'; import { revalidateTags } from '@services/utils/ts/requests';
import { useRouter } from 'next/navigation';
interface OrganizationValues { interface OrganizationValues {
@ -17,7 +18,7 @@ interface OrganizationValues {
function OrganizationClient(props: any) { function OrganizationClient(props: any) {
const [selectedFile, setSelectedFile] = useState<File | null>(null); const [selectedFile, setSelectedFile] = useState<File | null>(null);
const router = useRouter();
// ... // ...
const handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => { const handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {
@ -33,9 +34,8 @@ function OrganizationClient(props: any) {
await uploadOrganizationLogo(org_id, selectedFile); await uploadOrganizationLogo(org_id, selectedFile);
setSelectedFile(null); // Reset the selected file setSelectedFile(null); // Reset the selected file
revalidateTags(['organizations']); revalidateTags(['organizations']);
// reload the page router.refresh();
// terrible hack, it will fixed later
window.location.reload();
} }
}; };

View file

@ -8,6 +8,7 @@ import React, { useState } from 'react'
import { BarLoader } from 'react-spinners' import { BarLoader } from 'react-spinners'
import { mutate } from 'swr'; import { mutate } from 'swr';
import { revalidateTags } from '@services/utils/ts/requests'; import { revalidateTags } from '@services/utils/ts/requests';
import { useRouter } from 'next/navigation';
function CreateCourseModal({ closeModal, orgslug }: any) { function CreateCourseModal({ closeModal, orgslug }: any) {
const [isSubmitting, setIsSubmitting] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false);
@ -15,6 +16,7 @@ function CreateCourseModal({ closeModal, orgslug }: any) {
const [description, setDescription] = React.useState(""); const [description, setDescription] = React.useState("");
const [isLoading, setIsLoading] = React.useState(false); const [isLoading, setIsLoading] = React.useState(false);
const [thumbnail, setThumbnail] = React.useState(null) as any; const [thumbnail, setThumbnail] = React.useState(null) as any;
const router = useRouter();
const [orgId, setOrgId] = React.useState(null) as any; const [orgId, setOrgId] = React.useState(null) as any;
@ -46,9 +48,7 @@ function CreateCourseModal({ closeModal, orgslug }: any) {
if (status.org_id == orgId) { if (status.org_id == orgId) {
closeModal(); closeModal();
// reload the page router.refresh();
// terrible, nextjs right now doesn't mutate the page when the data changes
window.location.reload();
} else { } else {
alert("Error creating course, please see console logs"); alert("Error creating course, please see console logs");
console.log(status); console.log(status);

View file

@ -1,10 +1,8 @@
import React from "react"; import React from "react";
import learnhouseLogo from "public/learnhouse_logo.png";
import Link from "next/link"; import Link from "next/link";
import Image from "next/image";
import { getBackendUrl, getUriWithOrg } from "@services/config/config"; import { getBackendUrl, getUriWithOrg } from "@services/config/config";
import { getOrganizationContextInfo, getOrganizationContextInfoNoAsync } from "@services/organizations/orgs"; import { getOrganizationContextInfo } from "@services/organizations/orgs";
import ClientComponentSkeleton from "@components/UI/Utils/ClientComp"; import ClientComponentSkeleton from "@components/UI/Utils/ClientComp";
import { HeaderProfileBox } from "@components/Security/HeaderProfileBox"; import { HeaderProfileBox } from "@components/Security/HeaderProfileBox";

174
front/package-lock.json generated
View file

@ -26,7 +26,7 @@
"formik": "^2.2.9", "formik": "^2.2.9",
"framer-motion": "^7.3.6", "framer-motion": "^7.3.6",
"lucide-react": "^0.104.1", "lucide-react": "^0.104.1",
"next": "^13.4.6", "next": "^13.4.7-canary.1",
"re-resizable": "^6.9.9", "re-resizable": "^6.9.9",
"react": "^18.2.0", "react": "^18.2.0",
"react-beautiful-dnd": "^13.1.1", "react-beautiful-dnd": "^13.1.1",
@ -2123,9 +2123,9 @@
} }
}, },
"node_modules/@next/env": { "node_modules/@next/env": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.7-canary.1.tgz",
"integrity": "sha512-nqUxEtvDqFhmV1/awSg0K2XHNwkftNaiUqCYO9e6+MYmqNObpKVl7OgMkGaQ2SZnFx5YqF0t60ZJTlyJIDAijg==" "integrity": "sha512-2ZA+CatMIujZ5G8gN8E0ndxnMwqSEa856KUqz0hxOSJxFMT26Uds2Z6tz82sFU8biNaq4lT7cUJhGKccTXTXsg=="
}, },
"node_modules/@next/eslint-plugin-next": { "node_modules/@next/eslint-plugin-next": {
"version": "13.0.6", "version": "13.0.6",
@ -2137,9 +2137,9 @@
} }
}, },
"node_modules/@next/swc-darwin-arm64": { "node_modules/@next/swc-darwin-arm64": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.7-canary.1.tgz",
"integrity": "sha512-ahi6VP98o4HV19rkOXPSUu+ovfHfUxbJQ7VVJ7gL2FnZRr7onEFC1oGQ6NQHpm8CxpIzSSBW79kumlFMOmZVjg==", "integrity": "sha512-LmqRfCFnBSI8HPis6es0wpH+2nX9/FiSqRYZsk8ibPWcIm37rq5Qwp5cAK3hQFWlJlNdTyGaJ1e49VKZUTEXBw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -2152,9 +2152,9 @@
} }
}, },
"node_modules/@next/swc-darwin-x64": { "node_modules/@next/swc-darwin-x64": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.7-canary.1.tgz",
"integrity": "sha512-13cXxKFsPJIJKzUqrU5XB1mc0xbUgYsRcdH6/rB8c4NMEbWGdtD4QoK9ShN31TZdePpD4k416Ur7p+deMIxnnA==", "integrity": "sha512-ngS/YWlBzhC2hb9Lmw6cCcks2aZRvFIB+iHlygZIELTfBPd9OUoRlOaa/KQLa/ycKwL2c8L8AFL67i3KQs5j3g==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -2167,9 +2167,9 @@
} }
}, },
"node_modules/@next/swc-linux-arm64-gnu": { "node_modules/@next/swc-linux-arm64-gnu": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.7-canary.1.tgz",
"integrity": "sha512-Ti+NMHEjTNktCVxNjeWbYgmZvA2AqMMI2AMlzkXsU7W4pXCMhrryAmAIoo+7YdJbsx01JQWYVxGe62G6DoCLaA==", "integrity": "sha512-5NDlJaba0tWz7mU6IpCfOQ5xDwXwFg4SV6IKLDoNFEchkmlAifW8y2i2OCdmaG+MDpODi3xUBkM1qP2Sd6oUMQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -2182,9 +2182,9 @@
} }
}, },
"node_modules/@next/swc-linux-arm64-musl": { "node_modules/@next/swc-linux-arm64-musl": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.7-canary.1.tgz",
"integrity": "sha512-OHoC6gO7XfjstgwR+z6UHKlvhqJfyMtNaJidjx3sEcfaDwS7R2lqR5AABi8PuilGgi0BO0O0sCXqLlpp3a0emQ==", "integrity": "sha512-bYIMi8vhtlCvAMg2xa0CCeOZ0wOZoOKUd9w46qmWfddBUuhwJj5C+QKHXOG+oTxXIVxq14Ffkww9orafYV0R6g==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -2197,9 +2197,9 @@
} }
}, },
"node_modules/@next/swc-linux-x64-gnu": { "node_modules/@next/swc-linux-x64-gnu": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.7-canary.1.tgz",
"integrity": "sha512-zHZxPGkUlpfNJCboUrFqwlwEX5vI9LSN70b8XEb0DYzzlrZyCyOi7hwDp/+3Urm9AB7YCAJkgR5Sp1XBVjHdfQ==", "integrity": "sha512-FvO2t5F02zzvWRybStIR5QZJnOSaznF6E7njBD0hcCeb3Il84rKJCc4DoMhcLt68YljI6tWhqlDbiy+7ghfJlg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -2212,9 +2212,9 @@
} }
}, },
"node_modules/@next/swc-linux-x64-musl": { "node_modules/@next/swc-linux-x64-musl": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.7-canary.1.tgz",
"integrity": "sha512-K/Y8lYGTwTpv5ME8PSJxwxLolaDRdVy+lOd9yMRMiQE0BLUhtxtCWC9ypV42uh9WpLjoaD0joOsB9Q6mbrSGJg==", "integrity": "sha512-2kxqgbBvP+WUrKrrEcFqWGKrff5hGCmzEju5sbEZExuFV7sy+4nf5I9A9f0dFiP3z1hudVGJDrgbcDwt0Odvxw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -2227,9 +2227,9 @@
} }
}, },
"node_modules/@next/swc-win32-arm64-msvc": { "node_modules/@next/swc-win32-arm64-msvc": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.7-canary.1.tgz",
"integrity": "sha512-U6LtxEUrjBL2tpW+Kr1nHCSJWNeIed7U7l5o7FiKGGwGgIlFi4UHDiLI6TQ2lxi20fAU33CsruV3U0GuzMlXIw==", "integrity": "sha512-u+IxAt8i/iYc760qAMlrs0yGyYNokRJpWWdVBwTQ7n5zsjpJ2xifga3r8fWEJwdRvH0yVx15IM/QYZXQOJ8TQA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -2242,9 +2242,9 @@
} }
}, },
"node_modules/@next/swc-win32-ia32-msvc": { "node_modules/@next/swc-win32-ia32-msvc": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.7-canary.1.tgz",
"integrity": "sha512-eEBeAqpCfhdPSlCZCayjCiyIllVqy4tcqvm1xmg3BgJG0G5ITiMM4Cw2WVeRSgWDJqQGRyyb+q8Y2ltzhXOWsQ==", "integrity": "sha512-aChXbr2c0aEwMhhkl9+JT7A2x7JMpmP5NLD7m+Drt4Ss6NZYTwecJTFEt/AbtIm5V/pMYVb1UDZXJtfTKNiHhw==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@ -2257,9 +2257,9 @@
} }
}, },
"node_modules/@next/swc-win32-x64-msvc": { "node_modules/@next/swc-win32-x64-msvc": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.7-canary.1.tgz",
"integrity": "sha512-OrZs94AuO3ZS5tnqlyPRNgfWvboXaDQCi5aXGve3o3C+Sj0ctMUV9+Do+0zMvvLRumR8E0PTWKvtz9n5vzIsWw==", "integrity": "sha512-AcZDEqMXW3Bm2dmhMc8metReCpx/NilC8LPKP44SFM97y5OaAfhG+47n0SAmhI9L8NaWMsZCS5NryM/6scyaWQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -6375,11 +6375,11 @@
"dev": true "dev": true
}, },
"node_modules/next": { "node_modules/next": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/next/-/next-13.4.6.tgz", "resolved": "https://registry.npmjs.org/next/-/next-13.4.7-canary.1.tgz",
"integrity": "sha512-sjVqjxU+U2aXZnYt4Ud6CTLNNwWjdSfMgemGpIQJcN3Z7Jni9xRWbR0ie5fQzCg87aLqQVhKA2ud2gPoqJ9lGw==", "integrity": "sha512-IKmDxqALqXSSJHSdlslKq1Dry5x8gaQfXtOo8acyVRu0GDIc/Az8Hv/TWUkRGZPA76yllZeEf16LIv3QLkvLMA==",
"dependencies": { "dependencies": {
"@next/env": "13.4.6", "@next/env": "13.4.7-canary.1",
"@swc/helpers": "0.5.1", "@swc/helpers": "0.5.1",
"busboy": "1.6.0", "busboy": "1.6.0",
"caniuse-lite": "^1.0.30001406", "caniuse-lite": "^1.0.30001406",
@ -6395,15 +6395,15 @@
"node": ">=16.8.0" "node": ">=16.8.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@next/swc-darwin-arm64": "13.4.6", "@next/swc-darwin-arm64": "13.4.7-canary.1",
"@next/swc-darwin-x64": "13.4.6", "@next/swc-darwin-x64": "13.4.7-canary.1",
"@next/swc-linux-arm64-gnu": "13.4.6", "@next/swc-linux-arm64-gnu": "13.4.7-canary.1",
"@next/swc-linux-arm64-musl": "13.4.6", "@next/swc-linux-arm64-musl": "13.4.7-canary.1",
"@next/swc-linux-x64-gnu": "13.4.6", "@next/swc-linux-x64-gnu": "13.4.7-canary.1",
"@next/swc-linux-x64-musl": "13.4.6", "@next/swc-linux-x64-musl": "13.4.7-canary.1",
"@next/swc-win32-arm64-msvc": "13.4.6", "@next/swc-win32-arm64-msvc": "13.4.7-canary.1",
"@next/swc-win32-ia32-msvc": "13.4.6", "@next/swc-win32-ia32-msvc": "13.4.7-canary.1",
"@next/swc-win32-x64-msvc": "13.4.6" "@next/swc-win32-x64-msvc": "13.4.7-canary.1"
}, },
"peerDependencies": { "peerDependencies": {
"@opentelemetry/api": "^1.1.0", "@opentelemetry/api": "^1.1.0",
@ -10056,9 +10056,9 @@
} }
}, },
"@next/env": { "@next/env": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.7-canary.1.tgz",
"integrity": "sha512-nqUxEtvDqFhmV1/awSg0K2XHNwkftNaiUqCYO9e6+MYmqNObpKVl7OgMkGaQ2SZnFx5YqF0t60ZJTlyJIDAijg==" "integrity": "sha512-2ZA+CatMIujZ5G8gN8E0ndxnMwqSEa856KUqz0hxOSJxFMT26Uds2Z6tz82sFU8biNaq4lT7cUJhGKccTXTXsg=="
}, },
"@next/eslint-plugin-next": { "@next/eslint-plugin-next": {
"version": "13.0.6", "version": "13.0.6",
@ -10070,57 +10070,57 @@
} }
}, },
"@next/swc-darwin-arm64": { "@next/swc-darwin-arm64": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.7-canary.1.tgz",
"integrity": "sha512-ahi6VP98o4HV19rkOXPSUu+ovfHfUxbJQ7VVJ7gL2FnZRr7onEFC1oGQ6NQHpm8CxpIzSSBW79kumlFMOmZVjg==", "integrity": "sha512-LmqRfCFnBSI8HPis6es0wpH+2nX9/FiSqRYZsk8ibPWcIm37rq5Qwp5cAK3hQFWlJlNdTyGaJ1e49VKZUTEXBw==",
"optional": true "optional": true
}, },
"@next/swc-darwin-x64": { "@next/swc-darwin-x64": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.7-canary.1.tgz",
"integrity": "sha512-13cXxKFsPJIJKzUqrU5XB1mc0xbUgYsRcdH6/rB8c4NMEbWGdtD4QoK9ShN31TZdePpD4k416Ur7p+deMIxnnA==", "integrity": "sha512-ngS/YWlBzhC2hb9Lmw6cCcks2aZRvFIB+iHlygZIELTfBPd9OUoRlOaa/KQLa/ycKwL2c8L8AFL67i3KQs5j3g==",
"optional": true "optional": true
}, },
"@next/swc-linux-arm64-gnu": { "@next/swc-linux-arm64-gnu": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.7-canary.1.tgz",
"integrity": "sha512-Ti+NMHEjTNktCVxNjeWbYgmZvA2AqMMI2AMlzkXsU7W4pXCMhrryAmAIoo+7YdJbsx01JQWYVxGe62G6DoCLaA==", "integrity": "sha512-5NDlJaba0tWz7mU6IpCfOQ5xDwXwFg4SV6IKLDoNFEchkmlAifW8y2i2OCdmaG+MDpODi3xUBkM1qP2Sd6oUMQ==",
"optional": true "optional": true
}, },
"@next/swc-linux-arm64-musl": { "@next/swc-linux-arm64-musl": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.7-canary.1.tgz",
"integrity": "sha512-OHoC6gO7XfjstgwR+z6UHKlvhqJfyMtNaJidjx3sEcfaDwS7R2lqR5AABi8PuilGgi0BO0O0sCXqLlpp3a0emQ==", "integrity": "sha512-bYIMi8vhtlCvAMg2xa0CCeOZ0wOZoOKUd9w46qmWfddBUuhwJj5C+QKHXOG+oTxXIVxq14Ffkww9orafYV0R6g==",
"optional": true "optional": true
}, },
"@next/swc-linux-x64-gnu": { "@next/swc-linux-x64-gnu": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.7-canary.1.tgz",
"integrity": "sha512-zHZxPGkUlpfNJCboUrFqwlwEX5vI9LSN70b8XEb0DYzzlrZyCyOi7hwDp/+3Urm9AB7YCAJkgR5Sp1XBVjHdfQ==", "integrity": "sha512-FvO2t5F02zzvWRybStIR5QZJnOSaznF6E7njBD0hcCeb3Il84rKJCc4DoMhcLt68YljI6tWhqlDbiy+7ghfJlg==",
"optional": true "optional": true
}, },
"@next/swc-linux-x64-musl": { "@next/swc-linux-x64-musl": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.7-canary.1.tgz",
"integrity": "sha512-K/Y8lYGTwTpv5ME8PSJxwxLolaDRdVy+lOd9yMRMiQE0BLUhtxtCWC9ypV42uh9WpLjoaD0joOsB9Q6mbrSGJg==", "integrity": "sha512-2kxqgbBvP+WUrKrrEcFqWGKrff5hGCmzEju5sbEZExuFV7sy+4nf5I9A9f0dFiP3z1hudVGJDrgbcDwt0Odvxw==",
"optional": true "optional": true
}, },
"@next/swc-win32-arm64-msvc": { "@next/swc-win32-arm64-msvc": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.7-canary.1.tgz",
"integrity": "sha512-U6LtxEUrjBL2tpW+Kr1nHCSJWNeIed7U7l5o7FiKGGwGgIlFi4UHDiLI6TQ2lxi20fAU33CsruV3U0GuzMlXIw==", "integrity": "sha512-u+IxAt8i/iYc760qAMlrs0yGyYNokRJpWWdVBwTQ7n5zsjpJ2xifga3r8fWEJwdRvH0yVx15IM/QYZXQOJ8TQA==",
"optional": true "optional": true
}, },
"@next/swc-win32-ia32-msvc": { "@next/swc-win32-ia32-msvc": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.7-canary.1.tgz",
"integrity": "sha512-eEBeAqpCfhdPSlCZCayjCiyIllVqy4tcqvm1xmg3BgJG0G5ITiMM4Cw2WVeRSgWDJqQGRyyb+q8Y2ltzhXOWsQ==", "integrity": "sha512-aChXbr2c0aEwMhhkl9+JT7A2x7JMpmP5NLD7m+Drt4Ss6NZYTwecJTFEt/AbtIm5V/pMYVb1UDZXJtfTKNiHhw==",
"optional": true "optional": true
}, },
"@next/swc-win32-x64-msvc": { "@next/swc-win32-x64-msvc": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.6.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.7-canary.1.tgz",
"integrity": "sha512-OrZs94AuO3ZS5tnqlyPRNgfWvboXaDQCi5aXGve3o3C+Sj0ctMUV9+Do+0zMvvLRumR8E0PTWKvtz9n5vzIsWw==", "integrity": "sha512-AcZDEqMXW3Bm2dmhMc8metReCpx/NilC8LPKP44SFM97y5OaAfhG+47n0SAmhI9L8NaWMsZCS5NryM/6scyaWQ==",
"optional": true "optional": true
}, },
"@nicolo-ribaudo/chokidar-2": { "@nicolo-ribaudo/chokidar-2": {
@ -13093,20 +13093,20 @@
"dev": true "dev": true
}, },
"next": { "next": {
"version": "13.4.6", "version": "13.4.7-canary.1",
"resolved": "https://registry.npmjs.org/next/-/next-13.4.6.tgz", "resolved": "https://registry.npmjs.org/next/-/next-13.4.7-canary.1.tgz",
"integrity": "sha512-sjVqjxU+U2aXZnYt4Ud6CTLNNwWjdSfMgemGpIQJcN3Z7Jni9xRWbR0ie5fQzCg87aLqQVhKA2ud2gPoqJ9lGw==", "integrity": "sha512-IKmDxqALqXSSJHSdlslKq1Dry5x8gaQfXtOo8acyVRu0GDIc/Az8Hv/TWUkRGZPA76yllZeEf16LIv3QLkvLMA==",
"requires": { "requires": {
"@next/env": "13.4.6", "@next/env": "13.4.7-canary.1",
"@next/swc-darwin-arm64": "13.4.6", "@next/swc-darwin-arm64": "13.4.7-canary.1",
"@next/swc-darwin-x64": "13.4.6", "@next/swc-darwin-x64": "13.4.7-canary.1",
"@next/swc-linux-arm64-gnu": "13.4.6", "@next/swc-linux-arm64-gnu": "13.4.7-canary.1",
"@next/swc-linux-arm64-musl": "13.4.6", "@next/swc-linux-arm64-musl": "13.4.7-canary.1",
"@next/swc-linux-x64-gnu": "13.4.6", "@next/swc-linux-x64-gnu": "13.4.7-canary.1",
"@next/swc-linux-x64-musl": "13.4.6", "@next/swc-linux-x64-musl": "13.4.7-canary.1",
"@next/swc-win32-arm64-msvc": "13.4.6", "@next/swc-win32-arm64-msvc": "13.4.7-canary.1",
"@next/swc-win32-ia32-msvc": "13.4.6", "@next/swc-win32-ia32-msvc": "13.4.7-canary.1",
"@next/swc-win32-x64-msvc": "13.4.6", "@next/swc-win32-x64-msvc": "13.4.7-canary.1",
"@swc/helpers": "0.5.1", "@swc/helpers": "0.5.1",
"busboy": "1.6.0", "busboy": "1.6.0",
"caniuse-lite": "^1.0.30001406", "caniuse-lite": "^1.0.30001406",

View file

@ -27,7 +27,7 @@
"formik": "^2.2.9", "formik": "^2.2.9",
"framer-motion": "^7.3.6", "framer-motion": "^7.3.6",
"lucide-react": "^0.104.1", "lucide-react": "^0.104.1",
"next": "^13.4.6", "next": "^13.4.7-canary.1",
"re-resizable": "^6.9.9", "re-resizable": "^6.9.9",
"react": "^18.2.0", "react": "^18.2.0",
"react-beautiful-dnd": "^13.1.1", "react-beautiful-dnd": "^13.1.1",