Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added public/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions src/app/(pages)/(albaform)/addform/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ export default function AddFormPage() {
window.localStorage.removeItem("tempAddFormData");
}
setLoading(false);
toast.success("알바폼을 등록했습니다.");
toast.success("워크폼을 등록했습니다.");
},
onError: (error) => {
setLoading(false);
Expand Down Expand Up @@ -226,7 +226,7 @@ export default function AddFormPage() {

useEffect(() => {
if (user?.role !== "OWNER") {
toast.error("사장님만 알바폼을 작성할 수 있습니다.");
toast.error("사장님만 워크폼을 작성할 수 있습니다.");
router.push("/alba-list");
}
}, [user, router]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { useFormContext } from "react-hook-form";
import InputDropdown from "@/app/components/button/dropdown/InputDropdown";
import Label from "../../component/Label";

// 알바폼 만들기 - 사장님- 2-모집조건
// 워크폼 만들기 - 사장님- 2-모집조건
export default function RecruitConditionSection() {
const {
register,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import Label from "../../component/Label";
import { ImageInputType } from "@/types/addform";
import useUploadImages from "@/hooks/queries/user/me/useImageUpload";

// 알바폼 만들기 - 사장님 - 1-모집내용
// 워크폼 만들기 - 사장님 - 1-모집내용

export default function RecruitContentSection() {
// 이미지 파일을 로컬 상태에 저장
Expand Down Expand Up @@ -92,7 +92,7 @@ export default function RecruitContentSection() {
return (
<div className="relative">
<form className="my-8 flex flex-col gap-4">
<Label>알바폼 제목</Label>
<Label>워크폼 제목</Label>
<BaseInput
{...register("title", { required: "제목을 입력해주세요" })}
type="text"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import Script from "next/script";
import LocationInput from "@/app/components/input/text/LocationInput";
import { toast } from "react-hot-toast";

// 알바폼 만들기 - 사장님 - 3-근무조건
// 워크폼 만들기 - 사장님 - 3-근무조건
export default function WorkConditionSection() {
const {
register,
Expand Down
6 changes: 3 additions & 3 deletions src/app/(pages)/(albaform)/alba/[formId]/edit/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use client";
// 알바폼 수정 페이지 (사장님)
// 워크폼 수정 페이지 (사장님)

import { useEffect, useState } from "react";
import { useParams, useRouter, useSearchParams } from "next/navigation";
Expand Down Expand Up @@ -112,7 +112,7 @@ export default function EditFormPage() {
if (typeof window !== "undefined") {
window.localStorage.removeItem("tempAddFormData");
}
toast.success("알바폼을 수정했습니다.");
toast.success("워크폼을 수정했습니다.");
router.push(`/alba/${formId}`);
// 쿼리 무효화
queryClient.invalidateQueries({
Expand Down Expand Up @@ -164,7 +164,7 @@ export default function EditFormPage() {

useEffect(() => {
if (user?.role !== "OWNER") {
toast.error("사장님만 알바폼을 작성할 수 있습니다.");
toast.error("사장님만 워크폼을 작성할 수 있습니다.");
router.push("/alba-list");
}
}, [user, router]);
Expand Down
2 changes: 1 addition & 1 deletion src/app/(pages)/(albaform)/alba/[formId]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use client";
// 알바폼 상세 페이지
// 워크폼 상세 페이지
import { useParams } from "next/navigation";
import React, { useEffect, useState } from "react";
import { useUser } from "@/hooks/queries/user/me/useUser";
Expand Down
2 changes: 1 addition & 1 deletion src/app/(pages)/(albaform)/apply/[formId]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ interface ApplyFormData {
resumeId: number;
resumeName: string;
}
// 알바폼 만들기 - 지원자 (지원하기)
// 워크폼 만들기 - 지원자 (지원하기)
export default function Apply() {
const {
register,
Expand Down
2 changes: 1 addition & 1 deletion src/app/(pages)/(albaform)/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default function Layout({ children }: { children: ReactNode }) {

const isForm: boolean = pathname.split("/").some((path) => formPath.includes(path));
const isFormWithTab: boolean = pathname.split("/").some((path) => path === "addform" || path === "edit");
const title = pathname.split("/").includes("apply") && isForm ? "알바폼 지원하기" : "알바폼 작성하기";
const title = pathname.split("/").includes("apply") && isForm ? "워크폼 지원하기" : "워크폼 작성하기";

// 폼 작성 페이지 레이아웃
const FormStyle = cn(
Expand Down
4 changes: 2 additions & 2 deletions src/app/(pages)/alba-list/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export default function AlbaList() {
rootMargin: "100px",
});

// 알바폼 목록 조회
// 워크폼 목록 조회
const { data, isLoading, error, hasNextPage, fetchNextPage, isFetchingNextPage } = useForms({
limit: FORMS_PER_PAGE,
isRecruiting: isRecruiting === "true" ? true : isRecruiting === "false" ? false : undefined,
Expand Down Expand Up @@ -87,7 +87,7 @@ export default function AlbaList() {
if (error) {
return (
<div className="flex h-[calc(100vh-200px)] items-center justify-center">
<p className="text-red-500">알바 목록을 불러오는데 실패했습니다.</p>
<p className="text-red-500">워크 채널을 불러오는데 실패했습니다.</p>
</div>
);
}
Expand Down
4 changes: 2 additions & 2 deletions src/app/(pages)/my-albaform/(role)/owner/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ export default function AlbaList() {
rootMargin: "100px",
});

// 알바폼 목록 조회
// 워크폼 목록 조회
const {
data,
isLoading: isLoadingData,
Expand Down Expand Up @@ -136,7 +136,7 @@ export default function AlbaList() {
if (error) {
return (
<div className="flex h-[calc(100vh-200px)] items-center justify-center">
<p className="text-red-500">알바 목록을 불러오는데 실패했습니다.</p>
<p className="text-red-500">워크 채널을 불러오는데 실패했습니다.</p>
</div>
);
}
Expand Down
6 changes: 3 additions & 3 deletions src/app/(pages)/my-apply/[formId]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import CardChipIcon from "@/app/components/card/cardList/CardChipIcon";
import Chip from "@/app/components/chip/Chip";
import React from "react";

// 알바폼 지원내역 상세 페이지 (수정해야하는 페이지)
// 워크폼 지원내역 상세 페이지 (수정해야하는 페이지)
export default function MyApplyPage({ formId }: { formId: number }) {
return (
<div className="container flex min-h-screen flex-col">
Expand Down Expand Up @@ -34,8 +34,8 @@ export default function MyApplyPage({ formId }: { formId: number }) {
/>
<div className="text-2xl">
코드잇 스터디 카페입니다. 주말 토, 일 오픈업무 하실 분 구합니다. 성실하게 일하실 분들만 지원 바랍니다. 작성한
이력서(사진 부착)를 알바폼에 첨부해주시고, 아래와 같이 문자 보내주세요. 근무 중 전화통화 불가합니다. 예)
OOO입니다. __에 거주합니다. 알바폼 지원. 이력서 검토 후 면접진행자에 한해 면접일정 개별 연락드리겠습니다. 많은
이력서(사진 부착)를 워크폼에 첨부해주시고, 아래와 같이 문자 보내주세요. 근무 중 전화통화 불가합니다. 예)
OOO입니다. __에 거주합니다. 워크폼 지원. 이력서 검토 후 면접진행자에 한해 면접일정 개별 연락드리겠습니다. 많은
지원 바랍니다.
</div>
</div>
Expand Down
6 changes: 3 additions & 3 deletions src/app/api/forms/[formId]/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { cookies } from "next/headers";
import { NextRequest, NextResponse } from "next/server";
import apiClient from "@/lib/apiClient";

// 알바폼 상세 조회(로그인 여부에 따라 다른 응답)
// 워크폼 상세 조회(로그인 여부에 따라 다른 응답)
export async function GET(req: NextRequest, { params }: { params: { formId: string } }) {
try {
const accessToken = cookies().get("accessToken")?.value;
Expand Down Expand Up @@ -32,7 +32,7 @@ export async function GET(req: NextRequest, { params }: { params: { formId: stri
}
}

// 알바폼 수정
// 워크폼 수정
export async function PATCH(req: NextRequest, { params }: { params: { formId: string } }) {
try {
const accessToken = cookies().get("accessToken")?.value;
Expand Down Expand Up @@ -61,7 +61,7 @@ export async function PATCH(req: NextRequest, { params }: { params: { formId: st
}
}

// 알바폼 삭제
// 워크폼 삭제
export async function DELETE(req: NextRequest, { params }: { params: { formId: string } }) {
try {
const accessToken = cookies().get("accessToken")?.value;
Expand Down
4 changes: 2 additions & 2 deletions src/app/api/forms/[formId]/scrap/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { cookies } from "next/headers";
import { NextRequest, NextResponse } from "next/server";
import apiClient from "@/lib/apiClient";

// 알바폼 스크랩
// 워크폼 스크랩
export async function POST(req: NextRequest, { params }: { params: { formId: string } }) {
try {
const accessToken = cookies().get("accessToken")?.value;
Expand Down Expand Up @@ -34,7 +34,7 @@ export async function POST(req: NextRequest, { params }: { params: { formId: str
}
}

// 알바폼 스크랩 취소
// 워크폼 스크랩 취소
export async function DELETE(req: NextRequest, { params }: { params: { formId: string } }) {
try {
const accessToken = cookies().get("accessToken")?.value;
Expand Down
4 changes: 2 additions & 2 deletions src/app/api/forms/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { NextRequest, NextResponse } from "next/server";
import apiClient from "@/lib/apiClient";
import { cleanedParameters } from "@/utils/cleanedParameters";

// 알바폼 생성
// 워크폼 생성
export async function POST(req: NextRequest) {
try {
const accessToken = cookies().get("accessToken")?.value;
Expand Down Expand Up @@ -35,7 +35,7 @@ export async function POST(req: NextRequest) {
}
}

// 알바폼 목록 조회
// 워크폼 목록 조회
export async function GET(req: NextRequest) {
try {
const { searchParams } = new URL(req.url);
Expand Down
2 changes: 1 addition & 1 deletion src/app/api/users/me/applications/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { NextResponse } from "next/server";
import apiClient from "@/lib/apiClient";
import { cleanedParameters } from "@/utils/cleanedParameters";

// 내가 지원한 알바폼 목록 조회 API
// 내가 지원한 워크폼 목록 조회 API
export async function GET(request: Request) {
try {
// 쿠키에서 액세스 토큰 가져오기
Expand Down
4 changes: 2 additions & 2 deletions src/app/api/users/me/forms/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { NextResponse } from "next/server";
import apiClient from "@/lib/apiClient";
import { cleanedParameters } from "@/utils/cleanedParameters";

// 내가 생성한 알바폼 목록 조회 API
// 내가 생성한 워크폼 목록 조회 API
export async function GET(request: Request) {
try {
// 쿠키에서 액세스 토큰 가져오기
Expand All @@ -28,7 +28,7 @@ export async function GET(request: Request) {
// null, undefined, 빈 문자열을 가진 파라미터 제거
const cleanedParams = cleanedParameters(params);

// 알바폼 목록 조회 요청
// 워크폼 목록 조회 요청
const response = await apiClient.get("/users/me/forms", {
headers: {
Authorization: `Bearer ${accessToken}`,
Expand Down
2 changes: 1 addition & 1 deletion src/app/api/users/me/scrap/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { NextResponse } from "next/server";
import apiClient from "@/lib/apiClient";
import { cleanedParameters } from "@/utils/cleanedParameters";

// 내가 스크랩한 알바폼 목록 조회 API
// 내가 스크랩한 워크폼 목록 조회 API
export async function GET(request: Request) {
try {
// 쿠키에서 액세스 토큰 가져오기
Expand Down
4 changes: 2 additions & 2 deletions src/app/components/card/cardList/AlbaListItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ import DotLoadingSpinner from "@/app/components/loading-spinner/DotLoadingSpinne
import { isValidS3Url } from "@/utils/checkS3Url";

/**
* 알바폼 리스트 아이템 컴포넌트
* 알바폼 정보를 카드 형태로 표시하며, 이미지 인디케이터와 지원하기/스크랩 기능을 포함
* 워크폼 리스트 아이템 컴포넌트
* 워크폼 정보를 카드 형태로 표시하며, 이미지 인디케이터와 지원하기/스크랩 기능을 포함
*/
const AlbaListItem = ({
id,
Expand Down
2 changes: 1 addition & 1 deletion src/app/components/card/cardList/CardChipIcon.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ const CardChipIcon = ({ formData }: CardChipIconProps) => {
<div className={cn(propsStyle)}>
<MdPeopleAlt className={cn(iconStyle)} />
<span className={cn(titleStyle)}>지원현황</span>
<strong>현재까지 {formData.applyCount}명이 알바폼에 지원했어요!</strong>
<strong>현재까지 {formData.applyCount}명이 워크폼에 지원했어요!</strong>
</div>
</div>
);
Expand Down
4 changes: 2 additions & 2 deletions src/app/components/card/cardList/ScrapListItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ import { S3_URL } from "@/constants/config";
import DotLoadingSpinner from "../../loading-spinner/DotLoadingSpinner";

/**
* 알바폼 스크랩 리스트 아이템 컴포넌트
* 알바폼 스크랩 정보를 카드 형태로 표시하며, 이미지 인디케이터와 지원하기/스크랩 취소 기능을 포함
* 워크폼 스크랩 리스트 아이템 컴포넌트
* 워크폼 스크랩 정보를 카드 형태로 표시하며, 이미지 인디케이터와 지원하기/스크랩 취소 기능을 포함
*/
const ScrapListItem = ({
id,
Expand Down
32 changes: 11 additions & 21 deletions src/app/components/layout/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,7 @@ export default function Header() {
isActive ? "text-lime-900 text-sm md:text-base lg:text-lg lg:font-bold" : "text-lime-700 text-sm md:text-base"
);
};
const headerStyle =
"fixed left-0 right-0 top-0 z-40 border-b border-b-line-100 bg-lime-100 -tracking-widest md:tracking-normal";
const headerStyle = "fixed left-0 right-0 top-0 z-40 shadow-sm bg-lime-100 -tracking-widest md:tracking-normal";
const navStyle = "mx-auto flex h-16 min-w-[327px] items-center justify-between px-6 max-w-screen-xl ";
const menuStyle = "ml-4 flex h-16 items-center gap-4 md:ml-8 md:gap-6 lg:ml-[46px]";
const skeletonStyle = "w-16 animate-pulse bg-lime-200";
Expand All @@ -56,14 +55,10 @@ export default function Header() {
{/* 로고와 메인 네비게이션 */}
<div className="flex items-center">
{/* 로고 스켈레톤 - 이미지로 대체*/}
<Image
src="/logo.svg"
alt="Work Root Logo"
width={200}
height={60}
className="w-32 hover:opacity-90 sm:w-40 md:w-[200px]"
/>

<div className="flex gap-[6px]">
<Image src="/logo.png" alt="Work Root" width={56} height={32} className="w-14" />
<div className="hidden items-center text-3xl font-semibold text-lime-600 md:flex">WorkRoot</div>
</div>
{/* 메뉴 스켈레톤 - 실제 메뉴와 동일한 위치에 배치 */}
<div className={menuStyle}>
<div className={cn("h-6", skeletonStyle)} />
Expand All @@ -86,26 +81,21 @@ export default function Header() {
<nav className={navStyle}>
{/* 로고와 메인 네비게이션 */}
<div className="flex items-center">
<Link href="/" className="text-xl text-white hover:text-blue-100">
<Image
src="/logo.svg"
alt="WorkRoot"
width={200}
height={60}
className="w-32 hover:opacity-90 md:w-[200px]"
/>
<Link href="/" className="flex items-center gap-[6px] text-xl">
<Image src="/logo.png" alt="Work Root" width={56} height={32} className="w-14 hover:opacity-90" />
<div className="hidden items-center text-3xl font-semibold text-lime-600 md:flex">WorkRoot</div>
</Link>

<div className={menuStyle}>
<Link href="/alba-list" className={getLinkClassName("/alba-list")}>
알바 목록
워크 채널
</Link>
<Link href="/alba-talk" className={getLinkClassName("/alba-talk")}>
알바 토크
워크톡
</Link>
{user && (
<Link href="/my-albaform" className={getLinkClassName("/my-albaform")}>
알바폼
워크폼
</Link>
)}
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ const FormContinueModal = ({ isOpen, onClose, className }: FormContinueModalProp
className="hidden sm:block"
/>
</div>
<h2 className="mb-2 text-lg font-bold lg:text-xl">작성 중인 알바폼이 있어요!</h2>
<h2 className="mb-2 text-lg font-bold lg:text-xl">작성 중인 워크폼이 있어요!</h2>
<p className="text-grayscale-600 mb-6 text-sm lg:text-base">이어서 작성하시겠어요?</p>

<div className="mt-auto">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ const RecruitmentClosedModal = ({ formId, isOpen, onClose, className }: Recruitm
/>
</div>
<h2 className="mb-2 text-lg font-bold lg:text-xl">모집 마감</h2>
<p className="text-grayscale-600 mb-6 text-sm lg:text-base">모집이 종료된 알바폼입니다.</p>
<p className="text-grayscale-600 mb-6 text-sm lg:text-base">모집이 종료된 워크폼입니다.</p>

<div className="mt-auto">
<Link href={`/forms/${formId}`} className="block">
Expand Down
8 changes: 4 additions & 4 deletions src/app/components/modal/modals/confirm/DeleteFormModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ const DeleteFormModal = ({ id, isOpen, onClose, onConfirm, className }: ConfirmF
try {
setIsDeleting(true);
await axios.delete(`/api/forms/${id}`);
toast.success("알바폼이 삭제되었습니다.");
toast.success("워크폼이 삭제되었습니다.");
onConfirm?.();
onClose?.();
} catch (error) {
if (axios.isAxiosError(error)) {
const errormessage = error.response?.data?.message || "알바폼 삭제에 실패했습니다.";
const errormessage = error.response?.data?.message || "워크폼 삭제에 실패했습니다.";
toast.error(errormessage);
} else {
toast.error("알바폼 삭제 중 오류가 발생했습니다.");
toast.error("워크폼 삭제 중 오류가 발생했습니다.");
}
} finally {
setIsDeleting(false);
Expand Down Expand Up @@ -61,7 +61,7 @@ const DeleteFormModal = ({ id, isOpen, onClose, onConfirm, className }: ConfirmF
className="hidden sm:block"
/>
</div>
<h2 className="mb-2 text-lg font-bold lg:text-xl">알바폼을 삭제할까요?</h2>
<h2 className="mb-2 text-lg font-bold lg:text-xl">워크폼을 삭제할까요?</h2>
<p className="text-grayscale-600 mb-6 text-sm lg:text-base">삭제 후 정보를 복구할 수 없어요.</p>

<div className="mt-auto flex w-full flex-col items-center gap-3">
Expand Down
Loading
Loading