Update all Packages, add emailVerification on change, fix errors

This commit is contained in:
nocnico
2025-06-02 00:39:14 +02:00
parent 6972216aaf
commit a00d0f449a
11 changed files with 690 additions and 638 deletions

View File

@@ -14,28 +14,28 @@
"@repo/typescript-config": "*", "@repo/typescript-config": "*",
"@types/cookie-parser": "^1.4.8", "@types/cookie-parser": "^1.4.8",
"@types/cors": "^2.8.18", "@types/cors": "^2.8.18",
"@types/express": "^5.0.0", "@types/express": "^5.0.2",
"@types/node": "^22.13.5", "@types/node": "^22.15.29",
"@types/nodemailer": "^6.4.17", "@types/nodemailer": "^6.4.17",
"concurrently": "^9.1.2", "concurrently": "^9.1.2",
"typescript": "latest" "typescript": "latest"
}, },
"dependencies": { "dependencies": {
"@react-email/components": "^0.0.33", "@react-email/components": "^0.0.41",
"@redis/json": "^1.0.7", "@redis/json": "^5.1.1",
"@socket.io/redis-adapter": "^8.3.0", "@socket.io/redis-adapter": "^8.3.0",
"axios": "^1.7.9", "axios": "^1.9.0",
"cookie-parser": "^1.4.7", "cookie-parser": "^1.4.7",
"cors": "^2.8.5", "cors": "^2.8.5",
"cron": "^4.1.0", "cron": "^4.3.1",
"dotenv": "^16.4.7", "dotenv": "^16.5.0",
"express": "^4.21.2", "express": "^5.1.0",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
"livekit-server-sdk": "^2.10.2", "livekit-server-sdk": "^2.13.0",
"nodemailer": "^6.10.0", "nodemailer": "^7.0.3",
"nodemon": "^3.1.10", "nodemon": "^3.1.10",
"react": "^19.0.0", "react": "^19.1.0",
"redis": "^4.7.0", "redis": "^5.1.1",
"socket.io": "^4.8.1", "socket.io": "^4.8.1",
"tsx": "^4.19.4" "tsx": "^4.19.4"
} }

View File

@@ -116,6 +116,8 @@ const Einsatzdetails = ({
hpgLocationLat: undefined, hpgLocationLat: undefined,
hpgLocationLng: undefined, hpgLocationLng: undefined,
state: "draft", state: "draft",
addressAdditionalInfo: mission.addressAdditionalInfo || undefined,
addressMissionLocation: mission.addressAdditionalInfo || undefined,
}); });
setOpen(true); setOpen(true);
}} }}
@@ -303,6 +305,8 @@ const Einsatzdetails = ({
hpgLocationLat: undefined, hpgLocationLat: undefined,
hpgLocationLng: undefined, hpgLocationLng: undefined,
state: "draft", state: "draft",
addressAdditionalInfo: mission.addressAdditionalInfo || undefined,
addressMissionLocation: mission.addressAdditionalInfo || undefined,
}); });
setOpen(true); setOpen(true);
}} }}

View File

