From efe0e16b0b04de26bdb565aae45aae45e3064b41 Mon Sep 17 00:00:00 2001 From: AmirHossein Mahmoodi Date: Sat, 20 Jan 2024 14:04:35 +0330 Subject: [PATCH 1/6] change structure config app --- src/core/components/Config.jsx | 28 ++++++++++++++++++++++++++++ src/core/data/apiRoutes.js | 2 ++ src/core/utils/globalServerProps.js | 4 ---- src/pages/_app.jsx | 6 +++--- 4 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 src/core/components/Config.jsx diff --git a/src/core/components/Config.jsx b/src/core/components/Config.jsx new file mode 100644 index 0000000..3c1d833 --- /dev/null +++ b/src/core/components/Config.jsx @@ -0,0 +1,28 @@ +import {useEffect, useState} from "react"; +import axios from "axios"; +import {GET_CONFIG} from "@/core/data/apiRoutes"; +import {ConfigProvider} from "@witel/webapp-builder"; + +const ConfigApp = ({children}) => { + const [error, setError] = useState(false) + const [config, setConfig] = useState() + + useEffect(() => { + const fetchConfig = async () => { + try { + const response = await axios(GET_CONFIG) + setConfig(response.data) + } catch (error) { + setError(true) + } + } + + fetchConfig() + + }, []); + + return ( + {error ? <>Error request config : config && children}) +} + +export default ConfigApp \ No newline at end of file diff --git a/src/core/data/apiRoutes.js b/src/core/data/apiRoutes.js index 69d7e64..f2e42fc 100644 --- a/src/core/data/apiRoutes.js +++ b/src/core/data/apiRoutes.js @@ -1,5 +1,7 @@ const BASE_URL = process.env.NEXT_PUBLIC_BASE_URL + "/api"; +export const GET_CONFIG = process.env.NEXT_PUBLIC_CONFIG_APP_URL; + // export const LOGIN_SEND_OTP_TOKEN = BASE_URL + "/login/send_otp"; export const LOGIN = BASE_URL + "/login"; // export const REGISTER_SEND_OTP_TOKEN = BASE_URL + "/register/send_otp"; diff --git a/src/core/utils/globalServerProps.js b/src/core/utils/globalServerProps.js index 107efee..422a77b 100644 --- a/src/core/utils/globalServerProps.js +++ b/src/core/utils/globalServerProps.js @@ -1,13 +1,9 @@ import {parse} from "next-useragent"; -import process from "next/dist/build/webpack/loaders/resolve-url-loader/lib/postcss"; export const globalServerProps = async ({req, locale}) => { const {isBot} = parse(req.headers["user-agent"]); - - const responseConfig = await fetch(`${process.env.NEXT_PUBLIC_CONFIG_APP_URL}?_=${Math.random()}`); return { - config: await responseConfig.json(), messages: (await import(`&/locales/${locale}/app.json`)).default, isBot, locale, diff --git a/src/pages/_app.jsx b/src/pages/_app.jsx index 848a35c..e2f97b1 100644 --- a/src/pages/_app.jsx +++ b/src/pages/_app.jsx @@ -2,7 +2,6 @@ import "&/global.scss"; import "moment/locale/fa"; import { AppLayout, - ConfigProvider, LanguageProvider, LoadingProvider, MuiLayout, @@ -18,10 +17,11 @@ import themeRtl from "@/core/utils/theme-rtl"; import TitlePage from "@/core/components/TitlePage"; import GlobalHead from "@/core/components/GlobalHead"; import Layout from "@/layouts"; +import ConfigApp from "@/core/components/Config"; const App = ({Component, pageProps}) => { return (<> - + data}> @@ -45,7 +45,7 @@ const App = ({Component, pageProps}) => { - + ); }; From 9867e7b0439706038d6c2e56502bde0ad7973dc3 Mon Sep 17 00:00:00 2001 From: Mohammad Jalali Date: Sat, 20 Jan 2024 14:33:21 +0330 Subject: [PATCH 2/6] Banner completed --- src/components/first/Banner.jsx | 16 ++++++++++++++++ src/components/first/index.jsx | 2 ++ 2 files changed, 18 insertions(+) create mode 100644 src/components/first/Banner.jsx diff --git a/src/components/first/Banner.jsx b/src/components/first/Banner.jsx new file mode 100644 index 0000000..3a8a26a --- /dev/null +++ b/src/components/first/Banner.jsx @@ -0,0 +1,16 @@ +import {Box, Container} from "@mui/material"; +import {useConfig} from "@witel/webapp-builder"; + +const Banner = () => { + const {config} = useConfig(); + const bannerHTML = config.banner; + return ( + + +
+ + + ); +}; + +export default Banner; diff --git a/src/components/first/index.jsx b/src/components/first/index.jsx index adc1d80..77214bf 100644 --- a/src/components/first/index.jsx +++ b/src/components/first/index.jsx @@ -6,6 +6,7 @@ import FooterDetails from "@/components/first/FooterDetails"; import HeaderDetails from "@/components/first/HeaderDetails"; import LoanDescription from "@/components/first/LoanDescription"; import {FullPageLayout} from "@witel/webapp-builder"; +import Banner from "@/components/first/Banner"; const FirstComponent = () => { const t = useTranslations(); @@ -14,6 +15,7 @@ const FirstComponent = () => { + From 84bbe3e637b15c2395f44ee5970d5f28734c4424 Mon Sep 17 00:00:00 2001 From: AmirHossein Mahmoodi Date: Tue, 23 Jan 2024 11:42:46 +0330 Subject: [PATCH 3/6] change structure config app --- public/config.json.example | 5 +++-- src/components/first/Banner.jsx | 12 +++++------- src/core/components/Config.jsx | 12 ++++++++++-- src/core/data/apiRoutes.js | 2 +- src/core/utils/isValidJson.js | 9 +++++++++ 5 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 src/core/utils/isValidJson.js diff --git a/public/config.json.example b/public/config.json.example index ac50d76..7dce39a 100644 --- a/public/config.json.example +++ b/public/config.json.example @@ -14,7 +14,7 @@ "register": { "date": { "from": "1402/10/02", - "to": "1402/10/15" + "to": "1402/11/15" }, "messages": { "before": "ثبت نام هنوز شروع نشده", @@ -47,5 +47,6 @@ "secondary": "فرآیند معرفی ضامن و پرداخت" } } - } + }, + "banner":"سلام" } \ No newline at end of file diff --git a/src/components/first/Banner.jsx b/src/components/first/Banner.jsx index 3a8a26a..0c4ef35 100644 --- a/src/components/first/Banner.jsx +++ b/src/components/first/Banner.jsx @@ -4,13 +4,11 @@ import {useConfig} from "@witel/webapp-builder"; const Banner = () => { const {config} = useConfig(); const bannerHTML = config.banner; - return ( - - -
- - - ); + return ( + {config.banner && config.banner !== "" && ( +
+ )} + ); }; export default Banner; diff --git a/src/core/components/Config.jsx b/src/core/components/Config.jsx index 3c1d833..a137364 100644 --- a/src/core/components/Config.jsx +++ b/src/core/components/Config.jsx @@ -2,8 +2,11 @@ import {useEffect, useState} from "react"; import axios from "axios"; import {GET_CONFIG} from "@/core/data/apiRoutes"; import {ConfigProvider} from "@witel/webapp-builder"; +import {useRouter} from "next/router"; +import {isValidJson} from "@/core/utils/isValidJson"; const ConfigApp = ({children}) => { + const router = useRouter() const [error, setError] = useState(false) const [config, setConfig] = useState() @@ -11,7 +14,12 @@ 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 + }) + console.log(_config) + setConfig(_config) } catch (error) { setError(true) } @@ -19,7 +27,7 @@ const ConfigApp = ({children}) => { fetchConfig() - }, []); + }, [router]); return ( {error ? <>Error request config : config && children}) diff --git a/src/core/data/apiRoutes.js b/src/core/data/apiRoutes.js index f2e42fc..1e69d2d 100644 --- a/src/core/data/apiRoutes.js +++ b/src/core/data/apiRoutes.js @@ -1,6 +1,6 @@ const BASE_URL = process.env.NEXT_PUBLIC_BASE_URL + "/api"; -export const GET_CONFIG = process.env.NEXT_PUBLIC_CONFIG_APP_URL; +export const GET_CONFIG = process.env.NEXT_PUBLIC_BASE_URL + "/dashboard/settings/list"; // export const LOGIN_SEND_OTP_TOKEN = BASE_URL + "/login/send_otp"; export const LOGIN = BASE_URL + "/login"; diff --git a/src/core/utils/isValidJson.js b/src/core/utils/isValidJson.js new file mode 100644 index 0000000..1ba1b86 --- /dev/null +++ b/src/core/utils/isValidJson.js @@ -0,0 +1,9 @@ +export const isValidJson = (value) => { + try { + JSON.parse(value) + return true + } catch (e) { + return false + } + +} \ No newline at end of file From 23e36ab416ffcc357299c58232b54831021196e5 Mon Sep 17 00:00:00 2001 From: AmirHossein Mahmoodi Date: Tue, 23 Jan 2024 11:45:18 +0330 Subject: [PATCH 4/6] remove logs --- src/components/dashboard/navgan/show/form/UpdateForm.jsx | 5 ----- src/core/components/Config.jsx | 1 - 2 files changed, 6 deletions(-) diff --git a/src/components/dashboard/navgan/show/form/UpdateForm.jsx b/src/components/dashboard/navgan/show/form/UpdateForm.jsx index c4d4434..0484e1b 100644 --- a/src/components/dashboard/navgan/show/form/UpdateForm.jsx +++ b/src/components/dashboard/navgan/show/form/UpdateForm.jsx @@ -123,10 +123,6 @@ const UpdateForm = ({LoanDetails, LoanId}) => { formData.append("occupation_id", values.occupation_id); formData.append("address", values.address); - for (var pair of formData.entries()) { - console.log(pair[0] + ':' + pair[1]); - } - await requestServer(UPDATE_LOAN + LoanId, "post", { auth: true, notification: true, data: formData }).then(() => { @@ -773,7 +769,6 @@ const UpdateForm = ({LoanDetails, LoanId}) => { width: {xs: "100%", sm: "30%", md: "25%"}, }} > - {console.log(props.errors)}