Team-Spino / YoGo

make easy Time zone Plan
MIT License
11 stars 0 forks source link

[Issue] every week을 했을 경우, 두 개가 선택되는 경우 #148

Closed Yummy-sk closed 2 years ago

Yummy-sk commented 2 years ago

Summary

Simulator Screen Recording - iPhone 13 - 2022-05-24 at 21 39 35

조건문 처리가 잘못 되었음.

   if (formState.dayOfWeek === '[]') {

   ....

        if (result) {
          // 반복을 눌렀다면
          const curDateOfWeek = new Date(alartTime).toLocaleDateString(
            'en-US',
            {
              weekday: 'short',
            },
          );

          const { name } = dayOfWeek.filter(
            day => day.name === curDateOfWeek,
          )[0];

          formState = { ...formState, dayOfWeek: JSON.stringify([name]) };
        }
      }

      // 알람 배열이 비어있지 않을때
      if (formState.dayOfWeek !== '[]') {
        const selDayOfWeek = date.toLocaleDateString('en', {
          weekday: 'short',
        });

        const dayOfWeekList = JSON.parse(formState.dayOfWeek);
        // 선택된 요일을 포함하지 않을때, 추가한다.
        if (!dayOfWeekList.includes(selDayOfWeek)) {
          formState.dayOfWeek = JSON.stringify([
            ...dayOfWeekList,
            selDayOfWeek,
          ]);
        }
      }

위 조건문 처리가 잘못되었습니다.

반복 주기를 눌렀다면, 알람이 울릴 요일을 넣습니다.

그럼, 당연히 formState.dayOfWeek는 빈 배열이 아니게 될 것 입니다.

때문에, 2개가 들어간 것입니다.

   if (formState.dayOfWeek === '[]') {

   ...

   } else if (formState.dayOfWeek !== '[]') {
   ...
   }