'use client'
import Image from 'next/image'
import { Session } from 'next-auth'
import { signOut } from 'next-auth/react'
import { Button } from '@/components/ui/button'
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger
} from '@/components/ui/dropdown-menu'
import { sync } from 'framer-motion'
import service, { UserDataStorageName } from '@/lib/http/service'
import React from 'react'
import toast from 'react-hot-toast'
import { useRouter } from 'next/navigation'
function getUserInitials(name: string) {
const [firstName, lastName] = name.split(' ')
return lastName ? `${firstName[0]}${lastName[0]}` : firstName.slice(0, firstName.length)
}
export interface UserData {
auth_token: string;
id: number;
login_ip: string;
login_time: number;
role: string;
first_name: string;
user_name: string;
version: string;
image?: string;
}
export function UserMenu({ user }: { user: UserData }) {
const [isLoading, setIsLoading] = React.useState(false);
const router = useRouter()
return (
{/*
{user?.user_name}
{user?.user_name}
*/}
{
console.log('logout')
if (isLoading) return
setIsLoading(true);
await service.post('/api/v1/customer/logout', {
}, {
headers: {
'Authorization': user.auth_token
}
}).then(function (result: any) {
setIsLoading(false);
console.log("result:", result)
if (result && result.header.code != 0) {
toast.error(result.header.message)
return
}
localStorage.removeItem(UserDataStorageName);
// router.refresh()
// router.push('/')
window.location.href = `/`
// location.reload();
}).catch((err) => {
setIsLoading(false);
localStorage.removeItem(UserDataStorageName);
// location.reload();
window.location.href = `/`
console.log(err);
// if (err.errors[0].code === "form_identifier_not_found") {
// props.setAccountNotFound(true);
// props.email(email);
// } else {
// props.setError("Sorry, We couldn't sign you in. Please try again later");
// }
});
// signOut({
// callbackUrl: '/'
// })
}
}
className="text-xs"
>
Log Out
)
}