Skip to content

Commit

Permalink
Refactor: 포트폴리오 상세 페이지 ssr으로 리팩토링
Browse files Browse the repository at this point in the history
  • Loading branch information
y-solb committed Jul 9, 2024
1 parent c7a041a commit 79caa2a
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 5 deletions.
27 changes: 25 additions & 2 deletions src/app/(portfolio)/[username]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
import Portfolio from '@/containers/portfolio/Portfolio'
import { fetchPortfolio } from '@/fetch/fetchPortfolio'
import { removeTagsText } from '@/lib/utils'
import { getPortfolio } from '@/services/portfolio'
import {
HydrationBoundary,
QueryClient,
dehydrate,
} from '@tanstack/react-query'
import { Metadata } from 'next'
import { notFound } from 'next/navigation'

Expand Down Expand Up @@ -51,6 +57,23 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
return metadata
}

export default function UserPage({ params }: { params: { username: string } }) {
return <Portfolio username={params.username} />
export default async function UserPage({
params,
}: {
params: { username: string }
}) {
const queryClient = new QueryClient()

await queryClient.prefetchQuery({
queryKey: ['portfolio', params.username],
queryFn: () => getPortfolio(params.username),
staleTime: 60 * 1000,
})

const dehydratedState = dehydrate(queryClient)
return (
<HydrationBoundary state={dehydratedState}>
<Portfolio username={params.username} />
</HydrationBoundary>
)
}
7 changes: 4 additions & 3 deletions src/containers/portfolio/Portfolio.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@ interface PortfolioProps {
}

export default function Portfolio({ username }: PortfolioProps) {
const { data, isLoading } = usePortfolioQuery(username)
const { data: currentUser, isLoading: isLoadingCurrentUser } = useAuthQuery()
const { data } = usePortfolioQuery(username)
const { data: currentUser } = useAuthQuery()

if (isLoading || isLoadingCurrentUser || !data) {
if (!data) {
return null
}

return (
<>
<PortfolioLayout>
Expand Down
1 change: 1 addition & 0 deletions src/hooks/queries/portfolio.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ export const usePortfolioQuery = (username: string) => {
queryKey: ['portfolio', username],
queryFn: () => getPortfolio(username),
enabled: !!username,
staleTime: 60 * 1000,
})
}

Expand Down

0 comments on commit 79caa2a

Please sign in to comment.