@@ -3,7 +3,13 @@ import React, { useEffect, useState } from 'react'
33import styles from "./component.module.css"
44import LoadingSvg from "@/public/assets/ripple-1s-200px.svg"
55import LoadingsssSvg from "@/public/assets/bookmark-check-fill.svg"
6- import { getFirestore , doc , updateDoc , arrayUnion , arrayRemove , getDoc , FieldPath , setDoc , DocumentSnapshot , DocumentData } from 'firebase/firestore' ;
6+ import {
7+ getFirestore , doc ,
8+ updateDoc , arrayUnion ,
9+ arrayRemove , getDoc ,
10+ FieldPath , setDoc ,
11+ DocumentSnapshot , DocumentData
12+ } from 'firebase/firestore' ;
713import { initFirebase } from '@/app/firebaseApp'
814import { getAuth } from 'firebase/auth'
915import { ApiDefaultResult } from '@/app/ts/interfaces/apiAnilistDataInterface'
@@ -36,52 +42,28 @@ function AddToPlaylistButton({ data, customText }: { data: ApiDefaultResult, cus
3642
3743 setIsLoading ( true )
3844
39- if ( ! wasAddedToPlaylist ) {
40-
41- await updateDoc ( doc ( db , 'users' , user . uid ) ,
42- {
43- bookmarks : arrayUnion ( {
44- id : data . id ,
45- title : {
46- romaji : data . title . romaji
47- } ,
48- format : data . format ,
49- description : data . description ,
50- coverImage : {
51- extraLarge : data . coverImage . extraLarge ,
52- large : data . coverImage . large
53- }
54- } )
55- } as unknown as FieldPath ,
56- { merge : true }
57- )
45+ const bookmarkData = {
46+ id : data . id ,
47+ title : {
48+ romaji : data . title . romaji
49+ } ,
50+ format : data . format ,
51+ description : data . description ,
52+ coverImage : {
53+ extraLarge : data . coverImage . extraLarge ,
54+ large : data . coverImage . large
55+ }
56+ }
5857
59- setWasAddedToPlaylist ( true )
58+ await updateDoc ( doc ( db , 'users' , user . uid ) ,
59+ {
60+ bookmarks : ! wasAddedToPlaylist ? arrayUnion ( ...[ bookmarkData ] ) : arrayRemove ( ...[ bookmarkData ] )
6061
61- }
62- else {
63-
64- await updateDoc ( doc ( db , 'users' , user . uid ) ,
65- {
66- bookmarks : arrayRemove ( {
67- id : data . id ,
68- title : {
69- romaji : data . title . romaji
70- } ,
71- format : data . format ,
72- description : data . description ,
73- coverImage : {
74- extraLarge : data . coverImage . extraLarge ,
75- large : data . coverImage . large
76- }
77- } )
78- } as unknown as FieldPath ,
79- { merge : true }
80- )
81-
82- setWasAddedToPlaylist ( false )
62+ } as unknown as FieldPath ,
63+ { merge : true }
64+ )
8365
84- }
66+ ! wasAddedToPlaylist ? setWasAddedToPlaylist ( true ) : setWasAddedToPlaylist ( false )
8567
8668 setIsLoading ( false )
8769 }
0 commit comments