revert fb8e77bb68
Local Build and Deploy / deploy (push) Successful in 1m11s

revert style: clean up code with prettier and eslint
This commit is contained in:
remco committed 2026-07-12 21:02:03 +02:00
1 parent 27de078f54
commit e85e4d74ea
378 files changed
+20710 -22428

No files matched your search

+58 -46
View File
@@ -1,46 +1,52 @@
"use client";
'use client'
import { zodResolver } from "@hookform/resolvers/zod";
import { useForm } from "react-hook-form";
import { updateUser } from "@/actions/users";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
import { useServerAction } from "@/hooks/use-server-action";
import { type UpdateUserInput, updateUserSchema } from "@/lib/validators/user";
import { zodResolver } from '@hookform/resolvers/zod'
import { useForm } from 'react-hook-form'
import { updateUser } from '@/actions/users'
import { Button } from '@/components/ui/button'
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
import { Input } from '@/components/ui/input'
import { Label } from '@/components/ui/label'
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from '@/components/ui/select'
import { useServerAction } from '@/hooks/use-server-action'
import { type UpdateUserInput, updateUserSchema } from '@/lib/validators/user'
interface UserEditFormProps {
user: {
id: number;
username: string;
mail: string;
rank: number;
motto: string;
credits: number;
pixels: number;
diamonds: number;
duckets: number;
};
id: number
username: string
mail: string
rank: number
motto: string
credits: number
pixels: number
diamonds: number
duckets: number
}
/** Ranks loaded from the `permissions` table (id + human-readable name). */
ranks?: Array<{ id: number; name: string }>;
ranks?: Array<{ id: number; name: string }>
}
// Fallback used if the page does not supply the DB-loaded rank list.
const FALLBACK_RANKS: Array<{ id: number; name: string }> = [
{ id: 1, name: "User" },
{ id: 2, name: "Bronze" },
{ id: 3, name: "Silver" },
{ id: 4, name: "Gold" },
{ id: 5, name: "Moderator" },
{ id: 6, name: "Admin" },
{ id: 7, name: "Super Admin" },
];
{ id: 1, name: 'User' },
{ id: 2, name: 'Bronze' },
{ id: 3, name: 'Silver' },
{ id: 4, name: 'Gold' },
{ id: 5, name: 'Moderator' },
{ id: 6, name: 'Admin' },
{ id: 7, name: 'Super Admin' },
]
export function UserEditForm({ user, ranks }: UserEditFormProps) {
const rankOptions = ranks && ranks.length > 0 ? ranks : FALLBACK_RANKS;
const { isPending, run } = useServerAction();
const rankOptions = ranks && ranks.length > 0 ? ranks : FALLBACK_RANKS
const { isPending, run } = useServerAction()
const {
register,
@@ -59,12 +65,12 @@ export function UserEditForm({ user, ranks }: UserEditFormProps) {
diamonds: user.diamonds,
duckets: user.duckets,
},
});
})
function onSubmit(data: UpdateUserInput) {
run(() => updateUser({ id: user.id, ...data }), {
successMessage: "User updated successfully.",
});
successMessage: 'User updated successfully.',
})
}
return (
@@ -77,12 +83,14 @@ export function UserEditForm({ user, ranks }: UserEditFormProps) {
<div className="grid gap-4 sm:grid-cols-2">
<div className="space-y-2">
<Label htmlFor="username">Username</Label>
<Input id="username" {...register("username")} />
{errors.username && <p className="text-sm text-destructive">{errors.username.message}</p>}
<Input id="username" {...register('username')} />
{errors.username && (
<p className="text-sm text-destructive">{errors.username.message}</p>
)}
</div>
<div className="space-y-2">
<Label htmlFor="mail">Email</Label>
<Input id="mail" type="email" {...register("mail")} />
<Input id="mail" type="email" {...register('mail')} />
{errors.mail && <p className="text-sm text-destructive">{errors.mail.message}</p>}
</div>
</div>
@@ -92,7 +100,7 @@ export function UserEditForm({ user, ranks }: UserEditFormProps) {
<Label htmlFor="rank">Rank</Label>
<Select
defaultValue={String(user.rank)}
onValueChange={(v) => setValue("rank", parseInt(v, 10))}
onValueChange={(v) => setValue('rank', parseInt(v, 10))}
>
<SelectTrigger>
<SelectValue placeholder="Select rank" />
@@ -108,34 +116,38 @@ export function UserEditForm({ user, ranks }: UserEditFormProps) {
</div>
<div className="space-y-2">
<Label htmlFor="motto">Motto</Label>
<Input id="motto" {...register("motto")} />
<Input id="motto" {...register('motto')} />
</div>
</div>
<div className="grid gap-4 sm:grid-cols-2 lg:grid-cols-4">
<div className="space-y-2">
<Label htmlFor="credits">Credits</Label>
<Input id="credits" type="number" {...register("credits", { valueAsNumber: true })} />
<Input id="credits" type="number" {...register('credits', { valueAsNumber: true })} />
</div>
<div className="space-y-2">
<Label htmlFor="pixels">Pixels</Label>
<Input id="pixels" type="number" {...register("pixels", { valueAsNumber: true })} />
<Input id="pixels" type="number" {...register('pixels', { valueAsNumber: true })} />
</div>
<div className="space-y-2">
<Label htmlFor="diamonds">Diamonds</Label>
<Input id="diamonds" type="number" {...register("diamonds", { valueAsNumber: true })} />
<Input
id="diamonds"
type="number"
{...register('diamonds', { valueAsNumber: true })}
/>
</div>
<div className="space-y-2">
<Label htmlFor="duckets">Duckets</Label>
<Input id="duckets" type="number" {...register("duckets", { valueAsNumber: true })} />
<Input id="duckets" type="number" {...register('duckets', { valueAsNumber: true })} />
</div>
</div>
<Button type="submit" disabled={isPending}>
{isPending ? "Saving..." : "Save Changes"}
{isPending ? 'Saving...' : 'Save Changes'}
</Button>
</form>
</CardContent>
</Card>
);
)
}