diff --git a/public/icons/sell.svg b/public/icons/sell.svg new file mode 100644 index 00000000..d9c6a9f5 --- /dev/null +++ b/public/icons/sell.svg @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/src/features/createPost/lib/useOpenCreatePost.ts b/src/features/createPost/lib/useOpenCreatePost.ts new file mode 100644 index 00000000..13bc5f35 --- /dev/null +++ b/src/features/createPost/lib/useOpenCreatePost.ts @@ -0,0 +1,23 @@ +"use client"; + +import { useRouter } from "next/navigation"; +import { useAuthStore } from "@/features/auth/model/auth.store"; +import { usePostCreateModal } from "./usePostCreateModal"; + +export const useOpenCreatePostWithAuth = () => { + const router = useRouter(); + const isLogined = useAuthStore((state) => state.isLogined); + + const { openPostCreateModal } = usePostCreateModal(); + + const handleOpen = () => { + if (!isLogined) { + router.push("/login"); + return; + } + + openPostCreateModal(); + }; + + return { handleOpen }; +}; diff --git a/src/widgets/header/ui/HeaderDesktop.tsx b/src/widgets/header/ui/HeaderDesktop.tsx index ca51edf0..77fb9964 100644 --- a/src/widgets/header/ui/HeaderDesktop.tsx +++ b/src/widgets/header/ui/HeaderDesktop.tsx @@ -1,7 +1,9 @@ "use client"; import Link from "next/link"; +import { usePathname } from "next/navigation"; import SearchForm from "./SearchForm"; +import { useOpenCreatePostWithAuth } from "@/features/createPost/lib/useOpenCreatePost"; interface HeaderDesktopProps { isLogined: boolean; @@ -23,6 +25,11 @@ const HeaderDesktop = ({ navItems, onOpenChat, }: HeaderDesktopProps) => { + const pathname = usePathname(); + const { handleOpen } = useOpenCreatePostWithAuth(); + + const hideSellButton = pathname.startsWith("/my"); + return (