@@ -12,15 +12,15 @@
"check-types": "tsc --noEmit" "check-types": "tsc --noEmit"
}, },
"dependencies": { "dependencies": {
"@hookform/resolvers": "^4.1.3", "@hookform/resolvers": "^5.0.1",
"@livekit/components-react": "^2.8.1", "@livekit/components-react": "^2.9.9",
"@livekit/components-styles": "^1.1.4", "@livekit/components-styles": "^1.1.6",
"@livekit/track-processors": "^0.5.6", "@livekit/track-processors": "^0.5.7",
"@next-auth/prisma-adapter": "^1.0.7", "@next-auth/prisma-adapter": "^1.0.7",
"@radix-ui/react-icons": "^1.3.2", "@radix-ui/react-icons": "^1.3.2",
"@repo/db": "*", "@repo/db": "*",
"@tailwindcss/postcss": "^4.0.14", "@tailwindcss/postcss": "^4.1.8",
"@tanstack/react-query": "^5.75.4", "@tanstack/react-query": "^5.79.0",
"@types/jsonwebtoken": "^9.0.9", "@types/jsonwebtoken": "^9.0.9",
"axios": "^1.9.0", "axios": "^1.9.0",
"clsx": "^2.1.1", "clsx": "^2.1.1",
@@ -28,35 +28,35 @@
"i": "^0.3.7", "i": "^0.3.7",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
"leaflet": "^1.9.4", "leaflet": "^1.9.4",
"livekit-client": "^2.9.7", "livekit-client": "^2.13.3",
"livekit-server-sdk": "^2.10.2", "livekit-server-sdk": "^2.13.0",
"lucide-react": "^0.511.0", "lucide-react": "^0.511.0",
"next": "^15.1.0", "next": "^15.3.3",
"next-auth": "^4.24.11", "next-auth": "^4.24.11",
"npm": "^11.4.1", "npm": "^11.4.1",
"postcss": "^8.5.1", "postcss": "^8.5.4",
"react": "^19.0.0", "react": "^19.1.0",
"react-dom": "^19.0.0", "react-dom": "^19.1.0",
"react-error-boundary": "^5.0.0", "react-error-boundary": "^6.0.0",
"react-hook-form": "^7.54.2", "react-hook-form": "^7.56.4",
"react-hot-toast": "^2.5.2", "react-hot-toast": "^2.5.2",
"react-leaflet": "^5.0.0-rc.2", "react-leaflet": "^5.0.0",
"react-select": "^5.10.1", "react-select": "^5.10.1",
"socket.io-client": "^4.8.1", "socket.io-client": "^4.8.1",
"tailwind-merge": "^3.3.0", "tailwind-merge": "^3.3.0",
"tailwindcss": "^4.0.14", "tailwindcss": "^4.1.8",
"zod": "^3.25.28", "zod": "^3.25.46",
"zustand": "^5.0.3", "zustand": "^5.0.5",
"zustand-sync-tabs": "^0.2.2" "zustand-sync-tabs": "^0.2.2"
}, },
"devDependencies": { "devDependencies": {
"@repo/eslint-config": "*", "@repo/eslint-config": "*",
"@repo/typescript-config": "*", "@repo/typescript-config": "*",
"@types/leaflet": "^1.9.16", "@types/leaflet": "^1.9.18",
"@types/node": "^22.13.10", "@types/node": "^22.15.29",
"@types/react": "^19.0.10", "@types/react": "^19.1.6",
"@types/react-dom": "^19.0.4", "@types/react-dom": "^19.1.5",
"daisyui": "^5.0.0-beta.6", "daisyui": "^5.0.43",
"typescript": "^5.8.2" "typescript": "^5.8.3"
} }
} }

View File

@@ -13,22 +13,22 @@
"@repo/typescript-config": "*", "@repo/typescript-config": "*",
"@types/cors": "^2.8.18", "@types/cors": "^2.8.18",
"@types/express": "^5.0.2", "@types/express": "^5.0.2",
"@types/node": "^22.13.5", "@types/node": "^22.15.29",
"@types/nodemailer": "^6.4.17", "@types/nodemailer": "^6.4.17",
"@types/react": "^19.1.5", "@types/react": "^19.1.6",
"concurrently": "^9.1.2", "concurrently": "^9.1.2",
"typescript": "latest" "typescript": "latest"
}, },
"dependencies": { "dependencies": {
"@react-email/components": "^0.0.33", "@react-email/components": "^0.0.41",
"axios": "^1.7.9", "axios": "^1.9.0",
"cors": "^2.8.5", "cors": "^2.8.5",
"cron": "^4.1.0", "cron": "^4.3.1",
"dotenv": "^16.4.7", "dotenv": "^16.5.0",
"express": "^4.21.2", "express": "^5.1.0",
"nodemailer": "^6.10.0", "nodemailer": "^7.0.3",
"nodemon": "^3.1.10", "nodemon": "^3.1.10",
"react": "^19.0.0", "react": "^19.1.0",
"tsconfig-paths": "^4.2.0", "tsconfig-paths": "^4.2.0",
"tsx": "^4.19.4" "tsx": "^4.19.4"
} }

