"use client"; import type React from "react"; import type { IUserSchema } from "@/src/entities/models/users/users.model"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; import { Loader2, ImageIcon } from "lucide-react"; import { Form, FormControl, FormField, FormItem, FormMessage, } from "@/app/_components/ui/form"; import { Input } from "@/app/_components/ui/input"; import { Button } from "@/app/_components/ui/button"; import { Avatar, AvatarFallback, AvatarImage, } from "@/app/_components/ui/avatar"; import { Label } from "@/app/_components/ui/label"; import { Separator } from "@/app/_components/ui/separator"; import { Switch } from "@/app/_components/ui/switch"; import { useRef, useState } from "react"; import { ScrollArea } from "@/app/_components/ui/scroll-area"; import { updateUser, } from "@/app/(pages)/(admin)/dashboard/user-management/action"; import { useProfileFormHandlers } from "../../dashboard/user-management/_handlers/use-profile-form"; import { CTexts } from "@/app/_utils/const/texts"; const profileFormSchema = z.object({ username: z.string().nullable().optional(), avatar: z.string().nullable().optional(), }); type ProfileFormValues = z.infer; interface ProfileSettingsProps { user: IUserSchema | null; } export function ProfileSettings({ user }: ProfileSettingsProps) { const email = user?.email || ""; const username = user?.profile?.username || ""; const { form, fileInputRef, handleFileChange, handleAvatarClick, isPending, onSubmit, } = useProfileFormHandlers({ user }); return (
{ }} className="space-y-8">

Account

{isPending ? (
) : ( <> {username?.[0]?.toUpperCase() || email?.[0]?.toUpperCase()} )}
{isPending ? ( ) : ( )}
( )} />
{/* */}

Account security

{email}

Set a permanent password to login to your account.

Add an additional layer of security to your account during login.

Securely sign-in with on-device biometric authentication.

Notifications

Grant temporary access to your account for support purposes.

Permanently delete the account and remove access from all workspaces.

); }