1- import { useState } from "react"
1+ import { useEffect , useState } from "react"
22
33import { sendToBackground } from "@plasmohq/messaging"
44
5+ import { UserFavourites , UserSession } from "~types/userTypes"
6+ import newStorage from "~utils/newStorage"
7+
58const ManageFavouritesButton = ( { popupId } ) => {
9+ const storage = newStorage ( )
610 const [ status , setStatus ] = useState <
711 "idle" | "loading" | "rejected"
812 > ( "idle" )
913 const [ isFavourite , setIsFavourite ] = useState < boolean > ( false )
1014
15+ useEffect ( ( ) => {
16+ const fetchFavourites = async ( ) => {
17+ const userSession : UserSession = await storage . get (
18+ "arebyte-audience-session"
19+ )
20+ const {
21+ data,
22+ error
23+ } : { data : UserFavourites ; error : string | null } =
24+ await sendToBackground ( {
25+ name : "fetchUserFavourites" ,
26+ body : {
27+ id : userSession . id ,
28+ jwt : userSession . jwt
29+ }
30+ } )
31+
32+ if ( error ) {
33+ console . error ( error )
34+ return setStatus ( "rejected" )
35+ }
36+ setIsFavourite ( data . favourites . some ( fav => fav . id === popupId ) )
37+ }
38+
39+ fetchFavourites ( )
40+ } , [ ] )
41+
1142 const clickHandler = async ( ) => {
1243 setStatus ( "loading" )
1344 const { error } = await sendToBackground ( {
@@ -21,7 +52,7 @@ const ManageFavouritesButton = ({ popupId }) => {
2152
2253 if ( error ) {
2354 console . error ( error )
24- setStatus ( "rejected" )
55+ return setStatus ( "rejected" )
2556 }
2657
2758 setIsFavourite ( ! isFavourite )
0 commit comments