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
4 changes: 4 additions & 0 deletions src/api/client/api-error.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,27 @@ class ApiError extends Error {
public errorCode: string;
public errorName: string;
public message: string;
public detail?: unknown;

public constructor({
statusCode,
errorCode,
errorName,
message,
detail,
}: {
statusCode: number;
errorCode: string;
errorName: string;
message: string;
detail?: unknown;
}) {
super(message);
this.statusCode = statusCode;
this.errorCode = errorCode;
this.errorName = errorName;
this.message = message;
this.detail = detail;
}
}

Expand Down
9 changes: 7 additions & 2 deletions src/api/openapi/models/mentor-settings-upsert-request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ export interface MentorSettingsUpsertRequest {
'jobGroupCode': string;
'jobTitleCode': string;
'careerCode': string;
'careerEntries'?: Array<{
'description': string;
'isCurrent'?: boolean;
'startMonth'?: string;
'endMonth'?: string;
}>;
'coreKeywordCodes': Array<string>;
'companyName': string;
'companyVisible': boolean;
Expand All @@ -36,11 +42,10 @@ export interface MentorSettingsUpsertRequest {
'schedule': MentorScheduleRequest;
'detailedDescription': string;
'interviewQuestions': Array<string>;
'preNotice': string;
'preNotice'?: string;
'anyMethodEnabled'?: boolean;
'scheduleValidWhenRealtimeEnabled'?: boolean;
'durationValid'?: boolean;
'interviewQuestionUnique'?: boolean;
'coreKeywordUnique'?: boolean;
}

7 changes: 7 additions & 0 deletions src/app/(admin)/admin/mentoring/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
import { notFound } from 'next/navigation';
import type { ReactNode } from 'react';
import MentoringAdminLayoutClient from '@/features/admin/mentoring/ui/mentoring-admin-layout-client';
import { isMentoringAdminMockEnabled } from '@/features/mentoring/model/mentoring-feature-flag';

export default function MentoringManagementLayout({
children,
}: {
children: ReactNode;
}) {
if (!isMentoringAdminMockEnabled()) {
// 관리자 멘토링 백오피스는 현재 제품 범위에 포함되지 않아 라우트 자체를 숨깁니다.
notFound();
}

return <MentoringAdminLayoutClient>{children}</MentoringAdminLayoutClient>;
}
7 changes: 7 additions & 0 deletions src/app/(service)/(my)/note-consultation/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
import { notFound } from 'next/navigation';
import { isMentoringNoteConsultationEnabled } from '@/features/mentoring/model/mentoring-feature-flag';
import NoteConsultationPageClient from '@/features/mentoring/ui/pages/note-consultation-page-client';

export default function NoteConsultationRoute() {
if (!isMentoringNoteConsultationEnabled()) {
// 쪽지상담함은 현재 제품 범위에 포함되지 않아 라우트 자체를 숨깁니다.
notFound();
}

return <NoteConsultationPageClient />;
}
57 changes: 54 additions & 3 deletions src/app/global.css
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,7 @@ https://velog.io/@oneook/tailwindcss-4.0-%EB%AC%B4%EC%97%87%EC%9D%B4-%EB%8B%AC%E
--spacing-125: 10px;
--spacing-150: 12px;
--spacing-160: 13px;
--spacing-175: 14px;
--spacing-200: 16px;
--spacing-225: 18px;
--spacing-250: 20px;
Expand Down Expand Up @@ -425,14 +426,34 @@ https://velog.io/@oneook/tailwindcss-4.0-%EB%AC%B4%EC%97%87%EC%9D%B4-%EB%8B%AC%E
height: 200px;
}

@utility h-650 {
height: 52px;
}

@utility w-140 {
width: 140px;
}

@utility w-320 {
width: 320px;
}

@utility w-360 {
width: 360px;
}

@utility w-650 {
width: 52px;
}

@utility min-h-280 {
min-height: 280px;
}

@utility min-h-260 {
min-height: 260px;
}

