@@ -2,19 +2,21 @@ import React, { useEffect, useState } from "react";
2
2
import DatePicker from "react-datepicker" ;
3
3
import "react-datepicker/dist/react-datepicker.css" ;
4
4
import { useDispatch , useSelector } from "react-redux" ;
5
- import { useLocation , useNavigate } from "react-router-dom" ;
5
+ import { useLocation } from "react-router-dom" ;
6
6
import { scheduleReset , __postSchedule , __editSchedule , __getScheduleDetail } from "../../redux/modules/ScheduleSlice" ;
7
7
import FollowingModal from "../modal/FollowingModal" ;
8
8
import ScheduleAddModal from "../modal/ScheduleAddModal" ;
9
9
import ScheduleModal from "../modal/ScheduleModal" ;
10
+ import useCardColorSelector from "../../customHook/useCardColorSelector" ;
10
11
11
12
// state.type:"add" 은 스케줄 추가, state.type:edit은 수정
12
13
const ScheduleAdd = ( ) => {
13
14
const dispatch = useDispatch ( ) ;
14
- const navigate = useNavigate ( ) ;
15
+
15
16
//스케줄 추가, 수정 분기를 결정할 state 값을 받아옴
16
17
const { state } = useLocation ( ) ;
17
18
19
+ const { border, colorSelected, eventHandler } = useCardColorSelector ( ) ;
18
20
useEffect ( ( ) => {
19
21
if ( state . type === "edit" ) {
20
22
dispatch ( __getScheduleDetail ( state . id ) ) ;
@@ -36,51 +38,16 @@ const ScheduleAdd = () => {
36
38
state . type === "edit" ? new Date ( oldSchedule . date + "T" + oldSchedule . time ) : ""
37
39
) ;
38
40
39
- const [ selectedColor , setColorSelected ] = useState ( state . type === "edit" ? oldSchedule . cardColor : "sora" ) ;
40
-
41
41
//제목
42
42
const [ subject , setSubject ] = useState ( state . type === "edit" ? oldSchedule . subject : "" ) ;
43
43
44
44
//내용
45
45
const [ content , setContent ] = useState ( state . type === "edit" ? oldSchedule . content : "" ) ;
46
46
47
- const [ borderSora , setBorderSora ] = useState (
48
- state . type !== "edit"
49
- ? "border-blackBorder"
50
- : oldSchedule . cardColor === "sora"
51
- ? "border-blackBorder"
52
- : "border-none"
53
- ) ;
54
- const [ borderPink , setBorderPink ] = useState (
55
- state . type !== "edit" ? "border-none" : oldSchedule . cardColor === "pink" ? "border-blackBorder" : "border-none"
56
- ) ;
57
- const [ borderGreen , setBorderGreen ] = useState (
58
- state . type !== "edit" ? "border-none" : oldSchedule . cardColor === "green" ? "border-blackBorder" : "border-none"
59
- ) ;
60
-
61
47
//완료모달&경고모달
62
48
const [ modalOpen , setModalOpen ] = useState ( false ) ;
63
49
const [ completeModal , setCompleteModal ] = useState ( false ) ;
64
50
65
- //색상지정시 카드의 백그라운드컬러가 바뀌면서 selectedColor에 값이 입혀진다.
66
- const eventHandlerSora = ( ) => {
67
- setColorSelected ( "sora" ) ;
68
- setBorderSora ( "border-blackBorder" ) ;
69
- setBorderPink ( "border-none" ) ;
70
- setBorderGreen ( "border-none" ) ;
71
- } ;
72
- const eventHandlerPink = ( ) => {
73
- setColorSelected ( "pink" ) ;
74
- setBorderSora ( "border-none" ) ;
75
- setBorderPink ( "border-blackBorder" ) ;
76
- setBorderGreen ( "border-none" ) ;
77
- } ;
78
- const eventHandlerGreen = ( ) => {
79
- setColorSelected ( "green" ) ;
80
- setBorderSora ( "border-none" ) ;
81
- setBorderPink ( "border-none" ) ;
82
- setBorderGreen ( "border-blackBorder" ) ;
83
- } ;
84
51
//일정의 제목과 내용, 참여자 onChangeHandler
85
52
const onSubjectChangeHandler = ( e ) => {
86
53
setSubject ( e . target . value ) ;
@@ -105,7 +72,7 @@ const ScheduleAdd = () => {
105
72
106
73
if ( subject . length > 0 && [ selectedDate ] . toString ( ) . length > 0 ) {
107
74
const newSchedule = {
108
- cardColor : selectedColor ,
75
+ cardColor : colorSelected ,
109
76
date : date ,
110
77
time : time ,
111
78
subject : subject ,
@@ -152,20 +119,20 @@ const ScheduleAdd = () => {
152
119
카드 테마 색상
153
120
< div className = "flex flex-row mt-4 " >
154
121
< div
155
- className = { `${ borderSora } border-solid border-[4px] cursor-pointer rounded-[4px] w-[42px] h-[42px] bg-sora` }
156
- onClick = { eventHandlerSora }
122
+ className = { `${ border . sora } border-solid border-[4px] cursor-pointer rounded-[4px] w-[42px] h-[42px] bg-sora` }
123
+ onClick = { ( ) => eventHandler ( "sora" ) }
157
124
>
158
125
{ "" }
159
126
</ div >
160
127
< div
161
- className = { `${ borderPink } border-solid border-[4px] cursor-pointer rounded-[4px] ml-[17px] w-[42px] h-[42px] bg-pink` }
162
- onClick = { eventHandlerPink }
128
+ className = { `${ border . pink } border-solid border-[4px] cursor-pointer rounded-[4px] ml-[17px] w-[42px] h-[42px] bg-pink` }
129
+ onClick = { ( ) => eventHandler ( "pink" ) }
163
130
>
164
131
{ "" }
165
132
</ div >
166
133
< div
167
- className = { `${ borderGreen } border-solid border-[4px] cursor-pointer rounded-[4px] ml-[17px] w-[42px] h-[42px] bg-green` }
168
- onClick = { eventHandlerGreen }
134
+ className = { `${ border . green } border-solid border-[4px] cursor-pointer rounded-[4px] ml-[17px] w-[42px] h-[42px] bg-green` }
135
+ onClick = { ( ) => eventHandler ( "green" ) }
169
136
>
170
137
{ "" }
171
138
</ div >
0 commit comments