Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
sdream-ai-fe
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
侯明涛
sdream-ai-fe
Commits
6c08913b
Commit
6c08913b
authored
Aug 08, 2024
by
HoMeTown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: login登录
parent
67fc813e
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
3 deletions
+25
-3
src/api/common.ts
+11
-0
src/auth/AuthContext.tsx
+7
-2
src/components/LoginModal/index.tsx
+7
-1
No files found.
src/api/common.ts
0 → 100644
View file @
6c08913b
import
http
from
'@/utils/request'
/**
* 登录
* @returns
*/
export
function
fetchLoginByUid
(
uid
:
string
)
{
return
http
.
post
(
'/user/api/login/mobile/v1/guest/login'
,
{
userId
:
uid
,
})
}
src/auth/AuthContext.tsx
View file @
6c08913b
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
import
type
{
ReactNode
}
from
'react'
import
type
{
ReactNode
}
from
'react'
import
React
,
{
createContext
,
useContext
,
useState
}
from
'react'
import
React
,
{
createContext
,
useContext
,
useState
}
from
'react'
import
{
useLocalStorageState
}
from
'ahooks'
import
{
useLocalStorageState
}
from
'ahooks'
import
{
fetchLoginByUid
}
from
'@/api/common'
interface
AuthContextType
{
interface
AuthContextType
{
isLoggedIn
:
boolean
isLoggedIn
:
boolean
...
@@ -19,7 +20,7 @@ interface AuthProviderProps {
...
@@ -19,7 +20,7 @@ interface AuthProviderProps {
}
}
export
const
AuthProvider
:
React
.
FC
<
AuthProviderProps
>
=
({
children
})
=>
{
export
const
AuthProvider
:
React
.
FC
<
AuthProviderProps
>
=
({
children
})
=>
{
const
[
token
]
=
useLocalStorageState
<
string
|
undefined
>
(
const
[
token
,
setToken
]
=
useLocalStorageState
<
string
|
undefined
>
(
'__TOKEN__'
,
'__TOKEN__'
,
{
{
defaultValue
:
''
,
defaultValue
:
''
,
...
@@ -29,10 +30,14 @@ export const AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {
...
@@ -29,10 +30,14 @@ export const AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {
const
[
showLoginModal
,
setShowLoginModal
]
=
useState
(
false
)
const
[
showLoginModal
,
setShowLoginModal
]
=
useState
(
false
)
const
[
showLoginTip
,
setShowLoginTip
]
=
useState
(
!
token
)
const
[
showLoginTip
,
setShowLoginTip
]
=
useState
(
!
token
)
const
login
=
()
=>
{
const
login
=
async
()
=>
{
const
res
=
await
fetchLoginByUid
(
'123'
)
if
(
res
.
data
)
{
setToken
(
res
.
data
.
token
)
setIsLoggedIn
(
true
)
setIsLoggedIn
(
true
)
setShowLoginModal
(
false
)
setShowLoginModal
(
false
)
}
}
}
const
logout
=
()
=>
{
const
logout
=
()
=>
{
setIsLoggedIn
(
false
)
setIsLoggedIn
(
false
)
...
...
src/components/LoginModal/index.tsx
View file @
6c08913b
import
React
from
'react'
import
React
from
'react'
import
{
Button
,
Link
,
Modal
,
ModalBody
,
ModalContent
,
ModalFooter
,
ModalHeader
}
from
'@nextui-org/react'
import
{
Button
,
Link
,
Modal
,
ModalBody
,
ModalContent
,
ModalFooter
,
ModalHeader
}
from
'@nextui-org/react'
import
{
useAuth
}
from
'@/auth/AuthContext'
interface
LoginModalProps
{
interface
LoginModalProps
{
isOpen
:
boolean
isOpen
:
boolean
...
@@ -7,6 +8,11 @@ interface LoginModalProps {
...
@@ -7,6 +8,11 @@ interface LoginModalProps {
}
}
export
const
LoginModal
:
React
.
FC
<
LoginModalProps
>
=
({
isOpen
,
onClose
})
=>
{
export
const
LoginModal
:
React
.
FC
<
LoginModalProps
>
=
({
isOpen
,
onClose
})
=>
{
const
{
login
}
=
useAuth
()
const
handleLogin
=
()
=>
{
login
()
}
return
(
return
(
<
Modal
backdrop=
"blur"
isOpen=
{
isOpen
}
onClose=
{
onClose
}
>
<
Modal
backdrop=
"blur"
isOpen=
{
isOpen
}
onClose=
{
onClose
}
>
<
ModalContent
>
<
ModalContent
>
...
@@ -31,7 +37,7 @@ export const LoginModal: React.FC<LoginModalProps> = ({ isOpen, onClose }) => {
...
@@ -31,7 +37,7 @@ export const LoginModal: React.FC<LoginModalProps> = ({ isOpen, onClose }) => {
<
Button
onPress=
{
onClose
}
>
<
Button
onPress=
{
onClose
}
>
再想想
再想想
</
Button
>
</
Button
>
<
Button
color=
"primary"
onPress=
{
onClose
}
>
<
Button
color=
"primary"
onPress=
{
handleLogin
}
>
同意
同意
</
Button
>
</
Button
>
</
ModalFooter
>
</
ModalFooter
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment