Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
健杭 徐
intern_project_frontend_backend
Compare Revisions
646b90d2641224d0cb3e5fcdb0f0436c9d2efcf6...78c35070b2d60985ee1e2c90e2bf13f7477fe090
Hide whitespace changes
Inline
Side-by-side
myproject/my-app/src/app/page.tsx
View file @
78c35070
'
use client
'
;
import
React
,
{
useState
}
from
'
react
'
;
import
{
ChatRoom
}
from
"
./pages/ChatRoom/ChatRoom
"
;
import
{
SetName
}
from
'
./pages/SetName/SetName
'
;
import
{
useEffect
}
from
'
react
'
;
import
{
useRouter
}
from
'
next/navigation
'
;
import
"
./globals.css
"
;
export
default
function
Page
()
{
const
[
userName
,
setUserName
]
=
useState
(
''
);
const
router
=
useRouter
(
);
const
handleLogin
=
(
name
:
string
)
=>
{
setUserName
(
n
ame
);
};
useEffect
((
)
=>
{
router
.
replace
(
'
/SetN
ame
'
);
}
,
[
router
])
;
return
(
<
div
className
=
'root'
>
{
!
userName
?
(
<
SetName
onLogin
=
{
handleLogin
}
/>
)
:
(
<
ChatRoom
userName
=
{
userName
}
/>
)
}
</
div
>
);
return
null
;
}
\ No newline at end of file
myproject/my-app/src/app/pages/SetName/SetName.tsx
deleted
100644 → 0
View file @
646b90d2
'
use client
'
;
import
"
./SetName.css
"
import
{
MdPerson
}
from
"
react-icons/md
"
;
import
{
useRouter
}
from
"
next/compat/router
"
;
import
{
useState
}
from
"
react
"
;
export
function
SetName
({
onLogin
}:
{
onLogin
:
(
name
:
string
)
=>
void
})
{
const
[
userName
,
setUserName
]
=
useState
(
''
);
const
handleSubmit
=
async
(
e
:
React
.
FormEvent
)
=>
{
e
.
preventDefault
();
e
.
preventDefault
();
if
(
userName
.
trim
())
{
onLogin
(
userName
);
}
}
return
(
<
div
className
=
"SetName-Body"
>
<
div
className
=
"login-box"
>
<
form
onSubmit
=
{
handleSubmit
}
>
<
h2
>
Login
</
h2
>
<
div
className
=
"input-box"
>
<
span
className
=
"icon"
>
<
MdPerson
/>
</
span
>
<
input
required
value
=
{
userName
}
onChange
=
{
(
e
)
=>
setUserName
(
e
.
target
.
value
)
}
/>
<
label
>
Name
</
label
>
</
div
>
<
div
>
<
button
className
=
"SetName-button"
type
=
"submit"
>
Login in
</
button
>
</
div
>
</
form
>
</
div
>
</
div
>
);
}
\ No newline at end of file
Prev
1
2
Next