본문 바로가기

전체 글

(173)
#10 DMs > 채팅방을 만들어보자 메시지를 보내려고 할 때 기존 채팅방이 없으면 새로 만들어주고, 있으면 기존 채팅방에 메시지를 보내는 방법이다. - get_room.sqlCREATE FUNCTION public.get_room(from_user_id uuid, to_user_id uuid)RETURNS TABLE (message_room_id bigint)LANGUAGE plpgsqlSECURITY DEFINERSET search_path = ''AS $$BEGIN RETURN QUERY SELECT m1.message_room_id FROM message_room_members m1 INNER JOIN message_room_members m2 ON m1.message_room_id = m..
#9 Fetchers > Fetcher란? 기존에 loader와 action을 사용하기 위해서는 url 주소에 의존해야 했다. 하지만 fetcher를 쓰면 화면 어디에서든지 자유롭게 loader와 action을 사용 할 수 있다. (notification이나, upvote에 쓰기 좋음) > Uplovtes 버튼 작동- routes.ts route("/:postId/upvote", "features/community/pages/upvote-post-page.tsx"),추가 - post-page.tsximport { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbSeparator,} from "~/common/components/ui/..
#8 Private Pages > 프라이빗 페이지들을 꾸며보자. (로그인 된 유저들만 접속 가능한 페이지들) 먼저 커뮤니티 게시글 작성 하는 페이지 - mutations.tsimport { SupabaseClient } from "@supabase/supabase-js";import { Database } from "~/supa-client";export const createPost = async ( client: SupabaseClient, { title, category, content, userId, }: { title: string; category: string; content: string; userId: string; }) => { const { data: catego..