From 232a19d7dfe0e3847b3a9a9a9be83485ffb9031c Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 30 May 2020 16:23:25 +0800 Subject: Merge front end to this repo. But I need to wait for aspnet core support for custom port and package manager for dev server. --- Timeline/ClientApp/src/user/User.tsx | 70 ++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 Timeline/ClientApp/src/user/User.tsx (limited to 'Timeline/ClientApp/src/user/User.tsx') diff --git a/Timeline/ClientApp/src/user/User.tsx b/Timeline/ClientApp/src/user/User.tsx new file mode 100644 index 00000000..7bdd64b7 --- /dev/null +++ b/Timeline/ClientApp/src/user/User.tsx @@ -0,0 +1,70 @@ +import React, { useState } from 'react'; +import { useParams } from 'react-router'; + +import { useUser } from '../data/user'; +import { changeNickname, changeAvatar } from './api'; +import { personalTimelineService } from '../data/timeline'; + +import UserPage from './UserPage'; +import ChangeNicknameDialog from './ChangeNicknameDialog'; +import ChangeAvatarDialog from './ChangeAvatarDialog'; +import TimelinePageTemplate from '../timeline/TimelinePageTemplate'; +import { PersonalTimelineManageItem } from './UserInfoCard'; + +const User: React.FC = (_) => { + const { username } = useParams<{ username: string }>(); + + const user = useUser(); + + const [dialog, setDialog] = useState(null); + const [dataKey, setDataKey] = useState(0); + + let dialogElement: React.ReactElement | undefined; + + const closeDialogHandler = (): void => { + setDialog(null); + }; + + if (dialog === 'nickname') { + dialogElement = ( + { + const p = changeNickname(user!.token, username, newNickname); + return p.then((_) => { + setDataKey(dataKey + 1); + }); + }} + /> + ); + } else if (dialog === 'avatar') { + dialogElement = ( + changeAvatar(user!.token, username, file, file.type)} + /> + ); + } + + const onManage = React.useCallback((item: PersonalTimelineManageItem) => { + setDialog(item); + }, []); + + return ( + <> + + {dialogElement} + + ); +}; + +export default User; -- cgit v1.2.3