View File

@@ -24,14 +24,15 @@ import { UserOptionalDefaults, UserOptionalDefaultsSchema } from "@repo/db/zod";
import { Bell, Plane } from "lucide-react"; import { Bell, Plane } from "lucide-react";
import Link from "next/link"; import Link from "next/link";
export const ProfileForm = ({ user }: { user: User }) => { export const ProfileForm = ({ user }: { user: User }): React.JSX.Element => {
const schema = z.object({ const schema = z.object({
firstname: z.string().min(2).max(30), firstname: z.string().min(2).max(30),
lastname: z.string().min(2).max(30), lastname: z.string().min(2).max(30),
email: z.string().email({ email: z.string().email({
message: "Bitte gebe eine gültige E-Mail Adresse ein", message: "Bitte gebe eine gültige E-Mail Adresse ein",
}), }),
settingsHideLastname: z.boolean().default(false), settingsHideLastname: z.boolean(),
emailVerified: z.boolean(),
}); });
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
type IFormInput = z.infer<typeof schema>; type IFormInput = z.infer<typeof schema>;
@@ -108,6 +109,10 @@ export const ProfileForm = ({ user }: { user: User }) => {
type="text" type="text"
className="input input-bordered w-full" className="input input-bordered w-full"
defaultValue={user.email} defaultValue={user.email}
onChange={(e) => {
form.setValue("email", e.target.value.trim());
form.setValue("emailVerified", false);
}}
placeholder="E-Mail" placeholder="E-Mail"
/> />
</label> </label>
@@ -135,7 +140,7 @@ export const SocialForm = ({
}: { }: {
discordAccount?: DiscordAccount; discordAccount?: DiscordAccount;
user: User; user: User;
}) => { }): React.JSX.Element | null => {
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const [vatsimLoading, setVatsimLoading] = useState(false); const [vatsimLoading, setVatsimLoading] = useState(false);
const router = useRouter(); const router = useRouter();
@@ -238,7 +243,7 @@ export const SocialForm = ({
); );
}; };
export const PasswordForm = () => { export const PasswordForm = (): React.JSX.Element => {
const schema = z.object({ const schema = z.object({
password: z.string().min(2).max(30), password: z.string().min(2).max(30),
newPassword: z.string().min(2).max(30), newPassword: z.string().min(2).max(30),
@@ -335,7 +340,7 @@ export const PasswordForm = () => {
); );
}; };
export const PilotForm = ({ user }: { user: User }) => { export const PilotForm = ({ user }: { user: User }): React.JSX.Element | null => {
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const form = useForm<UserOptionalDefaults>({ const form = useForm<UserOptionalDefaults>({

View File

@@ -10,51 +10,51 @@
"lint": "next lint" "lint": "next lint"
}, },
"dependencies": { "dependencies": {
"@hookform/resolvers": "^4.1.3", "@hookform/resolvers": "^5.0.1",
"@next-auth/prisma-adapter": "^1.0.7", "@next-auth/prisma-adapter": "^1.0.7",
"@radix-ui/react-icons": "^1.3.2", "@radix-ui/react-icons": "^1.3.2",
"@repo/db": "*", "@repo/db": "*",
"@tanstack/react-query": "^5.67.2", "@tanstack/react-query": "^5.79.0",
"@tanstack/react-table": "^8.20.6", "@tanstack/react-table": "^8.21.3",
"@uiw/react-md-editor": "^4.0.5", "@uiw/react-md-editor": "^4.0.7",
"axios": "^1.7.9", "axios": "^1.9.0",
"bcryptjs": "^3.0.2", "bcryptjs": "^3.0.2",
"clsx": "^2.1.1", "clsx": "^2.1.1",
"date-fns": "^4.1.0", "date-fns": "^4.1.0",
"i": "^0.3.7", "i": "^0.3.7",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"lucide-react": "^0.479.0", "lucide-react": "^0.511.0",
"next": "^15.2.2", "next": "^15.3.3",
"next-auth": "^4.24.11", "next-auth": "^4.24.11",
"next-remove-imports": "^1.0.12", "next-remove-imports": "^1.0.12",
"npm": "^11.1.0", "npm": "^11.4.1",
"react": "^19.0.0", "react": "^19.1.0",
"react-datepicker": "^8.1.0", "react-datepicker": "^8.4.0",
"react-day-picker": "^9.6.2", "react-day-picker": "^9.7.0",
"react-dom": "^19.0.0", "react-dom": "^19.1.0",
"react-error-boundary": "^5.0.0", "react-error-boundary": "^6.0.0",
"react-hook-form": "^7.54.2", "react-hook-form": "^7.56.4",
"react-hot-toast": "^2.5.1", "react-hot-toast": "^2.5.2",
"react-select": "^5.10.0", "react-select": "^5.10.1",
"tailwind-merge": "^3.0.2", "tailwind-merge": "^3.3.0",
"zod": "^3.24.1" "zod": "^3.25.46"
}, },
"devDependencies": { "devDependencies": {
"@eslint/eslintrc": "^3", "@eslint/eslintrc": "^3",
"@repo/eslint-config": "*", "@repo/eslint-config": "*",
"@repo/typescript-config": "*", "@repo/typescript-config": "*",
"@tailwindcss/postcss": "^4.0.8", "@tailwindcss/postcss": "^4.1.8",
"@types/bcryptjs": "^2.4.6", "@types/bcryptjs": "^3.0.0",
"@types/jsonwebtoken": "^9.0.8", "@types/jsonwebtoken": "^9.0.9",
"@types/node": "^22.13.10", "@types/node": "^22.15.29",
"@types/react": "^19", "@types/react": "^19",
"@types/react-dom": "^19", "@types/react-dom": "^19",
"daisyui": "^5.0.0-beta.8", "daisyui": "^5.0.43",
"eslint": "^9", "eslint": "^9",
"eslint-config-next": "^15.2.2", "eslint-config-next": "^15.3.3",
"postcss": "^8.5.3", "postcss": "^8.5.4",
"tailwindcss": "^4.0.8", "tailwindcss": "^4.1.8",
"typescript": "^5" "typescript": "^5"
} }
} }

View File

@@ -10,9 +10,9 @@
"format": "prettier --write \"**/*.{ts,tsx,md}\"" "format": "prettier --write \"**/*.{ts,tsx,md}\""
}, },
"devDependencies": { "devDependencies": {
"prettier": "^3.2.5", "prettier": "^3.5.3",
"turbo": "^2.5.0", "turbo": "^2.5.4",
"typescript": "^5.8.2" "typescript": "^5.8.3"
}, },
"engines": { "engines": {
"node": ">=18", "node": ">=18",

View File

@@ -20,11 +20,11 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@prisma/client": "^6.6.0", "@prisma/client": "^6.8.2",
"zod": "^3.25.28", "zod": "^3.25.46",
"zod-prisma-types": "^3.2.4" "zod-prisma-types": "^3.2.4"
}, },
"devDependencies": { "devDependencies": {
"prisma": "^6.6.0" "prisma": "^6.8.2"
} }
} }

1152
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -5,6 +5,7 @@ onlyBuiltDependencies:
- '@prisma/client' - '@prisma/client'
- '@prisma/engines' - '@prisma/engines'
- '@tailwindcss/oxide' - '@tailwindcss/oxide'
- esbuild
- prisma - prisma
- sharp - sharp
- unrs-resolver - unrs-resolver

View File

@@ -20,7 +20,7 @@
}, },
"migrate": { "migrate": {
"cache": false, "cache": false,
"persistent": false "persistent": true
}, },
"build": { "build": {
"dependsOn": ["^build", "generate"], "dependsOn": ["^build", "generate"],