Conversation
✅ Deploy Preview for onmeeteven ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for roaring-trifle-75aa77 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
onmeet-frontend | 91d47f6 | Mar 28 2026, 04:40 AM |
There was a problem hiding this comment.
Code Review
This pull request introduces a comprehensive design token system in global.css, replacing various inline Tailwind styles with reusable classes like om-card and om-input across the dashboard and meeting components. It also standardizes date and time formatting to the Asia/Seoul timezone and updates the employee retrieval API endpoint. Feedback includes addressing redundant CSS variable definitions and shadow applications in the global stylesheet, using CSS variables for background colors instead of hardcoded hex values, and renaming a function to better reflect its updated API endpoint. Additionally, it is recommended to ensure all date formatting functions consistently handle timezones to avoid discrepancies for users in different regions.
| export function formatMeetingDate(date: Date): string { | ||
| // format은 로컬 시간 기준이므로, Date 객체가 이미 올바르면 OK | ||
| return format(date, "yyyy년 MMM dd일 (eee)", { locale: ko }); | ||
| } |
| .light { | ||
| --background: 270 30% 98%; | ||
| --foreground: 270 30% 15%; | ||
| --background: 270 20% 96%; | ||
| --foreground: 270 40% 12%; | ||
|
|
||
| --card: 0 0% 100%; | ||
| --card-foreground: 270 30% 15%; | ||
| --card-foreground: 270 40% 12%; | ||
|
|
||
| --popover: 0 0% 100%; | ||
| --popover-foreground: 270 30% 15%; | ||
| --popover-foreground: 270 40% 12%; | ||
|
|
||
| --primary: 270 84% 56%; | ||
| --primary-foreground: 0 0% 100%; | ||
|
|
||
| --secondary: 270 30% 92%; | ||
| --secondary-foreground: 270 84% 56%; | ||
| --secondary: 270 25% 90%; | ||
| --secondary-foreground: 270 84% 50%; | ||
|
|
||
| --muted: 270 15% 75%; | ||
| --muted-foreground: 270 20% 40%; | ||
| --muted: 270 15% 70%; | ||
| --muted-foreground: 270 25% 35%; | ||
|
|
||
| --accent: 270 84% 56%; | ||
| --accent-foreground: 0 0% 100%; | ||
|
|
||
| --destructive: 0 84% 60%; | ||
| --destructive: 0 84% 55%; | ||
| --destructive-foreground: 0 0% 100%; | ||
|
|
||
| --border: 270 30% 90%; | ||
| --input: 270 20% 96%; | ||
| --border: 270 30% 85%; | ||
| --input: 270 20% 92%; | ||
| --ring: 270 84% 56%; | ||
|
|
||
| --sidebar-background: 270 30% 98%; | ||
| --sidebar-foreground: 270 30% 15%; | ||
| --sidebar-background: 0 0% 100%; | ||
| --sidebar-foreground: 270 40% 12%; | ||
| --sidebar-primary: 270 84% 56%; | ||
| --sidebar-primary-foreground: 0 0% 100%; | ||
| --sidebar-accent: 270 30% 94%; | ||
| --sidebar-accent-foreground: 270 84% 50%; | ||
| --sidebar-border: 270 30% 90%; | ||
| --sidebar-accent: 270 30% 92%; | ||
| --sidebar-accent-foreground: 270 84% 45%; | ||
| --sidebar-border: 270 25% 88%; | ||
| --sidebar-ring: 270 84% 56%; | ||
| } |
| body.dark { | ||
| background: linear-gradient(145deg, hsl(270, 30%, 6%) 0%, hsl(280, 20%, 4%) 40%, hsl(300, 15%, 8%) 100%); | ||
| background-attachment: fixed; | ||
| background: #0a0612; | ||
| } | ||
|
|
||
| body.light { | ||
| background: linear-gradient(145deg, hsl(270, 40%, 97%) 0%, hsl(0, 0%, 100%) 40%, hsl(330, 30%, 97%) 100%); | ||
| background-attachment: fixed; | ||
| background: #f5f3f7; | ||
| } |
There was a problem hiding this comment.
body.dark와 body.light의 배경색으로 하드코딩된 hex 값이 사용되고 있습니다. 일관성을 유지하고 향후 테마 업데이트를 용이하게 하려면 --background CSS 변수를 사용하는 것이 좋습니다. 예를 들어, background: hsl(var(--background));와 같이 사용할 수 있습니다. 만약 현재 하드코딩된 색상이 의도된 것이라면, 해당 색상 값을 CSS 변수 자체에 정의하는 것을 고려해 보세요.
| body.dark { | |
| background: linear-gradient(145deg, hsl(270, 30%, 6%) 0%, hsl(280, 20%, 4%) 40%, hsl(300, 15%, 8%) 100%); | |
| background-attachment: fixed; | |
| background: #0a0612; | |
| } | |
| body.light { | |
| background: linear-gradient(145deg, hsl(270, 40%, 97%) 0%, hsl(0, 0%, 100%) 40%, hsl(330, 30%, 97%) 100%); | |
| background-attachment: fixed; | |
| background: #f5f3f7; | |
| } | |
| body.dark { | |
| background: hsl(var(--background)); | |
| } | |
| body.light { | |
| background: hsl(var(--background)); | |
| } |
| @apply bg-white border border-purple-200/60 hover:border-purple-300 | ||
| shadow-md hover:shadow-lg; |
There was a problem hiding this comment.
| @apply bg-white border border-purple-200/60 | ||
| shadow-md; |
| export function getAllEmployees( | ||
| pageable: Pageable, | ||
| ): Promise<PageResponse<UserResponseDto>> { | ||
| return authFetch(`/v1/manager/employees${pageQs(pageable)}`); | ||
| return authFetch(`/v1/members/invitable${pageQs(pageable)}`); | ||
| } |
…네임 (API 경로 /v1/members/invitable과 일치)
No description provided.