@utility w-100 {
width: 100px;
}
Expand All @@ -445,6 +466,14 @@ https://velog.io/@oneook/tailwindcss-4.0-%EB%AC%B4%EC%97%87%EC%9D%B4-%EB%8B%AC%E
height: 244px;
}

@utility max-w-page {
max-width: 1280px;
}

@utility max-w-130 {
max-width: 130px;
}

@utility max-w-study-content {
max-width: 1164px;
}
Expand All @@ -453,6 +482,30 @@ https://velog.io/@oneook/tailwindcss-4.0-%EB%AC%B4%EC%97%87%EC%9D%B4-%EB%8B%AC%E
max-height: 90vh;
}

@utility grid-cols-content-sidebar-360 {
grid-template-columns: minmax(0, 1fr) 360px;
}

@utility grid-cols-fluid-120 {
grid-template-columns: minmax(0, 1fr) 120px;
}

@utility top-panel-offset {
top: var(--panel-top-offset);
}

@utility right-panel-offset {
right: var(--panel-right-offset);
}

@utility h-panel-height {
height: var(--panel-height);
}

@utility translate-y-panel {
transform: translate3d(0, var(--panel-translate-y, 0px), 0);
}

@utility font-display-headings2 {
font-size: 64px;
font-weight: var(--font-weight-bold);
Expand Down Expand Up @@ -852,12 +905,10 @@ https://velog.io/@oneook/tailwindcss-4.0-%EB%AC%B4%EC%97%87%EC%9D%B4-%EB%8B%AC%E
0%,
100% {
background-color: transparent;
box-shadow: inset 3px 0 0 transparent;
}
20%,
80% {
background-color: var(--color-fill-brand-subtle-default);
box-shadow: inset 3px 0 0 var(--color-border-brand);
}
}

Expand Down Expand Up @@ -937,7 +988,7 @@ https://velog.io/@oneook/tailwindcss-4.0-%EB%AC%B4%EC%97%87%EC%9D%B4-%EB%8B%AC%E
.tiptap-editor .tiptap pre {
background-color: var(--color-background-alternative);
border-radius: 8px;
padding: 8px 10px;
padding: 32px 10px 8px;
margin-bottom: 12px;
overflow-x: auto;
}
Expand Down
3 changes: 3 additions & 0 deletions src/components/common/modals/study-completion-modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@ export default function StudyCompletionModal({
<Modal.Portal>
<Modal.Overlay />
<Modal.Content size="small" description="스터디 완주 축하">
<Modal.Title className="sr-only">
스터디 완주를 축하합니다!
</Modal.Title>
<Modal.Body className="flex flex-col items-center gap-200 py-500">
<span className="text-[64px] leading-none" aria-hidden="true">
🎉
Expand Down
1 change: 1 addition & 0 deletions src/components/common/ui/badge/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ const badgeVariants = cva(
color: {
default: 'text-text-subtlest',
primary: 'text-text-brand bg-fill-brand-subtle-default',
rose: 'bg-background-accent-rose-subtle text-background-accent-rose-strong',
green: 'bg-fill-success-subtle-default text-text-success',
red: 'bg-fill-danger-subtle-default text-text-error',
blue: 'bg-background-accent-blue-subtle text-text-information',
Expand Down
3 changes: 3 additions & 0 deletions src/components/common/ui/dropdown/single.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ interface Props {
value?: string;
onChange?: (value: string | undefined) => void;
placeholder?: string;
ariaLabel?: string;
error?: boolean;
disabled?: boolean;
className?: string;
Expand All @@ -28,6 +29,7 @@ function SingleDropdown({
value,
onChange,
placeholder,
ariaLabel,
error = false,
disabled = false,
className,
Expand Down Expand Up @@ -60,6 +62,7 @@ function SingleDropdown({
<DropdownMenuTrigger
type="button"
className="w-full focus:outline-none"
aria-label={ariaLabel}
aria-invalid={error || undefined}
aria-expanded={isOpen}
aria-haspopup="menu"
Expand Down
Loading
Loading