From 77aaff9a171cc7d8ccc8296c1bff55d5ec7e5583 Mon Sep 17 00:00:00 2001 From: mint723 Date: Wed, 17 Sep 2025 10:42:49 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20=EC=9E=91=EC=84=B1=EC=9E=90=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eslint.config.js | 2 +- src/Router.jsx | 2 +- src/api/authAPI.js | 2 +- src/api/chatApi.js | 2 +- src/api/client.js | 1 + src/api/commentAPI.js | 2 +- src/api/dashboardAPI.js | 2 +- src/api/meetingAPI.js | 2 +- src/api/memberAPI.js | 2 +- src/api/projectAPI.js | 4 +--- src/api/projectIssueAPI.js | 2 +- src/api/socketService.js | 2 +- src/components/calendar/Calendar.jsx | 2 +- src/components/calendar/CalendarFilters.jsx | 3 ++- src/components/calendar/EventDetails.jsx | 2 +- src/components/common/AISummaryPanel.jsx | 2 +- src/components/common/AudioPlayer.jsx | 2 +- src/components/common/BadgeComponent.jsx | 2 +- src/components/common/ConfirmDialog.jsx | 1 + src/components/common/DataTable.jsx | 2 +- src/components/common/Dropdown.jsx | 2 +- src/components/common/ErrorBoundary.jsx | 2 +- src/components/common/MeetingMetadata.jsx | 2 +- src/components/common/MultiSelectDropdown.jsx | 2 +- src/components/common/ParticipantList.jsx | 2 +- src/components/common/SearchableDropdown.jsx | 2 +- src/components/common/Toast.jsx | 2 +- src/components/common/chat/ChatHeader.jsx | 2 +- src/components/common/chat/ChatRoom.jsx | 2 +- src/components/common/chat/ChatRoomList.jsx | 2 +- src/components/common/chat/ContextMenu.jsx | 2 +- src/components/common/chat/EmployeeSearch.jsx | 2 +- src/components/common/chat/FloatingChat.jsx | 2 +- src/components/common/chat/FloatingChatButton.jsx | 2 +- src/components/common/loading/LoadingComponents.jsx | 2 +- src/components/common/loading/PrivateRoute.jsx | 2 +- src/components/common/loading/RoleProtectedRoute.jsx | 2 +- src/components/common/task/TaskActions.jsx | 2 +- src/components/common/task/TaskComments.jsx | 2 +- src/components/common/task/TaskDescription.jsx | 3 ++- src/components/common/task/TaskDetail.jsx | 2 +- src/components/common/task/TaskHeader.jsx | 2 +- src/components/common/task/TaskMetadata.jsx | 1 + src/components/common/task/TaskSchedule.jsx | 3 ++- src/components/dashboard/ErrorList.jsx | 2 +- src/components/dashboard/KPICard.jsx | 1 + src/components/dashboard/PriorityTasks.jsx | 2 +- src/components/dashboard/ProjectList.jsx | 2 +- src/components/dashboard/ProjectProgressChart.jsx | 2 +- src/components/dashboard/TeamProductivityTrend.jsx | 2 +- src/components/dashboard/WeeklySchedule.jsx | 2 +- src/components/ganttchart/GanttChart.jsx | 5 +---- src/components/ganttchart/ganttChart.config.js | 2 +- src/components/kanban/Kanban.jsx | 3 +-- src/components/kanban/KanbanCard.jsx | 2 +- src/components/kanban/KanbanColumn.jsx | 3 +-- src/components/kanban/KanbanHeader.jsx | 2 +- src/components/layout/Header.jsx | 2 +- src/components/layout/Layout.jsx | 2 +- src/components/layout/MainContent.jsx | 1 + src/components/layout/Sidebar.jsx | 2 +- src/components/meeting/EmailSendModal.jsx | 2 +- src/components/meeting/Meeting.jsx | 2 +- src/components/meeting/MeetingCreate.jsx | 2 +- src/components/meeting/MeetingDetail.jsx | 4 ++-- src/components/meeting/MeetingTable.jsx | 2 +- src/components/member/MemberHeader.jsx | 2 +- src/components/member/MemberManagement.jsx | 2 +- src/components/member/MemberModal.jsx | 2 +- src/components/member/MemberTable.jsx | 2 +- src/components/project/ProjectCard.jsx | 2 +- src/components/project/ProjectFilters.jsx | 2 +- src/components/project/ProjectHeader.jsx | 8 +++----- src/components/project/ProjectList.jsx | 5 +---- src/components/project/ProjectModal.jsx | 2 +- src/components/project/ProjectStats.jsx | 7 +------ src/components/project/ProjectTable.jsx | 2 +- src/components/setting/Settings.jsx | 1 + src/components/teammanage/TeamManagement.jsx | 9 ++------- src/contexts/AuthContext.jsx | 2 +- src/contexts/ToastContext.jsx | 2 +- src/data/chatRooms.js | 1 + src/data/dashboardProjects.js | 1 + src/data/dummyIssues.js | 1 + src/data/employees.js | 1 + src/data/ganttData.js | 1 + src/data/meetings.js | 1 + src/data/taskComments.js | 1 + src/hooks/chat/useChat.js | 2 +- src/hooks/chat/useChatRooms.js | 2 +- src/hooks/chat/useEmployees.js | 2 +- src/hooks/chat/useFloatingChat.js | 2 +- src/hooks/useAuth.jsx | 2 +- src/hooks/useCommentQueries.js | 5 +---- src/hooks/useDebounce.js | 2 +- src/hooks/useIssueQueries.js | 4 ++-- src/hooks/useMeetingQueries.js | 2 +- src/hooks/useMemberQueries.js | 2 +- src/hooks/useProjectQueries.js | 2 +- src/hooks/useToast.js | 2 +- src/index.css | 2 +- src/main.jsx | 2 +- src/pages/Dashboard.jsx | 2 +- src/pages/HumanResources.jsx | 2 +- src/pages/Login.jsx | 2 +- src/pages/ProjectDetail.jsx | 2 +- src/pages/ProjectManager.jsx | 5 ++--- src/pages/ShareCalendar.jsx | 2 +- src/store/chatStore.js | 2 +- src/store/meetingStore.js | 2 +- src/store/projectStore.js | 2 +- src/styles/login.css | 1 + 112 files changed, 121 insertions(+), 130 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index cee1e2c..9552a1e 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -3,7 +3,7 @@ import globals from 'globals' import reactHooks from 'eslint-plugin-react-hooks' import reactRefresh from 'eslint-plugin-react-refresh' import { defineConfig, globalIgnores } from 'eslint/config' - +/** 작성자: 김대호 */ export default defineConfig([ globalIgnores(['dist']), { diff --git a/src/Router.jsx b/src/Router.jsx index b747daa..3ed247e 100644 --- a/src/Router.jsx +++ b/src/Router.jsx @@ -8,7 +8,7 @@ import ShareCalendar from "./pages/ShareCalendar"; import HumanResources from "./pages/HumanResources"; import PrivateRoute from "./components/common/loading/PrivateRoute"; import RoleProtectedRoute from "./components/common/loading/RoleProtectedRoute"; - +/** 작성자: 김대호 */ const router = createBrowserRouter([ { path: "/login", diff --git a/src/api/authAPI.js b/src/api/authAPI.js index ec7789f..3f189dd 100644 --- a/src/api/authAPI.js +++ b/src/api/authAPI.js @@ -1,5 +1,5 @@ import api from './client'; - +/** 작성자: 김대호 */ // 로그인 export const login = async (accountId, password) => { try { diff --git a/src/api/chatApi.js b/src/api/chatApi.js index 642de59..5249c33 100644 --- a/src/api/chatApi.js +++ b/src/api/chatApi.js @@ -1,5 +1,5 @@ import api from './client'; - +/** 작성자: 조윤상 */ // 공통 API 호출 함수 const apiCall = (method, url, data = null, params = null) => { return api({ diff --git a/src/api/client.js b/src/api/client.js index 90806cc..e69e8ea 100644 --- a/src/api/client.js +++ b/src/api/client.js @@ -1,3 +1,4 @@ +/** 작성자: 김대호 */ // import axios from 'axios'; // // axios 인스턴스 생성 diff --git a/src/api/commentAPI.js b/src/api/commentAPI.js index 3bdcd68..dd3c222 100644 --- a/src/api/commentAPI.js +++ b/src/api/commentAPI.js @@ -1,5 +1,5 @@ import api from './client'; - +/** 작성자: 백승준 */ export const getComments = async (issueId) => { try { const response = await api.get(`/issues/${issueId}/comments`); diff --git a/src/api/dashboardAPI.js b/src/api/dashboardAPI.js index fdaca59..5928855 100644 --- a/src/api/dashboardAPI.js +++ b/src/api/dashboardAPI.js @@ -1,5 +1,5 @@ import api from './client.js'; - +/** 작성자: 김대호 */ /** * 대시보드 프로젝트 리스트를 가져오는 API 함수 * @returns {Promise} 프로젝트 데이터가 포함된 응답 객체 diff --git a/src/api/meetingAPI.js b/src/api/meetingAPI.js index ef0bd94..4b03ee9 100644 --- a/src/api/meetingAPI.js +++ b/src/api/meetingAPI.js @@ -1,5 +1,5 @@ import api from './client'; - +/** 작성자: 김대호, 배지원 */ // 회의록 생성 export const createMeeting = async (projectId, meetingData, audioFile = null) => { try { diff --git a/src/api/memberAPI.js b/src/api/memberAPI.js index 9e5a574..82fdbd2 100644 --- a/src/api/memberAPI.js +++ b/src/api/memberAPI.js @@ -1,5 +1,5 @@ import api from './client'; - +/** 작성자: 김대호 */ // 회원 목록 조회 export const getMembers = async () => { try { diff --git a/src/api/projectAPI.js b/src/api/projectAPI.js index a3703b6..f01aa2a 100644 --- a/src/api/projectAPI.js +++ b/src/api/projectAPI.js @@ -1,5 +1,5 @@ import api from './client'; - +/** 작성자: 백승준 */ export const getProjects = async (params = {}) => { try { const response = await api.get('/projects', { params }); @@ -69,7 +69,6 @@ export const deleteProject = async (projectId) => { export const createProjectMember = async (projectId, memberId) => { try { - // memberId를 JSON 객체로 감싸서 전송합니다. const response = await api.post(`/projects/${projectId}/members`, memberId); return response.data; } catch (error) { @@ -80,7 +79,6 @@ export const createProjectMember = async (projectId, memberId) => { export const deleteProjectMember = async (projectId, memberId) => { try { - // DELETE 요청 시 body는 { data: ... } 객체 안에 넣어주어야 합니다. const response = await api.delete(`/projects/${projectId}/members`, { data: { memberId } }); return response.data; } catch (error) { diff --git a/src/api/projectIssueAPI.js b/src/api/projectIssueAPI.js index 898d1f1..fcbdc97 100644 --- a/src/api/projectIssueAPI.js +++ b/src/api/projectIssueAPI.js @@ -1,5 +1,5 @@ import api from './client'; - +/** 작성자: 백승준 */ // 이슈 목록 조회 (필터링, 검색 지원) export const getProjectIssues = async (projectId, filters = {}) => { try { diff --git a/src/api/socketService.js b/src/api/socketService.js index 13abeb0..e8e56c1 100644 --- a/src/api/socketService.js +++ b/src/api/socketService.js @@ -1,6 +1,6 @@ import { Client } from '@stomp/stompjs'; import SockJS from 'sockjs-client'; - +/** 작성자: 김대호, 조윤상 */ let stompClient = null; let subscriptions = new Map(); diff --git a/src/components/calendar/Calendar.jsx b/src/components/calendar/Calendar.jsx index 345bd7e..750ed8b 100644 --- a/src/components/calendar/Calendar.jsx +++ b/src/components/calendar/Calendar.jsx @@ -2,7 +2,7 @@ import { useState, useCallback } from 'react' import { Calendar as BigCalendar, dayjsLocalizer } from 'react-big-calendar' import dayjs from 'dayjs' import 'react-big-calendar/lib/css/react-big-calendar.css' - +/** 작성자: 김대호 */ const localizer = dayjsLocalizer(dayjs) const Calendar = ({ events, onSelectEvent, onSelectSlot }) => { diff --git a/src/components/calendar/CalendarFilters.jsx b/src/components/calendar/CalendarFilters.jsx index 6254bcf..d506b8d 100644 --- a/src/components/calendar/CalendarFilters.jsx +++ b/src/components/calendar/CalendarFilters.jsx @@ -1,4 +1,5 @@ -const CalendarFilters = ({ +/** 작성자: 김대호 */ +const CalendarFilters = ({ filters, onFilterChange, sortBy, diff --git a/src/components/calendar/EventDetails.jsx b/src/components/calendar/EventDetails.jsx index 907bd9c..e318384 100644 --- a/src/components/calendar/EventDetails.jsx +++ b/src/components/calendar/EventDetails.jsx @@ -1,5 +1,5 @@ import dayjs from 'dayjs' - +/** 작성자: 김대호 */ const EventDetails = ({ selectedDate, events, onEventAction }) => { const formatDate = (date) => { return dayjs(date).format('YYYY.MM.DD') diff --git a/src/components/common/AISummaryPanel.jsx b/src/components/common/AISummaryPanel.jsx index 511c8d7..77532ad 100644 --- a/src/components/common/AISummaryPanel.jsx +++ b/src/components/common/AISummaryPanel.jsx @@ -1,5 +1,5 @@ import React from 'react'; - +/** 작성자: 김대호, 배지원 */ function AISummaryPanel({ summary, title = "AI 정리", diff --git a/src/components/common/AudioPlayer.jsx b/src/components/common/AudioPlayer.jsx index cabff85..a18233d 100644 --- a/src/components/common/AudioPlayer.jsx +++ b/src/components/common/AudioPlayer.jsx @@ -1,6 +1,6 @@ import React, { useState } from 'react'; import { PlayArrow, Pause } from '@mui/icons-material'; - +/** 작성자: 김대호 */ function AudioPlayer({ audioFile, title = "회의 녹음", createdAt }) { const [isPlaying, setIsPlaying] = useState(false); diff --git a/src/components/common/BadgeComponent.jsx b/src/components/common/BadgeComponent.jsx index 9ea597d..3b11c6c 100644 --- a/src/components/common/BadgeComponent.jsx +++ b/src/components/common/BadgeComponent.jsx @@ -1,5 +1,5 @@ import React from 'react'; - +/** 작성자: 김대호 */ function BadgeComponent({ type, customConfig = {} }) { const defaultTypeConfig = { "Daily Scrum": { diff --git a/src/components/common/ConfirmDialog.jsx b/src/components/common/ConfirmDialog.jsx index a6fe987..82d4cb1 100644 --- a/src/components/common/ConfirmDialog.jsx +++ b/src/components/common/ConfirmDialog.jsx @@ -1,3 +1,4 @@ +/** 작성자: 김대호 */ const ConfirmDialog = ({ isOpen, title, diff --git a/src/components/common/DataTable.jsx b/src/components/common/DataTable.jsx index cd945fe..eedb4be 100644 --- a/src/components/common/DataTable.jsx +++ b/src/components/common/DataTable.jsx @@ -10,7 +10,7 @@ import { ArrowDownward } from '@mui/icons-material' import { Skeleton } from '@mui/material' - +/** 작성자: 김대호 */ function DataTable({ data = [], columns = [], diff --git a/src/components/common/Dropdown.jsx b/src/components/common/Dropdown.jsx index 807c7a5..11dde26 100644 --- a/src/components/common/Dropdown.jsx +++ b/src/components/common/Dropdown.jsx @@ -1,6 +1,6 @@ import { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react'; import { ExpandMore } from '@mui/icons-material'; - +/** 작성자: 김대호 */ /** * 재사용 가능한 Dropdown 컴포넌트 * @param {Object} props diff --git a/src/components/common/ErrorBoundary.jsx b/src/components/common/ErrorBoundary.jsx index fc61bb6..1819ad9 100644 --- a/src/components/common/ErrorBoundary.jsx +++ b/src/components/common/ErrorBoundary.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { AlertTriangle, RefreshCw } from '@mui/icons-material'; - +/** 작성자: 김대호 */ class ErrorBoundary extends React.Component { constructor(props) { super(props); diff --git a/src/components/common/MeetingMetadata.jsx b/src/components/common/MeetingMetadata.jsx index 42062ef..e30d947 100644 --- a/src/components/common/MeetingMetadata.jsx +++ b/src/components/common/MeetingMetadata.jsx @@ -1,5 +1,5 @@ import React from 'react'; - +/** 작성자: 김대호 */ function MeetingMetadata({ data, className = "grid grid-cols-1 md:grid-cols-2 gap-4 text-sm" }) { return (
diff --git a/src/components/common/MultiSelectDropdown.jsx b/src/components/common/MultiSelectDropdown.jsx index f377b9a..b7016da 100644 --- a/src/components/common/MultiSelectDropdown.jsx +++ b/src/components/common/MultiSelectDropdown.jsx @@ -1,6 +1,6 @@ import { useState, useCallback, useRef, useEffect } from 'react'; import { ExpandMore, Close, Check } from '@mui/icons-material'; - +/** 작성자: 김대호 */ /** * 다중 선택이 가능한 Dropdown 컴포넌트 * @param {Object} props diff --git a/src/components/common/ParticipantList.jsx b/src/components/common/ParticipantList.jsx index 2f7bb35..1fb6dfb 100644 --- a/src/components/common/ParticipantList.jsx +++ b/src/components/common/ParticipantList.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { People } from '@mui/icons-material'; - +/** 작성자: 김대호 */ function ParticipantList({ participants = [], title = "참석자", gridCols = "grid-cols-2 md:grid-cols-3 lg:grid-cols-6" }) { return (
diff --git a/src/components/common/SearchableDropdown.jsx b/src/components/common/SearchableDropdown.jsx index bdaa4a0..3d9d8aa 100644 --- a/src/components/common/SearchableDropdown.jsx +++ b/src/components/common/SearchableDropdown.jsx @@ -1,6 +1,6 @@ import { useState, useCallback, useRef, useEffect } from 'react'; import { ExpandMore, Search, Close } from '@mui/icons-material'; - +/** 작성자: 김대호 */ /** * 검색 기능이 있는 Dropdown 컴포넌트 * @param {Object} props diff --git a/src/components/common/Toast.jsx b/src/components/common/Toast.jsx index 12b8326..b866a83 100644 --- a/src/components/common/Toast.jsx +++ b/src/components/common/Toast.jsx @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; import { CheckCircle, Error, Warning, Info, Close } from "@mui/icons-material"; - +/** 작성자: 김대호 */ const Toast = ({ message, type = "success", diff --git a/src/components/common/chat/ChatHeader.jsx b/src/components/common/chat/ChatHeader.jsx index dac7a4b..301c46e 100644 --- a/src/components/common/chat/ChatHeader.jsx +++ b/src/components/common/chat/ChatHeader.jsx @@ -1,6 +1,6 @@ import { Close, Minimize, ArrowBack } from '@mui/icons-material' import { useAuth } from '../../../hooks/useAuth' - +/** 작성자: 김대호 */ const ChatHeader = ({ currentView, selectedChat, diff --git a/src/components/common/chat/ChatRoom.jsx b/src/components/common/chat/ChatRoom.jsx index ae51476..6b02d3f 100644 --- a/src/components/common/chat/ChatRoom.jsx +++ b/src/components/common/chat/ChatRoom.jsx @@ -4,7 +4,7 @@ import useChatStore from '../../../store/chatStore'; import { sendInviteMessage } from '../../../api/socketService'; import { useDebounce } from '../../../hooks/useDebounce'; import * as chatApi from '../../../api/chatApi'; - +/** 작성자: 김대호, 조윤상 */ const ChatRoom = ({ selectedChat, message, diff --git a/src/components/common/chat/ChatRoomList.jsx b/src/components/common/chat/ChatRoomList.jsx index 79bbcc0..12b22de 100644 --- a/src/components/common/chat/ChatRoomList.jsx +++ b/src/components/common/chat/ChatRoomList.jsx @@ -1,5 +1,5 @@ import { Search, Add, Group } from '@mui/icons-material'; - +/** 작성자: 조윤상 */ const ChatRoomList = ({ searchTerm, onSearchChange, diff --git a/src/components/common/chat/ContextMenu.jsx b/src/components/common/chat/ContextMenu.jsx index ae6392f..e83ebe6 100644 --- a/src/components/common/chat/ContextMenu.jsx +++ b/src/components/common/chat/ContextMenu.jsx @@ -1,5 +1,5 @@ import React, { useEffect, useRef } from 'react'; - +/** 작성자: 조윤상 */ const ContextMenu = ({ x, y, visible, items, onClose }) => { const menuRef = useRef(null); diff --git a/src/components/common/chat/EmployeeSearch.jsx b/src/components/common/chat/EmployeeSearch.jsx index e3319b6..52cde11 100644 --- a/src/components/common/chat/EmployeeSearch.jsx +++ b/src/components/common/chat/EmployeeSearch.jsx @@ -1,5 +1,5 @@ import { Search } from '@mui/icons-material' - +/** 작성자: 김대호 */ const EmployeeSearch = ({ employeeSearchTerm, onSearchChange, diff --git a/src/components/common/chat/FloatingChat.jsx b/src/components/common/chat/FloatingChat.jsx index 204f7e1..733c0ad 100644 --- a/src/components/common/chat/FloatingChat.jsx +++ b/src/components/common/chat/FloatingChat.jsx @@ -9,7 +9,7 @@ import EmployeeSearch from './EmployeeSearch'; import ChatRoom from './ChatRoom'; import ContextMenu from './ContextMenu'; import { ExitToApp } from '@mui/icons-material'; - +/** 작성자: 조윤상 */ function FloatingChat() { const { user } = useAuth(); const { setCurrentUser } = useChatStore(); diff --git a/src/components/common/chat/FloatingChatButton.jsx b/src/components/common/chat/FloatingChatButton.jsx index 1425bcf..35ad185 100644 --- a/src/components/common/chat/FloatingChatButton.jsx +++ b/src/components/common/chat/FloatingChatButton.jsx @@ -1,5 +1,5 @@ import { Telegram } from '@mui/icons-material'; - +/** 작성자: 조윤상 */ const FloatingChatButton = ({ onClick, unreadCount }) => { return (
- {/* "작업 추가" 버튼의 onClick 이벤트를 활성화합니다. */}