{"version":3,"sources":["../../src/avatar/useAvatar.props.ts","../../src/avatar/useAvatar.ts"],"sourcesContent":["import type { useAvatarProps } from '@primereact/types/shared/avatar';\n\nexport const defaultProps: useAvatarProps = {\n    delayDuration: 0\n};\n","import { withHeadless } from '@primereact/core/headless';\nimport * as React from 'react';\nimport { defaultProps } from './useAvatar.props';\n\nexport const useAvatar = withHeadless({\n    name: 'useAvatar',\n    defaultProps,\n    setup({ props }) {\n        const [loadState, setLoadState] = React.useState<boolean>(false);\n        const imageRef = React.useRef<HTMLImageElement | null>(null);\n\n        const state = {\n            load: loadState\n        };\n\n        // methods\n        const onImageLoad = React.useCallback(() => {\n            setTimeout(() => {\n                setLoadState(true);\n            }, props.delayDuration ?? 0);\n        }, [props.delayDuration]);\n\n        const onImageError = React.useCallback(() => {\n            setLoadState(false);\n        }, []);\n\n        const handleImageLoad = React.useCallback(\n            (src?: string) => {\n                if (!src) {\n                    setLoadState(false);\n\n                    return;\n                }\n\n                imageRef.current = new window.Image();\n                imageRef.current.src = src;\n                imageRef.current.addEventListener('load', onImageLoad);\n                imageRef.current.addEventListener('error', onImageError);\n            },\n            [imageRef, onImageLoad, onImageError]\n        );\n\n        const handleImageUnload = React.useCallback(() => {\n            setLoadState(false);\n            imageRef.current?.removeEventListener('load', onImageLoad);\n            imageRef.current?.removeEventListener('error', onImageError);\n            imageRef.current = null;\n        }, [onImageLoad, onImageError]);\n\n        // effects\n        React.useEffect(() => {\n            return () => {\n                handleImageUnload();\n            };\n        }, []);\n\n        return {\n            state,\n            // methods\n            handleImageLoad,\n            handleImageUnload\n        };\n    }\n});\n"],"mappings":"AAEO,IAAMA,EAA+B,CACxC,cAAe,CACnB,ECJA,OAAS,gBAAAC,MAAoB,4BAC7B,UAAYC,MAAW,QAGhB,IAAMC,EAAYC,EAAa,CAClC,KAAM,YACN,aAAAC,EACA,MAAM,CAAE,MAAAC,CAAM,EAAG,CACb,GAAM,CAACC,EAAWC,CAAY,EAAU,WAAkB,EAAK,EACzDC,EAAiB,SAAgC,IAAI,EAErDC,EAAQ,CACV,KAAMH,CACV,EAGMI,EAAoB,cAAY,IAAM,CAhBpD,IAAAC,EAiBY,WAAW,IAAM,CACbJ,EAAa,EAAI,CACrB,GAAGI,EAAAN,EAAM,gBAAN,KAAAM,EAAuB,CAAC,CAC/B,EAAG,CAACN,EAAM,aAAa,CAAC,EAElBO,EAAqB,cAAY,IAAM,CACzCL,EAAa,EAAK,CACtB,EAAG,CAAC,CAAC,EAECM,EAAwB,cACzBC,GAAiB,CACd,GAAI,CAACA,EAAK,CACNP,EAAa,EAAK,EAElB,MACJ,CAEAC,EAAS,QAAU,IAAI,OAAO,MAC9BA,EAAS,QAAQ,IAAMM,EACvBN,EAAS,QAAQ,iBAAiB,OAAQE,CAAW,EACrDF,EAAS,QAAQ,iBAAiB,QAASI,CAAY,CAC3D,EACA,CAACJ,EAAUE,EAAaE,CAAY,CACxC,EAEMG,EAA0B,cAAY,IAAM,CA1C1D,IAAAJ,EAAAK,EA2CYT,EAAa,EAAK,GAClBI,EAAAH,EAAS,UAAT,MAAAG,EAAkB,oBAAoB,OAAQD,IAC9CM,EAAAR,EAAS,UAAT,MAAAQ,EAAkB,oBAAoB,QAASJ,GAC/CJ,EAAS,QAAU,IACvB,EAAG,CAACE,EAAaE,CAAY,CAAC,EAG9B,OAAM,YAAU,IACL,IAAM,CACTG,EAAkB,CACtB,EACD,CAAC,CAAC,EAEE,CACH,MAAAN,EAEA,gBAAAI,EACA,kBAAAE,CACJ,CACJ,CACJ,CAAC","names":["defaultProps","withHeadless","React","useAvatar","withHeadless","defaultProps","props","loadState","setLoadState","imageRef","state","onImageLoad","_a","onImageError","handleImageLoad","src","handleImageUnload","_b"]}