Files
expert-front/src/core/components/Config.jsx
AmirHossein Mahmoodi 1baf9b828c implementation config
2024-01-23 10:57:59 +03:30

35 lines
1.1 KiB
JavaScript

import {useEffect, useState} from "react";
import axios from "axios";
import {GET_CONFIG} from "@/core/data/apiRoutes";
import {ConfigProvider} from "@/lib/app/contexts/config";
import {isValidJson} from "@/core/utils/isValidJson";
import {useRouter} from "next/router";
const ConfigApp = ({children}) => {
const router = useRouter()
const [error, setError] = useState(false)
const [config, setConfig] = useState()
useEffect(() => {
const fetchConfig = async () => {
try {
const response = await axios(GET_CONFIG)
let _config = {}
response.data.data.forEach(item => {
_config[item.name] = isValidJson(item.value) ? JSON.parse(item.value) : item.value
})
setConfig(_config)
} catch (error) {
setError(true)
}
}
fetchConfig()
}, [router]);
return (
<ConfigProvider config={config || {}}>{error ? <>Error request config</> : config && children}</ConfigProvider>)
}
export default ConfigApp