diff --git a/jobdri/src/app/page.tsx b/jobdri/src/app/page.tsx index 469f041..2f474d9 100644 --- a/jobdri/src/app/page.tsx +++ b/jobdri/src/app/page.tsx @@ -228,6 +228,7 @@ export default function Home() {
+
diff --git a/jobdri/src/assets/ic_Close_S.svg b/jobdri/src/assets/ic_Close_S.svg new file mode 100644 index 0000000..5f03cb4 --- /dev/null +++ b/jobdri/src/assets/ic_Close_S.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jobdri/src/assets/ic_Email.svg b/jobdri/src/assets/ic_Email.svg new file mode 100644 index 0000000..576c452 --- /dev/null +++ b/jobdri/src/assets/ic_Email.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jobdri/src/assets/ic_LOGO_minimum.svg b/jobdri/src/assets/ic_LOGO_minimum.svg new file mode 100644 index 0000000..d348970 --- /dev/null +++ b/jobdri/src/assets/ic_LOGO_minimum.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/jobdri/src/assets/ic_LOGO_minimum_favi.svg b/jobdri/src/assets/ic_LOGO_minimum_favi.svg new file mode 100644 index 0000000..290693b --- /dev/null +++ b/jobdri/src/assets/ic_LOGO_minimum_favi.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/jobdri/src/components/common/buttons/IconButton.tsx b/jobdri/src/components/common/buttons/IconButton.tsx index 0a0f71e..50de123 100644 --- a/jobdri/src/components/common/buttons/IconButton.tsx +++ b/jobdri/src/components/common/buttons/IconButton.tsx @@ -7,6 +7,7 @@ type IconButtonDirection = "left" | "right"; interface IconButtonProps extends ButtonHTMLAttributes { direction: IconButtonDirection; active?: boolean; + size?: "default" | "small"; } const directionIconType: Record = { @@ -18,6 +19,7 @@ export default function IconButton({ direction, active = false, className, + size = "default", type = "button", ...buttonProps }: IconButtonProps) { @@ -26,10 +28,11 @@ export default function IconButton({ type={type} aria-label={direction === "left" ? "이전" : "다음"} className={clsx( - "flex h-12 w-12 items-center justify-center gap-2.5 rounded-icon-round bg-bg-white p-2.5", + "flex items-center justify-center gap-2.5 rounded-icon-round bg-bg-white p-2.5", buttonProps.disabled ? "cursor-not-allowed" : "cursor-pointer", active ? "text-icon-neutral-heavy" : "text-icon-neutral-assistive", className, + size === "small" ? "h-6 w-6" : "h-10 w-10", )} {...buttonProps} > diff --git a/jobdri/src/components/common/buttons/IconOnlyButton.tsx b/jobdri/src/components/common/buttons/IconOnlyButton.tsx index f340fab..6eff7be 100644 --- a/jobdri/src/components/common/buttons/IconOnlyButton.tsx +++ b/jobdri/src/components/common/buttons/IconOnlyButton.tsx @@ -7,6 +7,7 @@ type IconOnlyButtonTone = "light" | "dark"; interface IconOnlyButtonProps extends ButtonHTMLAttributes { iconType?: IconType; tone?: IconOnlyButtonTone; + size?: "default" | "small"; } const toneStyles: Record = { @@ -20,8 +21,10 @@ export default function IconOnlyButton({ tone = "light", className, type = "button", + size = "default", ...buttonProps }: IconOnlyButtonProps) { + const closeIconType = size === "small" ? "CLOSE_S" : "CLOSE_M"; return ( ); } diff --git a/jobdri/src/components/common/footer/BusinessFooter.tsx b/jobdri/src/components/common/footer/BusinessFooter.tsx index 9be40b1..9a9a729 100644 --- a/jobdri/src/components/common/footer/BusinessFooter.tsx +++ b/jobdri/src/components/common/footer/BusinessFooter.tsx @@ -1,5 +1,6 @@ import type { HTMLAttributes } from "react"; import clsx from "clsx"; +import Logo from "@/assets/ic_LOGO_minimum.svg"; export default function BusinessFooter({ className, @@ -10,12 +11,10 @@ export default function BusinessFooter({ className={clsx("flex self-stretch flex-col", className)} {...footerProps} > -
+
- - JobDri - +
@@ -53,9 +52,9 @@ export default function BusinessFooter({

- 본 웹사이트에 명시된 모든 기업의 로고 및 상표에 대한 권리는 각 해당 - 상표권자에게 귀속됩니다. 해당 로고는 합격자 취업 현황 등 단순 정보 - 제공의 목적으로만 사용되며, 상표권 침해 의도는 없습니다. + 본 웹사이트에 명시된 모든 기업의 로고 및 상표에 대한 권리는 각 + 해당 상표권자에게 귀속됩니다. 해당 로고는 합격자 취업 현황 등 단순 + 정보 제공의 목적으로만 사용되며, 상표권 침해 의도는 없습니다.

diff --git a/jobdri/src/components/common/footer/Footer.tsx b/jobdri/src/components/common/footer/Footer.tsx index ee23461..9d6fc07 100644 --- a/jobdri/src/components/common/footer/Footer.tsx +++ b/jobdri/src/components/common/footer/Footer.tsx @@ -60,7 +60,7 @@ export default function Footer({ return (
diff --git a/jobdri/src/components/common/header/Header.tsx b/jobdri/src/components/common/header/Header.tsx index 05d6949..b76a194 100644 --- a/jobdri/src/components/common/header/Header.tsx +++ b/jobdri/src/components/common/header/Header.tsx @@ -46,7 +46,7 @@ function HeaderAction({ return (
); } diff --git a/jobdri/src/components/common/input/InputMain.tsx b/jobdri/src/components/common/input/InputMain.tsx index 024952b..ddc3bbd 100644 --- a/jobdri/src/components/common/input/InputMain.tsx +++ b/jobdri/src/components/common/input/InputMain.tsx @@ -20,7 +20,7 @@ interface InputMainProps { error?: string; rightContent?: React.ReactNode; className?: string; - type?: "ID" | "PASSWORD"; + type?: "ID" | "PASSWORD" | "EMAIL"; } export function InputMain({ @@ -44,7 +44,13 @@ export function InputMain({ const [focused, setFocused] = useState(false); const value = externalValue ?? internalValue; - const iconType = type === "PASSWORD" ? "PASSWORD" : "PROFILE"; + + const iconMap = { + ID: "PROFILE", + PASSWORD: "PASSWORD", + EMAIL: "EMAIL", + } as const; + const resolvedInputType = inputType ?? (type === "PASSWORD" ? "password" : "text"); const isError = hasError || !!error; @@ -67,7 +73,7 @@ export function InputMain({
{!focused && !value && ( )} diff --git a/jobdri/src/components/common/lnb/Lnb.tsx b/jobdri/src/components/common/lnb/Lnb.tsx index f5eccb0..9041ed7 100644 --- a/jobdri/src/components/common/lnb/Lnb.tsx +++ b/jobdri/src/components/common/lnb/Lnb.tsx @@ -6,6 +6,7 @@ import { createPortal } from "react-dom"; import Icon, { type IconType } from "@/components/common/icons/Icon"; import { ModalNotice } from "@/components/common/modal"; import { AUTH_STORAGE_KEYS, getStoredAuthEmail } from "@/lib/auth"; +import Logo from "@/assets/ic_LOGO_minimum.svg"; type LnbItemKey = "experience" | "apply"; @@ -33,7 +34,7 @@ const navItems: LnbNavItem[] = [ ]; const navItemBaseClassName = - "flex h-9 items-center gap-2 rounded-cta-l p-3 text-sub14-med"; + "flex h-9 items-center gap-2 rounded-cta-l py-3 px-2 text-sub14-med"; const defaultEmail = "jobdri@gmail.com"; @@ -97,32 +98,24 @@ export default function Lnb({ return ( <> diff --git a/jobdri/src/components/common/toast/Toast.tsx b/jobdri/src/components/common/toast/Toast.tsx index 31dadb6..b930914 100644 --- a/jobdri/src/components/common/toast/Toast.tsx +++ b/jobdri/src/components/common/toast/Toast.tsx @@ -24,7 +24,7 @@ export default function Toast({
) => { + const handleVerificationSubmit = async ( + event: FormEvent, + ) => { event.preventDefault(); if (isVerificationSubmitting || !isVerificationReady) { @@ -432,204 +433,206 @@ export default function EmailLoginScreen() { ) : ( <>
-

- JobDri -

- -
-

- 인사담당자가 보는 내 자소서는 몇점? -

-

- 내 경험을 살린 합격 자소서를 완성해보세요 -

-
-
- - {authMode === "login" ? ( - <> -
-
-
- - handleInputChange(value, setEmail) - } - /> - + JobDri + + +
+

+ 인사담당자가 보는 내 자소서는 몇점? +

+

+ 내 경험을 살린 합격 자소서를 완성해보세요 +

+
+ + + {authMode === "login" ? ( + <> +
+
+
+ + handleInputChange(value, setEmail) + } + /> + +
+ +
+ + + +
-
- - - -
- -
- - handleModeChange("signup")} - /> -
- - ) : ( - <> -
-
-
- - handleInputChange(value, setName) - } - /> - - handleInputChange(value, setEmail) - } +
+ - handleModeChange("signup")} /> - + + ) : ( + <> +
+
+
+ + handleInputChange(value, setName) + } + /> + + handleInputChange(value, setEmail) + } + /> + + +
+ +
+ + + +
-
- - - -
- -
- - 이미 계정이 있으신가요? - - handleModeChange("login")} - /> -
- - )} +
+ + 이미 계정이 있으신가요? + + handleModeChange("login")} + /> +
+ + )} - {authMode === "login" && showCreditTooltip && ( -
- -
- )} + {authMode === "login" && showCreditTooltip && ( +
+ +
+ )} )} @@ -655,10 +658,7 @@ interface EmailVerificationContentProps { index: number, event: KeyboardEvent, ) => void; - onCodePaste: ( - index: number, - event: ClipboardEvent, - ) => void; + onCodePaste: (index: number, event: ClipboardEvent) => void; onResend: () => void; } diff --git a/jobdri/src/lib/api/questions.ts b/jobdri/src/lib/api/questions.ts index 6e3a9ad..469c84a 100644 --- a/jobdri/src/lib/api/questions.ts +++ b/jobdri/src/lib/api/questions.ts @@ -37,15 +37,6 @@ export interface AnswerItem { answer: string; } -function getAuthHeaders(): Record { - const token = - typeof window !== "undefined" - ? window.localStorage.getItem(AUTH_STORAGE_KEYS.accessToken) - : null; - - return token ? { Authorization: `Bearer ${token}` } : {}; -} - async function parseApiResponse( response: Response, fallbackMessage: string,