diff --git a/drizzle.config.ts b/drizzle.config.ts
index 2d05ffb..012da63 100644
--- a/drizzle.config.ts
+++ b/drizzle.config.ts
@@ -3,7 +3,7 @@ import type { Config } from "drizzle-kit";
import { env } from "~/env";
export default {
- schema: "./src/server/db/schema.ts",
+ schema: "./src/server/dbschema/schema.ts",
dialect: "postgresql",
dbCredentials: {
url: env.DATABASE_URL,
diff --git a/package.json b/package.json
index b40f665..2ea825b 100644
--- a/package.json
+++ b/package.json
@@ -16,50 +16,51 @@
"preview": "next build && next start",
"start": "next start",
"typecheck": "tsc --noEmit",
- "test": "vitest --coverage --typecheck"
+ "test": "vitest --typecheck"
},
"dependencies": {
- "@clerk/nextjs": "^6.27.1",
+ "@clerk/nextjs": "^6.31.6",
"@electric-sql/pglite": "^0.3.7",
"@fortawesome/fontawesome-svg-core": "^6.7.2",
"@fortawesome/free-solid-svg-icons": "^6.7.2",
- "@fortawesome/react-fontawesome": "^0.2.3",
+ "@fortawesome/react-fontawesome": "^0.2.6",
"@gsap/react": "^2.1.2",
- "@hookform/resolvers": "^5.2.0",
+ "@hookform/resolvers": "^5.2.1",
"@neondatabase/serverless": "^1.0.1",
- "@radix-ui/react-accordion": "^1.2.11",
- "@radix-ui/react-alert-dialog": "^1.1.14",
+ "@radix-ui/react-accordion": "^1.2.12",
+ "@radix-ui/react-alert-dialog": "^1.1.15",
"@radix-ui/react-aspect-ratio": "^1.1.7",
"@radix-ui/react-avatar": "^1.1.10",
- "@radix-ui/react-checkbox": "^1.3.2",
- "@radix-ui/react-collapsible": "^1.1.11",
- "@radix-ui/react-context-menu": "^2.2.15",
- "@radix-ui/react-dialog": "^1.1.14",
- "@radix-ui/react-dropdown-menu": "^2.1.15",
- "@radix-ui/react-hover-card": "^1.1.14",
+ "@radix-ui/react-checkbox": "^1.3.3",
+ "@radix-ui/react-collapsible": "^1.1.12",
+ "@radix-ui/react-context-menu": "^2.2.16",
+ "@radix-ui/react-dialog": "^1.1.15",
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
+ "@radix-ui/react-hover-card": "^1.1.15",
"@radix-ui/react-label": "^2.1.7",
- "@radix-ui/react-menubar": "^1.1.15",
- "@radix-ui/react-navigation-menu": "^1.2.13",
- "@radix-ui/react-popover": "^1.1.14",
+ "@radix-ui/react-menubar": "^1.1.16",
+ "@radix-ui/react-navigation-menu": "^1.2.14",
+ "@radix-ui/react-popover": "^1.1.15",
"@radix-ui/react-progress": "^1.1.7",
- "@radix-ui/react-radio-group": "^1.3.7",
- "@radix-ui/react-scroll-area": "^1.2.9",
- "@radix-ui/react-select": "^2.2.5",
+ "@radix-ui/react-radio-group": "^1.3.8",
+ "@radix-ui/react-scroll-area": "^1.2.10",
+ "@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-separator": "^1.1.7",
- "@radix-ui/react-slider": "^1.3.5",
+ "@radix-ui/react-slider": "^1.3.6",
"@radix-ui/react-slot": "^1.2.3",
- "@radix-ui/react-switch": "^1.2.5",
- "@radix-ui/react-tabs": "^1.1.12",
- "@radix-ui/react-toggle": "^1.1.9",
- "@radix-ui/react-toggle-group": "^1.1.10",
- "@radix-ui/react-tooltip": "^1.2.7",
+ "@radix-ui/react-switch": "^1.2.6",
+ "@radix-ui/react-tabs": "^1.1.13",
+ "@radix-ui/react-toggle": "^1.1.10",
+ "@radix-ui/react-toggle-group": "^1.1.11",
+ "@radix-ui/react-tooltip": "^1.2.8",
"@t3-oss/env-nextjs": "^0.12.0",
- "@tanstack/react-query": "^5.83.0",
- "@tanstack/react-query-next-experimental": "^5.83.0",
- "@trpc/client": "^11.4.3",
- "@trpc/next": "^11.4.3",
- "@trpc/react-query": "^11.4.3",
- "@trpc/server": "^11.4.3",
+ "@tanstack/react-query": "^5.85.5",
+ "@tanstack/react-query-next-experimental": "^5.85.5",
+ "@testing-library/user-event": "^14.6.1",
+ "@trpc/client": "^11.5.0",
+ "@trpc/next": "^11.5.0",
+ "@trpc/react-query": "^11.5.0",
+ "@trpc/server": "^11.5.0",
"@uiw/react-md-editor": "^4.0.8",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
@@ -79,14 +80,14 @@
"react": "^19.1.1",
"react-day-picker": "9.8.1",
"react-dom": "^19.1.1",
- "react-hook-form": "^7.61.1",
+ "react-hook-form": "^7.62.0",
"react-markdown": "^10.1.0",
- "react-resizable-panels": "^3.0.3",
+ "react-resizable-panels": "^3.0.5",
"recharts": "^2.15.4",
"rehype-highlight": "^7.0.2",
"rehype-raw": "^7.0.0",
"server-only": "^0.0.1",
- "sonner": "^2.0.6",
+ "sonner": "^2.0.7",
"tailwind-merge": "^3.3.1",
"tailwindcss-motion": "^1.1.1",
"type-fest": "^4.41.0",
@@ -96,28 +97,28 @@
"devDependencies": {
"@biomejs/biome": "1.9.4",
"@swc/jest": "^0.2.39",
- "@tailwindcss/postcss": "^4.1.11",
+ "@tailwindcss/postcss": "^4.1.12",
"@testing-library/dom": "^10.4.1",
- "@testing-library/jest-dom": "^6.6.4",
+ "@testing-library/jest-dom": "^6.8.0",
"@testing-library/react": "^16.3.0",
"@types/jest": "^30.0.0",
- "@types/node": "^20.19.9",
- "@types/react": "^19.1.8",
- "@types/react-dom": "^19.1.6",
- "@vitejs/plugin-react": "^5.0.0",
+ "@types/node": "^20.19.11",
+ "@types/react": "^19.1.12",
+ "@types/react-dom": "^19.1.9",
+ "@vitejs/plugin-react": "^5.0.2",
"@vitest/coverage-v8": "^3.2.4",
"dotenv": "^17.2.1",
"drizzle-kit": "^0.30.6",
- "jest": "^30.0.5",
- "jest-environment-jsdom": "^30.0.5",
+ "jest": "^30.1.1",
+ "jest-environment-jsdom": "^30.1.1",
"jsdom": "^26.1.0",
"next-router-mock": "^1.0.2",
"pg-mem": "^3.0.5",
"postcss": "^8.5.6",
- "tailwindcss": "^4.1.11",
+ "tailwindcss": "^4.1.12",
"ts-node": "^10.9.2",
- "tw-animate-css": "^1.3.6",
- "typescript": "^5.8.3",
+ "tw-animate-css": "^1.3.7",
+ "typescript": "^5.9.2",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^3.2.4"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6744b9a..a4c048c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,7 +9,7 @@ importers:
.:
dependencies:
'@clerk/nextjs':
- specifier: ^6.27.1
+ specifier: ^6.31.6
version: 6.31.6(next@15.4.0-canary.17(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@electric-sql/pglite':
specifier: ^0.3.7
@@ -21,22 +21,22 @@ importers:
specifier: ^6.7.2
version: 6.7.2
'@fortawesome/react-fontawesome':
- specifier: ^0.2.3
+ specifier: ^0.2.6
version: 0.2.6(@fortawesome/fontawesome-svg-core@6.7.2)(react@19.1.1)
'@gsap/react':
specifier: ^2.1.2
version: 2.1.2(gsap@3.13.0)(react@19.1.1)
'@hookform/resolvers':
- specifier: ^5.2.0
+ specifier: ^5.2.1
version: 5.2.1(react-hook-form@7.62.0(react@19.1.1))
'@neondatabase/serverless':
specifier: ^1.0.1
version: 1.0.1
'@radix-ui/react-accordion':
- specifier: ^1.2.11
+ specifier: ^1.2.12
version: 1.2.12(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-alert-dialog':
- specifier: ^1.1.14
+ specifier: ^1.1.15
version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-aspect-ratio':
specifier: ^1.1.7
@@ -45,91 +45,94 @@ importers:
specifier: ^1.1.10
version: 1.1.10(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-checkbox':
- specifier: ^1.3.2
+ specifier: ^1.3.3
version: 1.3.3(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-collapsible':
- specifier: ^1.1.11
+ specifier: ^1.1.12
version: 1.1.12(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-context-menu':
- specifier: ^2.2.15
+ specifier: ^2.2.16
version: 2.2.16(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-dialog':
- specifier: ^1.1.14
+ specifier: ^1.1.15
version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-dropdown-menu':
- specifier: ^2.1.15
+ specifier: ^2.1.16
version: 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-hover-card':
- specifier: ^1.1.14
+ specifier: ^1.1.15
version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-label':
specifier: ^2.1.7
version: 2.1.7(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-menubar':
- specifier: ^1.1.15
+ specifier: ^1.1.16
version: 1.1.16(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-navigation-menu':
- specifier: ^1.2.13
+ specifier: ^1.2.14
version: 1.2.14(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-popover':
- specifier: ^1.1.14
+ specifier: ^1.1.15
version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-progress':
specifier: ^1.1.7
version: 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-radio-group':
- specifier: ^1.3.7
+ specifier: ^1.3.8
version: 1.3.8(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-scroll-area':
- specifier: ^1.2.9
+ specifier: ^1.2.10
version: 1.2.10(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-select':
- specifier: ^2.2.5
+ specifier: ^2.2.6
version: 2.2.6(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-separator':
specifier: ^1.1.7
version: 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-slider':
- specifier: ^1.3.5
+ specifier: ^1.3.6
version: 1.3.6(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-slot':
specifier: ^1.2.3
version: 1.2.3(@types/react@19.1.12)(react@19.1.1)
'@radix-ui/react-switch':
- specifier: ^1.2.5
+ specifier: ^1.2.6
version: 1.2.6(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-tabs':
- specifier: ^1.1.12
+ specifier: ^1.1.13
version: 1.1.13(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-toggle':
- specifier: ^1.1.9
+ specifier: ^1.1.10
version: 1.1.10(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-toggle-group':
- specifier: ^1.1.10
+ specifier: ^1.1.11
version: 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@radix-ui/react-tooltip':
- specifier: ^1.2.7
+ specifier: ^1.2.8
version: 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
'@t3-oss/env-nextjs':
specifier: ^0.12.0
version: 0.12.0(typescript@5.9.2)(zod@3.25.76)
'@tanstack/react-query':
- specifier: ^5.83.0
+ specifier: ^5.85.5
version: 5.85.5(react@19.1.1)
'@tanstack/react-query-next-experimental':
- specifier: ^5.83.0
+ specifier: ^5.85.5
version: 5.85.5(@tanstack/react-query@5.85.5(react@19.1.1))(next@15.4.0-canary.17(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)
+ '@testing-library/user-event':
+ specifier: ^14.6.1
+ version: 14.6.1(@testing-library/dom@10.4.1)
'@trpc/client':
- specifier: ^11.4.3
+ specifier: ^11.5.0
version: 11.5.0(@trpc/server@11.5.0(typescript@5.9.2))(typescript@5.9.2)
'@trpc/next':
- specifier: ^11.4.3
+ specifier: ^11.5.0
version: 11.5.0(@tanstack/react-query@5.85.5(react@19.1.1))(@trpc/client@11.5.0(@trpc/server@11.5.0(typescript@5.9.2))(typescript@5.9.2))(@trpc/react-query@11.5.0(@tanstack/react-query@5.85.5(react@19.1.1))(@trpc/client@11.5.0(@trpc/server@11.5.0(typescript@5.9.2))(typescript@5.9.2))(@trpc/server@11.5.0(typescript@5.9.2))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2))(@trpc/server@11.5.0(typescript@5.9.2))(next@15.4.0-canary.17(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
'@trpc/react-query':
- specifier: ^11.4.3
+ specifier: ^11.5.0
version: 11.5.0(@tanstack/react-query@5.85.5(react@19.1.1))(@trpc/client@11.5.0(@trpc/server@11.5.0(typescript@5.9.2))(typescript@5.9.2))(@trpc/server@11.5.0(typescript@5.9.2))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
'@trpc/server':
- specifier: ^11.4.3
+ specifier: ^11.5.0
version: 11.5.0(typescript@5.9.2)
'@uiw/react-md-editor':
specifier: ^4.0.8
@@ -189,13 +192,13 @@ importers:
specifier: ^19.1.1
version: 19.1.1(react@19.1.1)
react-hook-form:
- specifier: ^7.61.1
+ specifier: ^7.62.0
version: 7.62.0(react@19.1.1)
react-markdown:
specifier: ^10.1.0
version: 10.1.0(@types/react@19.1.12)(react@19.1.1)
react-resizable-panels:
- specifier: ^3.0.3
+ specifier: ^3.0.5
version: 3.0.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
recharts:
specifier: ^2.15.4
@@ -210,7 +213,7 @@ importers:
specifier: ^0.0.1
version: 0.0.1
sonner:
- specifier: ^2.0.6
+ specifier: ^2.0.7
version: 2.0.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
tailwind-merge:
specifier: ^3.3.1
@@ -235,13 +238,13 @@ importers:
specifier: ^0.2.39
version: 0.2.39(@swc/core@1.13.5)
'@tailwindcss/postcss':
- specifier: ^4.1.11
+ specifier: ^4.1.12
version: 4.1.12
'@testing-library/dom':
specifier: ^10.4.1
version: 10.4.1
'@testing-library/jest-dom':
- specifier: ^6.6.4
+ specifier: ^6.8.0
version: 6.8.0
'@testing-library/react':
specifier: ^16.3.0
@@ -250,16 +253,16 @@ importers:
specifier: ^30.0.0
version: 30.0.0
'@types/node':
- specifier: ^20.19.9
+ specifier: ^20.19.11
version: 20.19.11
'@types/react':
- specifier: ^19.1.8
+ specifier: ^19.1.12
version: 19.1.12
'@types/react-dom':
- specifier: ^19.1.6
+ specifier: ^19.1.9
version: 19.1.9(@types/react@19.1.12)
'@vitejs/plugin-react':
- specifier: ^5.0.0
+ specifier: ^5.0.2
version: 5.0.2(vite@7.1.3(@types/node@20.19.11)(jiti@2.5.1)(lightningcss@1.30.1))
'@vitest/coverage-v8':
specifier: ^3.2.4
@@ -271,10 +274,10 @@ importers:
specifier: ^0.30.6
version: 0.30.6
jest:
- specifier: ^30.0.5
+ specifier: ^30.1.1
version: 30.1.1(@types/node@20.19.11)(esbuild-register@3.6.0(esbuild@0.19.12))(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@20.19.11)(typescript@5.9.2))
jest-environment-jsdom:
- specifier: ^30.0.5
+ specifier: ^30.1.1
version: 30.1.1
jsdom:
specifier: ^26.1.0
@@ -289,16 +292,16 @@ importers:
specifier: ^8.5.6
version: 8.5.6
tailwindcss:
- specifier: ^4.1.11
+ specifier: ^4.1.12
version: 4.1.12
ts-node:
specifier: ^10.9.2
version: 10.9.2(@swc/core@1.13.5)(@types/node@20.19.11)(typescript@5.9.2)
tw-animate-css:
- specifier: ^1.3.6
+ specifier: ^1.3.7
version: 1.3.7
typescript:
- specifier: ^5.8.3
+ specifier: ^5.9.2
version: 5.9.2
vite-tsconfig-paths:
specifier: ^5.1.4
@@ -2414,6 +2417,12 @@ packages:
'@types/react-dom':
optional: true
+ '@testing-library/user-event@14.6.1':
+ resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==}
+ engines: {node: '>=12', npm: '>=6'}
+ peerDependencies:
+ '@testing-library/dom': '>=7.21.4'
+
'@trpc/client@11.5.0':
resolution: {integrity: sha512-32oH+KOAdo73jJKjU9tyG+vCjID6A28NgXwUNr691O5HjpF5yyTX51Zzyee8YtGzU89Nw/drCHdfA4gD7BN2eg==}
peerDependencies:
@@ -7163,6 +7172,10 @@ snapshots:
'@types/react': 19.1.12
'@types/react-dom': 19.1.9(@types/react@19.1.12)
+ '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)':
+ dependencies:
+ '@testing-library/dom': 10.4.1
+
'@trpc/client@11.5.0(@trpc/server@11.5.0(typescript@5.9.2))(typescript@5.9.2)':
dependencies:
'@trpc/server': 11.5.0(typescript@5.9.2)
diff --git a/src/app/_components/Form/Components/DeleteButton.tsx b/src/app/_components/Form/Components/DeleteButton.tsx
index aedd8a5..a3beb67 100644
--- a/src/app/_components/Form/Components/DeleteButton.tsx
+++ b/src/app/_components/Form/Components/DeleteButton.tsx
@@ -1,11 +1,15 @@
import { DeleteIcon } from "lucide-react";
-import type { UseTRPCMutationOptions, UseTRPCMutationResult } from "node_modules/@trpc/react-query/dist/getQueryKey.d-CruH3ncI.mjs";
import { Button } from "~/components/ui/button";
+import { useFormMutationContext } from "./MutationProvider";
-export default function DeleteButton
(params: { mutation: UseTRPCMutationResult | , id?: string }) {
+export default function DeleteButton(params: { id?: string }) {
+ const ctx = useFormMutationContext()
+ if (ctx == undefined) {
+ throw new Error('Dependent form message needs populates form mutations context')
+ }
if (params.id) {
return (
- |