implementation config
This commit is contained in:
@@ -2,8 +2,11 @@ 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()
|
||||
|
||||
@@ -11,7 +14,11 @@ const ConfigApp = ({children}) => {
|
||||
const fetchConfig = async () => {
|
||||
try {
|
||||
const response = await axios(GET_CONFIG)
|
||||
setConfig(response.data)
|
||||
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)
|
||||
}
|
||||
@@ -19,7 +26,7 @@ const ConfigApp = ({children}) => {
|
||||
|
||||
fetchConfig()
|
||||
|
||||
}, []);
|
||||
}, [router]);
|
||||
|
||||
return (
|
||||
<ConfigProvider config={config || {}}>{error ? <>Error request config</> : config && children}</ConfigProvider>)
|
||||
|
||||
9
src/core/utils/isValidJson.js
Normal file
9
src/core/utils/isValidJson.js
Normal file
@@ -0,0 +1,9 @@
|
||||
export const isValidJson = (value) => {
|
||||
try {
|
||||
JSON.parse(value)
|
||||
return true
|
||||
} catch (e) {
|
||||
return false
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user