import React, { useState } from "react" import { Text, Box, VStack, Button, Image, useColorModeValue, Link, Center, Flex, IconButton, HStack, Modal, ModalOverlay, ModalContent, ModalBody, useDisclosure, Input, useToast } from "@chakra-ui/react" import Logo from "components/logo" import { FaEnvelope, FaGithub } from "react-icons/fa" import { requestApi } from "utils/axios/request" import { saveToken } from "utils/axios/getToken" import storage from "utils/localStorage" import { useRouter } from "next/router" import { validateEmail } from "utils/user" const LoginPage = () => { const { isOpen, onOpen, onClose } = useDisclosure() const toast = useToast() const router = useRouter() const [email,setEmail] = useState('') const login = async (email:string) => { const res = await requestApi.post("/user/login",{email: email}) saveToken(res.data.token) storage.set('session', res.data) const oldPage = storage.get('current-page') if (oldPage) { storage.remove('current-page') router.push(oldPage) } else { router.push('/') } } const onEmailLogin = async () => { const err = await validateEmail(email,false) if (err) { toast({ description: err, status: "error", duration: 2000, isClosable: true, }) return } login(email) } return ( 欢迎加入im.dev,一起打造全世界最好的开发者社区 从世界各地精选最优秀的内容 丰富的功能特性等待你的探索 充分展示自我并获得猎头关注 OR } onClick={onOpen}/> 如果继续,则表示你同意im.dev的服务条款和隐私政策 {/* */} Sign in using a secure link setEmail(e.currentTarget.value)} placeholder="enter your email address" _focus={null}> ) } export default LoginPage