Skip to content

Commit c92ffc0

Browse files
committed
Merge branch 'develop' of https://github.com/codeit9-temporary/linkbrary into Refactor/LinkCardStore
2 parents a5a2bbc + 1a4a9a2 commit c92ffc0

File tree

12 files changed

+108
-28
lines changed

12 files changed

+108
-28
lines changed

components/modal/DeleteFolderModal.tsx

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,22 @@ import toast from "react-hot-toast";
66
import toastMessages from "@/lib/toastMessage";
77

88
const DeleteFolderModal = ({
9-
folderName,
9+
// folderName,
1010
folderId,
11+
linkCount,
1112
}: {
12-
folderName: string;
13+
// folderName: string;
1314
folderId: number;
15+
linkCount: number;
1416
}) => {
1517
const { closeModal } = useModalStore();
16-
let linkCount: number;
18+
// let linkCount: number;
1719
const handleSubmit = async () => {
1820
// 폴더 내에 링크 개수 0 일때만 폴더 삭제 가능 -> 링크 1개 이상이면 error toast 띄우고 있음 or 전체 링크 삭제 후 폴더 삭제
19-
if (linkCount === 0) {
21+
if (!linkCount) {
22+
toast.error(toastMessages.error.invalidLinkCount);
23+
closeModal();
24+
} else if (linkCount === 0) {
2025
try {
2126
await deleteFolder(folderId);
2227
toast.success(toastMessages.success.deleteFolder);
@@ -32,7 +37,10 @@ const DeleteFolderModal = ({
3237
};
3338

3439
return (
35-
<ModalContainer title="폴더 삭제" subtitle={folderName}>
40+
<ModalContainer
41+
title="폴더 삭제"
42+
// subtitle={folderName}
43+
>
3644
<SubmitButton
3745
type="button"
3846
onClick={handleSubmit}

components/modal/EditModal.tsx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import toast from "react-hot-toast";
88
import toastMessages from "@/lib/toastMessage";
99

1010
const EditModal = ({
11-
folderName,
11+
// folderName,
1212
folderId,
1313
}: {
14-
folderName: string;
14+
// folderName: string;
1515
folderId: number;
1616
}) => {
1717
const [value, setValue] = useState("");
@@ -25,25 +25,27 @@ const EditModal = ({
2525
const body = {
2626
name: value,
2727
};
28-
if (value === folderName) {
29-
toast.error(toastMessages.error.sameFolderName);
28+
if (!folderId) {
29+
toast.error(toastMessages.error.invalidLinkCount);
30+
closeModal();
3031
} else if (value === "") {
3132
toast.error(toastMessages.error.inputFolderName);
3233
} else {
3334
try {
3435
await putFolder(folderId, body);
3536
toast.success(toastMessages.success.editFolder);
37+
closeModal();
3638
} catch (error) {
3739
toast.error(toastMessages.error.editFolder);
40+
closeModal();
3841
}
3942
}
40-
closeModal();
4143
};
4244
return (
4345
<ModalContainer title="폴더 이름 변경">
4446
<ModalInput
45-
placeholder={folderName}
46-
name={folderName}
47+
placeholder="수정할 이름을 입력해 주세요"
48+
name="folderName"
4749
value={value}
4850
onChange={handleChange}
4951
/>

components/modal/modalComponents/ModalShare.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,28 @@
1+
import { handleCopyUrl } from "@/util/copyUrl";
2+
import { handleShareFacebook, handleShareKakao } from "@/util/shareSNS";
13
import ModalShareItem from "./ModalShareItem";
4+
import { useEffect } from "react";
25

36
const ModalShare = () => {
7+
useEffect(() => {
8+
if (!window.Kakao.isInitialized()) {
9+
window.Kakao.init(process.env.NEXT_PUBLIC_KAKAO_API_KEY);
10+
}
11+
}, []);
12+
413
return (
514
<div className="flex gap-8">
6-
<div>
15+
<div onClick={handleShareKakao}>
716
<ModalShareItem src="/icons/Kakao.svg" text="카카오톡" bg="#FEE500" />
817
</div>
9-
<div>
18+
<div onClick={handleShareFacebook}>
1019
<ModalShareItem
1120
src="/icons/Facebook.svg"
1221
text="페이스북"
1322
bg="#1877F2"
1423
/>
1524
</div>
16-
<div>
25+
<div onClick={handleCopyUrl}>
1726
<ModalShareItem
1827
src="/icons/link.svg"
1928
text="링크 복사"

components/modal/modalComponents/ModalShareItem.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const ModalShareItem = ({
1212
color?: string;
1313
}) => {
1414
return (
15-
<div className="flex flex-col justify-center items-center gap-[10px]">
15+
<div className="flex flex-col justify-center items-center gap-[10px] cursor-pointer hover:scale-105">
1616
<div
1717
style={{ backgroundColor: bg }}
1818
className={`bg-[${bg}] size-[42px] rounded-full flex justify-center items-center`}

components/modal/modalManager/ModalManager.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@ export const Modal = () => {
3131
case "DeleteFolderModal":
3232
return (
3333
<DeleteFolderModal
34-
folderName={props.folderName || "폴더이름"}
34+
// folderName={props.folderName || "폴더이름"}
3535
folderId={Number(props.folderId)}
36+
linkCount={Number(props.linkCount)}
3637
/>
3738
);
3839
case "DeleteLinkModal":
@@ -45,7 +46,7 @@ export const Modal = () => {
4546
case "EditModal":
4647
return (
4748
<EditModal
48-
folderName={props.folderName || "폴더이름"}
49+
// folderName={props.folderName || "폴더이름"}
4950
folderId={Number(props.folderId)}
5051
/>
5152
);

globals.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
declare global {
2+
interface Window {
3+
Kakao: any;
4+
}
5+
}
6+
7+
export {};

lib/toastMessage.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ const toastMessages = {
3030
sameLink: "이미 저장된 링크 주소입니다",
3131
sameFolderName: "같은 이름으로는 수정할 수 없습니다",
3232
invalidLink: "잘못된 링크 형식입니다",
33+
invalidLinkCount: "폴더 정보를 받아오는데 실패했습니다",
3334
},
3435
};
3536

pages/_app.tsx

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import Footer from "@/components/Layout/Footer";
22
import Header from "@/components/Layout/Header";
33
import "@/styles/globals.css";
44
import type { AppProps } from "next/app";
5+
import Head from "next/head";
56
import { useRouter } from "next/router";
67
import { Toaster } from "react-hot-toast";
78

@@ -10,15 +11,34 @@ export default function App({ Component, pageProps }: AppProps) {
1011
const hidePaths = ["/login", "/signup", "/404"];
1112

1213
return (
13-
<div className="min-h-screen flex flex-col">
14-
<div>
15-
<Toaster />
16-
</div>
17-
{!hidePaths.includes(router.pathname) && <Header />}
18-
<div className="flex-grow">
19-
<Component {...pageProps} />
14+
<>
15+
<Head>
16+
<meta property="og:type" content="website" />
17+
{/* <meta property="og:url" content="https://linkbrary.app" /> 배포 후 실제 도메인으로 변경 필요 */}
18+
<meta property="og:title" content="Linkbrary" />
19+
<meta
20+
property="og:description"
21+
content="나만의 링크를 관리하는 Linkbrary"
22+
/>
23+
<meta property="og:image" content="/images/home_main.png" />
24+
<title>Linkbrary</title>
25+
</Head>
26+
27+
<script
28+
defer
29+
src="https://developers.kakao.com/sdk/js/kakao.min.js"
30+
></script>
31+
32+
<div className="min-h-screen flex flex-col">
33+
<div>
34+
<Toaster />
35+
</div>
36+
{!hidePaths.includes(router.pathname) && <Header />}
37+
<div className="flex-grow">
38+
<Component {...pageProps} />
39+
</div>
40+
{!hidePaths.includes(router.pathname) && <Footer />}
2041
</div>
21-
{!hidePaths.includes(router.pathname) && <Footer />}
22-
</div>
42+
</>
2343
);
2444
}

pages/_document.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Html, Head, Main, NextScript } from "next/document";
22

33
export default function Document() {
44
return (
5-
<Html lang="en">
5+
<Html lang="ko">
66
<Head />
77
<body className="antialiased">
88
<Main />

types/modalTypes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export interface ModalPropType {
99
list?: FolderItemType[];
1010
link?: string;
1111
linkId?: number | null;
12+
linkCount?: number;
1213
}
1314

1415
export interface FolderItemType {

0 commit comments

Comments
 (0)