[TIL] 유저 테스트 받아보기

·2024년 1월 29일
0

TIL

목록 보기
80/85
post-thumbnail

오늘부터 유저 테스트를 받기 시작했다.
아직 부족한 부분이 많지만... 더 이상 미룰 수 없어서 올렸다.!

아직 메인 페이지 캐러셀에 들어갈 이미지는 완성되지 않은 상태.

우선 기존에 이미지가 있는 리뷰를 삭제할 경우, 테이블에서는 삭제가 되는데 스토리지에 있는 이미지 파일은 삭제가 되지 않는 문제가 있었다. 이 부분을 수정했었다.
(스토리지, 테이블 둘 다 삭제)

//리뷰 삭제
export const deleteReview = async ({
  reviewId,
  imagesUrl,
}: {
  reviewId: string;
  imagesUrl?: string[];
}) => {
  // 테이블 삭제
  const { error } = await supabase.from('reviews').delete().eq('id', reviewId);
  if (error) {
    throw error;
  }
  // 스토리지 (이미지) 삭제
  if (imagesUrl) {
    const fileNames = imagesUrl.map((url) =>
      url.substring(url.lastIndexOf('/') + 1),
    );
    fileNames.forEach(async (fileName) => {
      const { data, error } = await supabase.storage
        .from('review_images')
        .remove([`${fileName}`]);
      if (error) throw error;
    });
  }
};

그러나, 우리는 장소에 대한 이미지를 받아올 수가 없어서, 첫 리뷰어가 이미지 있는 사진을 등록할 경우, 그 사진을 장소 대표 이미지로 설정하고 있는데, 장소 대표이미지를 가지고 있는 리뷰를 삭제할 경우, 스토리지에 그 이미지가 삭제되어, 장소 대표이미지 url이 not found가 되어버리는 문제가 있었다. (이미지url이 유효하지 않아서 엑박이 뜸...)

그래서 다음과 같이 수정했다.

const reviewDelete = () => {
    Swal.fire({
      icon: 'warning',
      title: '정말 삭제하시겠습니까?',
      showCancelButton: true,
      confirmButtonText: '삭제',
      cancelButtonText: '취소',
      confirmButtonColor: '#7b4cff',
    }).then((result) => {
      if (result.isConfirmed) {
        if (review.images_url) {
          if (review.images_url.includes(review.places.image_url)) {
            // 이미지에 장소 대표 이미지가 포함된 경우
            deleteReview({
              reviewId: review.id,
            });
          } else {
            // 이미지가 있지만 장소대표이미지에 포함되지 않은 경우  또는 이미지가 없는 경우
            deleteReview({
              reviewId: review.id,
              imagesUrl: review.images_url as string[],
            });
          }
        }

        router.back();
        toastSuccess('삭제 완료');
      }
    });
  };

includes 메서드를 통해서 리뷰 이미지들 중에 장소 대표 이미지가 포함된 경우에는 imageUrl 값을 가져가지 않고 mutationFn 으로 가도록 수정했다.

개발하기 바쁘다 보니 TIL을 미루게 되는데, 개발도 중요하지만 그 날 어떤 오류를 해결했고, 어떤 기능을 개발했는지 기록으로 남기는 것이 중요하다는 생각이 든다. 다시 열심히 써보자.!!
피드백을 받기 시작하니까 고쳐야 할 부분도 많이 보이고.. 기능 개발에만 급급했는데, 어떤 서비스인지 유저에게 명확하게 전달 할 필요성도 느낀다. 그리고 몸이 불편하신 분이 주요 대상인데, 그런 분이 실제로 사용해보고 피드백을 주셔서 더 감동이었다. 🥹 쓸만한 웹사이트를 만들려면 갈 길이 멀다는 것을 새삼 느꼈고.... 내일 부터 다시 달려보자ㅠ!

profile
느리더라도 조금씩, 꾸준히

0개의 댓글