{"version":3,"file":"useConfig-BHBy4mgv.mjs","sources":["../../admin/src/utils/axios.ts","../../admin/src/hooks/useConfig.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosResponse } from 'axios';\nimport { PLUGIN_ID } from '../pluginId';\nimport { Config } from '../../../server/src/interface';\n\nconst useAxios = (token: string): AxiosInstance => {\n    const instance = axios.create({\n        baseURL: `${process.env.STRAPI_ADMIN_BACKEND_URL}/api/${PLUGIN_ID}`,\n        headers: {\n            'Content-Type': 'application/json',\n        },\n    });\n\n    // Add a request interceptor to set the Authorization header dynamically\n    instance.interceptors.request.use(\n        async (config) => {\n            if (token) {\n                config.headers['Authorization'] = `Bearer ${token}`;\n            }\n            return config;\n        },\n        (error) => Promise.reject(error)\n    );\n\n    return instance;\n};\n\nexport default useAxios;\n\nexport const getConfig = (token: string): Promise<AxiosResponse> => useAxios(token).get('/config');\n\nexport const updateConfig = (token: string, config: Config): Promise<AxiosResponse> =>\n    useAxios(token).put('/config', {\n        data: config,\n    });\n","import { useEffect, useState } from 'react';\nimport { Config, UpdateConfig } from '../../../types';\nimport { AxiosResponse } from 'axios';\nimport useAxios from '../utils/axios';\n\nconst endpoint = '/config';\n\nexport default function useConfig(token = '', newConfig?: UpdateConfig) {\n    const [config, setConfig] = useState<Config | undefined | null>();\n\n    const onResponse = ({ data }: AxiosResponse) => setConfig(data);\n\n    const onError = (error: Error) => {\n        console.error(error);\n        setConfig(null);\n    };\n\n    useEffect(() => {\n        useAxios(token).get(endpoint).then(onResponse).catch(onError);\n    }, []);\n\n    useEffect(() => {\n        if (newConfig) {\n            setConfig(undefined);\n\n            useAxios(token).put(endpoint, { data: newConfig }).then(onResponse).catch(onError);\n        }\n    }, [newConfig]);\n\n    return config;\n}"],"names":[],"mappings":";;;AAIA,MAAM,WAAW,CAAC,UAAiC;AACzC,QAAA,WAAW,MAAM,OAAO;AAAA,IAC1B,SAAS,GAAG,QAAQ,IAAI,wBAAwB,QAAQ,SAAS;AAAA,IACjE,SAAS;AAAA,MACL,gBAAgB;AAAA,IAAA;AAAA,EACpB,CACH;AAGD,WAAS,aAAa,QAAQ;AAAA,IAC1B,OAAO,WAAW;AACd,UAAI,OAAO;AACP,eAAO,QAAQ,eAAe,IAAI,UAAU,KAAK;AAAA,MAAA;AAE9C,aAAA;AAAA,IACX;AAAA,IACA,CAAC,UAAU,QAAQ,OAAO,KAAK;AAAA,EACnC;AAEO,SAAA;AACX;ACnBA,MAAM,WAAW;AAEO,SAAA,UAAU,QAAQ,IAAI,WAA0B;AACpE,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAoC;AAEhE,QAAM,aAAa,CAAC,EAAE,KAAK,MAAqB,UAAU,IAAI;AAExD,QAAA,UAAU,CAAC,UAAiB;AAC9B,YAAQ,MAAM,KAAK;AACnB,cAAU,IAAI;AAAA,EAClB;AAEA,YAAU,MAAM;AACH,aAAA,KAAK,EAAE,IAAI,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO;AAAA,EAChE,GAAG,EAAE;AAEL,YAAU,MAAM;AACZ,QAAI,WAAW;AACX,gBAAU,MAAS;AAEnB,eAAS,KAAK,EAAE,IAAI,UAAU,EAAE,MAAM,UAAW,CAAA,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO;AAAA,IAAA;AAAA,EACrF,GACD,CAAC,SAAS,CAAC;AAEP,SAAA;AACX;"}