Skip to content

Commit aa0f69b

Browse files
committed
feat: profile route 추가
1 parent d0630c5 commit aa0f69b

File tree

3 files changed

+27
-5
lines changed

3 files changed

+27
-5
lines changed

src/app/routes/profile.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
1+
import { api } from '~/entities/user';
12
import { ProfileModal } from '~/widgets/user';
3+
import type { Route } from './+types/profile';
24

3-
export default function ProfileRouteComponent() {
4-
return <ProfileModal />;
5+
export async function loader() {
6+
const response = await api.getUserInfo();
7+
const { data } = await response.json();
8+
return data;
9+
}
10+
11+
export default function ProfileRouteComponent({
12+
loaderData,
13+
}: Route.ComponentProps) {
14+
return <ProfileModal userInfo={loaderData} />;
515
}

src/shared/ui/Modal/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default function Modal({ children, ref }: Readonly<ModalProps>) {
1010
<dialog
1111
open
1212
ref={ref}
13-
className="absolute top-1/2 left-1/2 h-[min(100%,20rem)] min-w-xs translate-x-[-50%] translate-y-[-50%] rounded-md"
13+
className="absolute top-1/2 left-1/2 min-h-xs min-w-xs translate-x-[-50%] translate-y-[-50%] rounded-md"
1414
>
1515
{children}
1616
</dialog>

src/widgets/user/ui/ProfileModal/index.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,29 @@
11
import { useRef } from 'react';
22
import { useNavigate } from 'react-router';
3+
4+
import type { UserInfoResponseData } from '~/entities/user';
5+
import AssetInfoGraphic from '~/features/profile/ui/AssetInfoGraphic';
6+
import TradingHistory from '~/features/profile/ui/TradingHistoryList';
37
import useClickOutside from '~/shared/hooks/useClickOutside';
48
import Backdrop from '~/shared/ui/Backdrop';
59
import Modal from '~/shared/ui/Modal';
610

7-
export default function ProfileModal() {
11+
type ProfileModalProps = {
12+
userInfo: UserInfoResponseData;
13+
};
14+
15+
export default function ProfileModal({ userInfo }: ProfileModalProps) {
816
const navigate = useNavigate();
917
const modalRef = useRef<HTMLDialogElement>(null);
1018
useClickOutside(modalRef, () => navigate(-1));
19+
1120
return (
1221
<Backdrop>
1322
<Modal ref={modalRef}>
14-
<div>ProfileModal</div>
23+
<div className="scrollbar-custom flex max-h-screen flex-col items-center gap-3 overflow-y-auto p-20 pt-10">
24+
<AssetInfoGraphic userInfo={userInfo} />
25+
<TradingHistory />
26+
</div>
1527
</Modal>
1628
</Backdrop>
1729
);

0 commit comments

Comments
 (0)