Skip to content
Snippets Groups Projects
Select Git revision
  • 24c8f74cda75b3df58a6843f6061d1ab76bef19e
  • main default protected
  • gaeon
3 results

recruitDetail.js

Blame
  • recruitDetail.js 8.19 KiB
    import React, { useState, useContext } from "react";
    import recruitDetailStyles from './recruitDetail.module.css';
    import Comment from './comment';
    import MyScheduleApp from '../calendar/calendar';
    import { AuthContext } from '../../App';
    import ModifyRecruit from "./modifyRecruit";
    import DeleteRecruit from "./deleteRecruit";
    import StateRecruit from "./stateRecruit";
    
    const RecruitDetail = ({ isOpen, onClose, data }) => {
      const [isCalendarVisible, setIsCalendarVisible] = useState(false);
      const [isModifyOpen, setIsModifyOpen] = useState(false);
      const [isDeleteOpen, setIsDeleteOpen] = useState(false);
      const [isStateOpen, setIsStateOpen] = useState(false);
      const { userData } = useContext(AuthContext);
    
      let state = '';
    
      if(data.state === 'Recruiting'){
        state = '모집중';
      } else if(data.state === 'Closed'){
        state = '모집완료';
      } else if(data.state === 'Completed'){
        state = '활동종료';
      }
    
      const handleModifyOpen = (e) => {
        e.stopPropagation();
        setIsModifyOpen(true);
      }
    
      const handleDeleteOpen = (e) => {
        e.stopPropagation();
        setIsDeleteOpen(true);
      }
    
      const handleStateOpen = (e) => {
        e.stopPropagation();
        setIsStateOpen(true);
      }
    
      const handleModifyClose = () => {
        setIsModifyOpen(false);
      }
    
      const handleDeleteClose = () => {
        setIsDeleteOpen(false);
      }
    
      const handleStateClose = () => {
        setIsStateOpen(false);
      }
    
      const handleClick = () => {
        setIsCalendarVisible(!isCalendarVisible); // 클릭할 때마다 가시성을 토글
      };
    
      const applyInfo = async ()=>{
        try{
          const response = await fetch(`/api/recruits/${data.id}`,{
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
          });
    
          if (response.ok){
            alert('신청되었습니다.');
            window.location.reload();
          }else{