useLike.js 556B

123456789101112131415161718192021
  1. import { useEffect, useState } from "react"
  2. import { saveLike, removeLike } from "@/services/home"
  3. export default function (initailState, targetType, targetId) {
  4. const [isLike, setIsLike] = useState(initailState)
  5. useEffect(() => {
  6. setIsLike(initailState)
  7. }, [initailState])
  8. const toggleLike = () => {
  9. if (isLike) {
  10. removeLike(targetType, targetId).then(() => {
  11. setIsLike(false)
  12. })
  13. } else {
  14. saveLike(targetType, targetId).then(() => {
  15. setIsLike(true)
  16. })
  17. }
  18. }
  19. return [isLike, toggleLike]
  20. }