Skip to content

Commit 0163b13

Browse files
authored
Merge pull request #247 from FE9-2/dev
12/24 - 4시 배포
2 parents 1cabffb + 17a34fd commit 0163b13

File tree

15 files changed

+5056
-1239
lines changed

15 files changed

+5056
-1239
lines changed

package-lock.json

Lines changed: 4937 additions & 1207 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@
1717
"@channel.io/channel-web-sdk-loader": "^2.0.0",
1818
"@hookform/resolvers": "^3.9.0",
1919
"@lottiefiles/react-lottie-player": "^3.5.4",
20+
"@next/third-parties": "^15.1.2",
2021
"@studio-freight/lenis": "^1.0.42",
2122
"@supabase/supabase-js": "^2.47.10",
2223
"@tanstack/react-query": "^5.59.19",
2324
"axios": "^1.7.7",
2425
"date-fns": "^4.1.0",
2526
"form-data": "^4.0.1",
2627
"framer-motion": "^11.15.0",
27-
"motion": "^11.15.0",
2828
"next": "14.2.15",
2929
"next-auth": "^4.24.10",
3030
"next-sitemap": "^4.2.3",
@@ -38,7 +38,6 @@
3838
"react-icons": "^5.3.0",
3939
"react-intersection-observer": "^9.14.0",
4040
"react-kakao-maps-sdk": "^1.1.27",
41-
"react-modal": "^3.16.1",
4241
"react-responsive": "^10.0.0",
4342
"tailwind-merge": "^2.5.4",
4443
"zod": "^3.23.8",

public/sitemap.xml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
3-
<url><loc>https://www.workroot.life/signup/applicant</loc><lastmod>2024-12-24T02:01:26.330Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
4-
<url><loc>https://www.workroot.life/signup/owner</loc><lastmod>2024-12-24T02:01:26.331Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
5-
<url><loc>https://www.workroot.life/login</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
6-
<url><loc>https://www.workroot.life/addform</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
7-
<url><loc>https://www.workroot.life/signup</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
8-
<url><loc>https://www.workroot.life/my-workform/applicant</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
9-
<url><loc>https://www.workroot.life/my-workform</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
10-
<url><loc>https://www.workroot.life/my-workform/owner</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
11-
<url><loc>https://www.workroot.life/mypage</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
12-
<url><loc>https://www.workroot.life/work-list</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
13-
<url><loc>https://www.workroot.life</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
14-
<url><loc>https://www.workroot.life/auth/callback</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
15-
<url><loc>https://www.workroot.life/work-talk</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
16-
<url><loc>https://www.workroot.life/work-talk/add</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
17-
<url><loc>https://www.workroot.life/stories/design-system/pages/albaList</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
18-
<url><loc>https://www.workroot.life/privacy</loc><lastmod>2024-12-24T02:01:26.332Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
3+
<url><loc>https://www.workroot.life/signup</loc><lastmod>2024-12-24T07:12:16.222Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
4+
<url><loc>https://www.workroot.life</loc><lastmod>2024-12-24T07:12:16.224Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
5+
<url><loc>https://www.workroot.life/signup/applicant</loc><lastmod>2024-12-24T07:12:16.224Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
6+
<url><loc>https://www.workroot.life/login</loc><lastmod>2024-12-24T07:12:16.224Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
7+
<url><loc>https://www.workroot.life/addform</loc><lastmod>2024-12-24T07:12:16.224Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
8+
<url><loc>https://www.workroot.life/my-workform/applicant</loc><lastmod>2024-12-24T07:12:16.224Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
9+
<url><loc>https://www.workroot.life/my-workform</loc><lastmod>2024-12-24T07:12:16.224Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
10+
<url><loc>https://www.workroot.life/my-workform/owner</loc><lastmod>2024-12-24T07:12:16.224Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
11+
<url><loc>https://www.workroot.life/mypage</loc><lastmod>2024-12-24T07:12:16.224Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
12+
<url><loc>https://www.workroot.life/work-list</loc><lastmod>2024-12-24T07:12:16.224Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
13+
<url><loc>https://www.workroot.life/work-talk/add</loc><lastmod>2024-12-24T07:12:16.224Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
14+
<url><loc>https://www.workroot.life/auth/callback</loc><lastmod>2024-12-24T07:12:16.225Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
15+
<url><loc>https://www.workroot.life/work-talk</loc><lastmod>2024-12-24T07:12:16.225Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
16+
<url><loc>https://www.workroot.life/privacy</loc><lastmod>2024-12-24T07:12:16.225Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
17+
<url><loc>https://www.workroot.life/signup/owner</loc><lastmod>2024-12-24T07:12:16.225Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
18+
<url><loc>https://www.workroot.life/stories/design-system/pages/albaList</loc><lastmod>2024-12-24T07:12:16.225Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
1919
</urlset>

src/app/(home)/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { motion, AnimatePresence } from "framer-motion";
55
import Image from "next/image";
66
import Lenis from "@studio-freight/lenis";
77
import { useMediaQuery } from "react-responsive";
8-
import TypewriterText from "../components/animation/typewriterText";
8+
import TypewriterText from "../components/animation/TypewriterText";
99

