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 이벤트를 활성화합니다. */}