import { focusAtom } from "jotai-optics"; import { currentUserAtom } from "@/features/user/atoms/current-user-atom.ts"; import { useState } from "react"; import { useAtom } from "jotai"; import { CustomAvatar } from "@/components/ui/custom-avatar.tsx"; import { FileButton, Tooltip } from "@mantine/core"; import { uploadAvatar } from "@/features/user/services/user-service.ts"; const userAtom = focusAtom(currentUserAtom, (optic) => optic.prop("user")); export default function AccountAvatar() { const [isLoading, setIsLoading] = useState(false); const [currentUser] = useAtom(currentUserAtom); const [, setUser] = useAtom(userAtom); const [file, setFile] = useState(null); const handleFileChange = async (selectedFile: File) => { if (!selectedFile) { return; } setFile(selectedFile); try { setIsLoading(true); const avatar = await uploadAvatar(selectedFile); setUser((prev) => ({ ...prev, avatarUrl: avatar.fileName })); } catch (err) { console.log(err); } finally { setIsLoading(false); } }; return ( <> {(props) => ( )} ); }