{"version":3,"file":"useFavorite-BJj4kxqh.js","sources":["../../../app/javascript/entrypoints/hooks/useFavorite.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nimport type {\n CreateFavoriteRequest,\n DeleteFavoriteRequest,\n GetFavoriteRequest,\n} from '../output/apis/FavoritesApi';\nimport type { Stock } from '../output/models';\n\nimport { config } from '../config';\nimport { FavoritesApi } from '../output/apis/FavoritesApi';\n\nimport { token } from '../utils';\n\ninterface Response {\n favorite: boolean;\n createFavorite: () => void;\n deleteFavorite: () => void;\n}\n\nexport const useFavorite = (stock: Stock | undefined, initialState: boolean): Response => {\n const [favorite, setFavorite] = useState(initialState);\n\n const createFavorite = () => {\n if (!stock) {\n return;\n }\n\n const req: CreateFavoriteRequest = { xCSRFToken: token(), stockId: String(stock.id) };\n\n new FavoritesApi(config).createFavorite(req).catch((e) => {\n setFavorite(false);\n console.log(e);\n });\n\n setFavorite(true);\n };\n\n const deleteFavorite = () => {\n if (!stock) {\n return;\n }\n\n const req: DeleteFavoriteRequest = { xCSRFToken: token(), stockId: String(stock.id) };\n\n new FavoritesApi(config).deleteFavorite(req).catch((e) => {\n setFavorite(true);\n console.log(e);\n });\n\n setFavorite(false);\n };\n\n useEffect(() => {\n if (!stock || initialState) {\n return;\n }\n\n const req: GetFavoriteRequest = { stockId: String(stock.id) };\n\n new FavoritesApi(config)\n .getFavorite(req)\n .then((res) => {\n if (res.favorite) {\n setFavorite(true);\n }\n })\n .catch((e) => {\n console.log(e);\n });\n }, [stock, initialState]);\n\n return { favorite, createFavorite, deleteFavorite };\n};\n"],"names":["useFavorite","stock","initialState","favorite","setFavorite","useState","createFavorite","req","token","FavoritesApi","config","e","deleteFavorite","useEffect","res"],"mappings":"snBAoBa,MAAAA,EAAc,CAACC,EAA0BC,IAAoC,CACxF,KAAM,CAACC,EAAUC,CAAW,EAAIC,WAAkBH,CAAY,EAExDI,EAAiB,IAAM,CAC3B,GAAI,CAACL,EACH,OAGI,MAAAM,EAA6B,CAAE,WAAYC,IAAS,QAAS,OAAOP,EAAM,EAAE,GAE9E,IAAAQ,EAAaC,CAAM,EAAE,eAAeH,CAAG,EAAE,MAAOI,GAAM,CACxDP,EAAY,EAAK,EACjB,QAAQ,IAAIO,CAAC,CAAA,CACd,EAEDP,EAAY,EAAI,CAAA,EAGZQ,EAAiB,IAAM,CAC3B,GAAI,CAACX,EACH,OAGI,MAAAM,EAA6B,CAAE,WAAYC,IAAS,QAAS,OAAOP,EAAM,EAAE,GAE9E,IAAAQ,EAAaC,CAAM,EAAE,eAAeH,CAAG,EAAE,MAAOI,GAAM,CACxDP,EAAY,EAAI,EAChB,QAAQ,IAAIO,CAAC,CAAA,CACd,EAEDP,EAAY,EAAK,CAAA,EAGnBS,OAAAA,EAAAA,UAAU,IAAM,CACV,GAAA,CAACZ,GAASC,EACZ,OAGF,MAAMK,EAA0B,CAAE,QAAS,OAAON,EAAM,EAAE,GAEtD,IAAAQ,EAAaC,CAAM,EACpB,YAAYH,CAAG,EACf,KAAMO,GAAQ,CACTA,EAAI,UACNV,EAAY,EAAI,CAClB,CACD,EACA,MAAOO,GAAM,CACZ,QAAQ,IAAIA,CAAC,CAAA,CACd,CAAA,EACF,CAACV,EAAOC,CAAY,CAAC,EAEjB,CAAE,SAAAC,EAAU,eAAAG,EAAgB,eAAAM,EACrC"}