디자인 개선 및 변경사항 적용
post리스트에서 전체 목록에서 내 목록을 filter하는 과정이 보이는 문제 해결 위해 client가 아닌 server에서 관련 data만 불러오도록 개선 -> 하지만 여전히 보이는 문제가 있어 추가 확인 필요
export async function GET(request: NextRequest, { params }: { params: { id: string } }) {
const supabase = createClient();
const { id: userId } = params;
if (!userId) {
return NextResponse.json({ error: 'User ID is required' }, { status: 400 });
}
try {
const { data, error } = await supabase
.from('posts')
.select('*')
.eq('user_id', userId)
.order('created_at', { ascending: false });
if (error) {
throw error;
}
return NextResponse.json(data, { status: 200 });
} catch (error) {
return NextResponse.json(
{ error: error instanceof Error ? error.message : 'An unknown error occurred' },
{ status: 500 }
);
}
}
const getPostsData = async () => {
try {
const response = await axios.get(API_MYPAGE_POST(userId));
return response.data;
} catch (error) {
if (axios.isAxiosError(error)) {
throw new Error(`HTTP error! status: ${error.response?.status}`);
} else {
throw new Error('An unknown error occurred');
}
}
};
const { data, isPending, error, refetch } = useQuery<Tables<'posts'>[]>({
queryKey: ['post', userId],
queryFn: getPostsData,
enabled: !!userId
});