📝 pr 올릴 때 자세히 정리해놓아 TIL에도 가져와본다.
closed #62
// header-loggedIn.tsx
/** 현재 로그인한 유저의 프로필 이미지 가져오기 **/
const {
data: profileImgArray,
isPending,
isError,
} = useQuery({
queryKey: ["user", { type: "profileImg" }],
queryFn: () => getProfileImg(email),
enabled: !!email,
});
if (isPending) {
return <div>Loading...</div>;
}
if (isError) {
return <div>Error</div>;
}
const profileImg = profileImgArray[0].profile_img;
layout
에서 HeaderNav
를 QueryProvider
안쪽으로 위치이동// layout.tsx
<QueryProvider>
<HeaderNav />
{children}
</QueryProvider>
// header-loggedIn.tsx
<img
src={profileImg}
alt="사용자 이미지"
className="rounded-3xl w-[50px] h-[50px]"
/>
prefix
로 추가함// header-loggedIn.tsx
/** 현재 로그인한 유저의 프로필 이미지 가져오기 **/
const {
data: profileImgArray,
isPending,
isError,
} = useQuery({
// queryKey 주목
queryKey: ["user", { type: "profileImg" }],
queryFn: () => getProfileImg(email),
// email이 아직 안들어와서 null인 경우 query를 실행하지 말고 기다리라는 옵션
enabled: !!email,
});
const insertWriting = async (newWrite) => {
const { error: insertWrite } = await supabase.from('communityWrite').insert([newWrite]).select();
if (insertWrite) {
alert('글을 저장하지 못 했습니다.');
console.error(insertWrite);
return insertWrite;
}
};
const getWriteList = async () => {
const { data, error: getWrite } = await supabase.from('communityWrite').select('*');
if (getWrite) {
console.error(getWrite);
return getWrite;
} else {
return data;
}
};
const updateWrite = async ([changeContent, id]) => {
const { error: updateWrite } = await supabase.from('communityWrite').update(changeContent).eq('id', id);
if (updateWrite) {
alert('변경하지 못 했습니다.');
console.error(updateWrite);
}
};
const deleteWrite = async (id) => {
const { error: deleteWrite } = await supabase.from('communityWrite').delete().eq('id', id).select();
if (deleteWrite) {
alert('삭제하지 못 했습니다.');
console.error(deleteWrite);
}
};
// 현재 로그인한 유저정보 반환
// supabase.auth.getuser
const getUser = async () => {
const {
data: { user },
error
} = await supabase.auth.getUser();
if (error) {
console.error(error);
return error;
} else {
return user;
}
};
// ‘위 함수에서 응답한 데이터’.__isAuthError > 로그인한 정보가 있나없나를 반환
// ex) userData.__isAuthError -> 반환값은 boolean으로 예상