1010
const slides = [
1111
{

src/app/(pages)/(workform)/apply/[formId]/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export default function Apply() {
8787
await queryClient.invalidateQueries({ queryKey: ["formDetail", formId] });
8888

8989
toast.success("지원이 완료되었습니다.");
90-
router.push("/my-workform");
90+
router.push(`/work/${formId}`);
9191
},
9292

9393
onError: (error) => {

src/app/(pages)/mypage/components/sections/CommentsSection.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import ContentSection from "@/app/components/layout/ContentSection";
99
import useWidth from "@/hooks/useWidth";
1010
import ScrollTopButton from "@/app/components/button/default/ScrollTopButton";
1111
import SamllLoadingSpinner from "@/app/components/loading-spinner/SmallLoadingSpinner";
12+
import LoadingSpinner from "@/app/components/loading-spinner/LoadingSpinner";
1213

1314
export default function CommentsSection() {
1415
const [currentPage, setCurrentPage] = useState(1);
@@ -43,6 +44,10 @@ export default function CommentsSection() {
4344
window.scrollTo(0, 0);
4445
};
4546

47+
if (isLoading) {
48+
return <LoadingSpinner />;
49+
}
50+
4651
if (error) {
4752
return (
4853
<div className="flex h-[calc(100vh-300px)] items-center justify-center">

src/app/(pages)/mypage/components/sections/PostsSection.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import ScrollTopButton from "@/app/components/button/default/ScrollTopButton";
1111
import BoardPostItem from "@/app/components/card/board/BoardPostItem";
1212
import DotLoadingSpinner from "@/app/components/loading-spinner/DotLoadingSpinner";
1313
import SamllLoadingSpinner from "@/app/components/loading-spinner/SmallLoadingSpinner";
14+
import LoadingSpinner from "@/app/components/loading-spinner/LoadingSpinner";
15+
import { useUser } from "@/hooks/queries/user/me/useUser";
1416

1517
export default function PostsSection() {
1618
const { orderBy } = useMySortStore();
@@ -36,7 +38,7 @@ export default function PostsSection() {
3638
limit: postsPerPage,
3739
orderBy: orderBy.posts,
3840
});
39-
41+
const { user } = useUser();
4042
useEffect(() => {
4143
if (inView && hasNextPage && !isFetchingNextPage) {
4244
fetchNextPage();
@@ -51,6 +53,10 @@ export default function PostsSection() {
5153
);
5254
}
5355

56+
if (isLoading) {
57+
return <LoadingSpinner />;
58+
}
59+
5460
return (
5561
<div className="flex flex-col items-center">
5662
{/* 메인 콘텐츠 영역 */}
@@ -70,7 +76,13 @@ export default function PostsSection() {
7076
{data.pages.map((page) => (
7177
<React.Fragment key={page.nextCursor}>
7278
{page.data.map((post) => (
73-
<BoardPostItem post={post} key={post.id} />
79+
<BoardPostItem
80+
post={post}
81+
key={post.id}
82+
isAuthor={!!(post.writer.id === user?.id)}
83+
limit={postsPerPage}
84+
orderBy={orderBy.posts}
85+
/>
7486
))}
7587
</React.Fragment>
7688
))}

src/app/(pages)/mypage/page.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@ import CommentsSection from "./components/sections/CommentsSection";
66
import ScrapsSection from "./components/sections/ScrapsSection";
77
import { userRoles } from "@/constants/userRoles";
88
import { useUser } from "@/hooks/queries/user/me/useUser";
9+
import toast from "react-hot-toast";
10+
import { useRouter } from "next/navigation";
911

1012
export default function MyPage() {
1113
const searchParams = useSearchParams();
1214
const currentTab = searchParams.get("tab") || "posts";
15+
const router = useRouter();
1316
const { user } = useUser();
1417
const isApplicant = user?.role === userRoles.APPLICANT;
1518

@@ -19,5 +22,10 @@ export default function MyPage() {
1922
...(isApplicant && { scrap: <ScrapsSection /> }),
2023
}[currentTab];
2124

25+
if (!user) {
26+
toast.error("로그인이 필요한 페이지입니다.");
27+
router.push("/login");
28+
}
29+
2230
return TabContent;
2331
}

src/app/components/button/dropdown/KebabDropdown.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,14 @@ const KebabDropdown = ({ options, className = "" }: KebabDropdownProps) => {
2929
<div ref={dropdownRef} className={cn("relative inline-block text-left", className)}>
3030
<button
3131
type="button"
32-
onClick={() => setIsOpen(!isOpen)}
33-
className="rounded-full hover:bg-grayscale-50"
32+
onClick={(e) => {
33+
setIsOpen(!isOpen);
34+
e.stopPropagation();
35+
}}
36+
className="rounded-full transition-transform hover:scale-125 hover:bg-grayscale-50"
3437
aria-label="메뉴 더보기"
3538
>
36-
<BsThreeDotsVertical className="text-sm text-grayscale-200 lg:text-xl" />
39+
<BsThreeDotsVertical className="text-md text-grayscale-200 lg:text-xl" />
3740
</button>
3841

3942
{isOpen && (
@@ -42,7 +45,8 @@ const KebabDropdown = ({ options, className = "" }: KebabDropdownProps) => {
4245
<button
4346
type="button"
4447
key={`${index}-${option.label}`}
45-
onClick={() => {
48+
onClick={(e) => {
49+
e.stopPropagation();
4650
option.onClick();
4751
setIsOpen(false);
4852
}}

src/app/components/card/board/BoardComment.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ const BoardComment = ({
6767

6868
return (
6969
<Link href={`work-talk/${postId}`}>
70-
<div className="relative flex h-[202px] w-[327px] flex-col gap-2 rounded-[16px] border border-line-200 bg-grayscale-50 p-6 shadow-md md:w-[600px] lg:h-[264px] lg:w-full">
70+
<div className="relative flex h-[202px] w-[327px] flex-col gap-2 rounded-[16px] border border-line-200 bg-grayscale-50 p-6 shadow-md transition-transform hover:scale-105 md:w-[600px] lg:h-[264px] lg:w-full">
7171
{/* Post Section */}
7272
<div className="flex w-full flex-col gap-4 border-b border-line-100 pb-2 lg:pb-4">
7373
<div className="flex items-center gap-[6px] lg:gap-2">

0 commit comments

Comments
 (0)