diff --git a/src/entities/projects/ui/projects-detail/ProjectDescription.tsx b/src/entities/projects/ui/projects-detail/ProjectDescription.tsx
index a983be1..98647e8 100644
--- a/src/entities/projects/ui/projects-detail/ProjectDescription.tsx
+++ b/src/entities/projects/ui/projects-detail/ProjectDescription.tsx
@@ -13,7 +13,9 @@ const ProjectDescription = ({
return (
<>
- {description}
+
+ {description}
+
>
);
};
diff --git a/src/features/projects/hooks/useApplyForm.ts b/src/features/projects/hooks/useApplyForm.ts
index 91adaa7..dffc377 100644
--- a/src/features/projects/hooks/useApplyForm.ts
+++ b/src/features/projects/hooks/useApplyForm.ts
@@ -6,6 +6,7 @@ import { useCreateProjectApplications } from "@features/projects/queries/useCrea
import { useGetProjectApplicationStatus } from "@entities/projects/queries/useGetProjectApplications";
+import { useAuthStore } from "@shared/stores/authStore";
import { useSnackbarStore } from "@shared/stores/snackbarStore";
interface ApplyFormResult {
@@ -27,6 +28,7 @@ interface ApplyFormResult {
const useApplyForm = (): ApplyFormResult => {
const { id: projectId } = useParams();
+ const { user } = useAuthStore();
const { showError } = useSnackbarStore();
const { data: isApplied = false, isLoading: dataLoading } =
@@ -41,6 +43,10 @@ const useApplyForm = (): ApplyFormResult => {
const openForm = (): void => {
if (dataLoading) return;
+ if (!user) {
+ showError("로그인을 해주세요");
+ return;
+ }
setIsFormOpen(true);
};
const closeForm = (): void => setIsFormOpen(false);
diff --git a/src/features/projects/ui/ProjectLike.tsx b/src/features/projects/ui/ProjectLike.tsx
index 098926f..4712a96 100644
--- a/src/features/projects/ui/ProjectLike.tsx
+++ b/src/features/projects/ui/ProjectLike.tsx
@@ -7,6 +7,7 @@ import {
getStatusClassname,
shareProjectUrl,
} from "@shared/libs/utils/projectDetail";
+import { useSnackbarStore } from "@shared/stores/snackbarStore";
import type { ProjectListRes } from "@shared/types/project";
import {
FavoriteBorderIcon,
@@ -22,6 +23,13 @@ interface ProjectLikeProps {
const ProjectLike = ({ values }: ProjectLikeProps): JSX.Element => {
const { isLiked, toggleLike } = useOptimisticProjectLike();
+ const { showError, showSuccess } = useSnackbarStore();
+
+ const sharelink = (): void => {
+ shareProjectUrl()
+ .then(() => showSuccess("UPL이 복사되었습니다."))
+ .catch(() => showError("복사 실패"));
+ };
return (
@@ -37,7 +45,7 @@ const ProjectLike = ({ values }: ProjectLikeProps): JSX.Element => {
)}
-
+
diff --git a/src/shared/libs/utils/projectDetail.ts b/src/shared/libs/utils/projectDetail.ts
index cdb913f..7a30bfb 100644
--- a/src/shared/libs/utils/projectDetail.ts
+++ b/src/shared/libs/utils/projectDetail.ts
@@ -17,9 +17,6 @@ export const formatDate = (date?: string | Timestamp): string => {
return date;
};
-export const shareProjectUrl = (): void => {
- navigator.clipboard
- .writeText(window.location.href)
- .then(() => alert("URL이 복사되었습니다."))
- .catch(() => alert("복사 실패"));
+export const shareProjectUrl = async (): Promise => {
+ navigator.clipboard.writeText(window.location.href);
};
diff --git a/src/shared/ui/LogoBox.tsx b/src/shared/ui/LogoBox.tsx
index 58bbd7f..4a679a8 100644
--- a/src/shared/ui/LogoBox.tsx
+++ b/src/shared/ui/LogoBox.tsx
@@ -3,6 +3,8 @@ import type { SxProps, Theme } from "@mui/material";
import type { JSX } from "react";
import { useNavigate } from "react-router-dom";
+import Logo from "./icons/logo.svg";
+
interface LogoBoxProps {
size?: "small" | "medium" | "large";
onClick?: () => void;
@@ -40,7 +42,7 @@ const LogoBox = ({
$disableHover={disableHover}
sx={sx}
>
-
+
{showText && {text}}
);
diff --git a/src/app/public/logo.svg b/src/shared/ui/icons/logo.svg
similarity index 100%
rename from src/app/public/logo.svg
rename to src/shared/ui/icons/logo.svg