더북(TheBook)

components/PostCard.js - usePostActions

const {isSelecting, onPressMore, onClose, actions} = usePostActions({
  id,
  description,
});

그다음에는 이 값들을 받아와서 포스트를 삭제하겠습니다.

hooks/usePostActions.js

(...)
import {removePost} from '../lib/posts';
import {useNavigation, useRoute} from '@react-navigation/native';

export default function usePostActions({id, description}) {
(...)
const navigation = useNavigation();
const route = useRoute();

  const edit = () => {
    console.log('TODO: edit');
  };
  const remove = async () => {
    await removePost(id);

    // 현재 단일 포스트 조회 화면이라면 뒤로가기
    if (route.name === 'Post') {
      navigation.pop();
    }

    // TODO: 홈 및 프로필 화면의 목록 업데이트
  };

  (...)

이렇게 함수를 수정해주면 액션 시트로 게시물 삭제를 눌렀을 때 포스트가 삭제될 것입니다. 다만 삭제된 것이 화면에 바로 반영되지 않고 앱을 리로딩해야 반영될 텐데요. 삭제 후 바로 반영하는 작업은 나중에 구현하겠습니다. 참고로 지금은 삭제 후 스크롤해 새로고침할 때 오류가 발생하는데 이 부분은 나중에 수정되니 무시해도 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.