diff --git a/package.json b/package.json
index b517190..f5cf4ed 100644
--- a/package.json
+++ b/package.json
@@ -16,7 +16,7 @@
"@mui/icons-material": "^5.11.16",
"@mui/lab": "^5.0.0-alpha.152",
"@mui/material": "^5.12.0",
- "@witel/webapp-builder": "^1.2.1",
+ "@witel/webapp-builder": "^1.2.3",
"axios": "^1.4.0",
"colord": "^2.9.3",
"eslint": "8.36.0",
diff --git a/public/config.json.example b/public/config.json.example
index 59e8e23..abeeda5 100644
--- a/public/config.json.example
+++ b/public/config.json.example
@@ -1,4 +1,5 @@
{
+ "middlewares": {},
"time_lines": {
"navgan_first_page": [
{
diff --git a/src/components/first/LoanDescription/TimeLineDetails.jsx b/src/components/first/LoanDescription/TimeLineDetails.jsx
index f4470e9..feae261 100644
--- a/src/components/first/LoanDescription/TimeLineDetails.jsx
+++ b/src/components/first/LoanDescription/TimeLineDetails.jsx
@@ -1,64 +1,48 @@
-import {useTranslations} from "next-intl";
import {useEffect, useState} from "react";
-import {useRequest} from "@witel/webapp-builder";
import TimelineManager from "@/core/components/timelines/timelineManager";
import moment from "jalali-moment";
import {Timeline} from "@mui/lab";
-import {LinearProgress} from "@mui/material";
+import {useConfig} from "@witel/webapp-builder";
const TimeLineDetails = () => {
- const t = useTranslations();
- const request = useRequest({notification: false, auth: false})
+ const {config} = useConfig()
const [timeLineList, setTimeLineList] = useState([])
- const [loading, setLoading] = useState(true)
useEffect(() => {
- setLoading(true)
- request(process.env.NEXT_PUBLIC_CONFIG_APP_URL, 'get').then(res => {
- let tempArr = []
- for (const timeLine of res.data.time_lines.navgan_first_page) {
- let temp = {}
- temp['label'] = timeLine.label
- temp['date'] = moment(timeLine.date.from, 'jYYYY/jMM/jDD').locale('fa').format('jD jMMMM')
- const fromDate = moment(timeLine.date.from, 'jYYYY/jMM/jDD')
- const toDate = moment(timeLine.date.to, 'jYYYY/jMM/jDD')
- const today = moment()
- if (today.isBetween(fromDate, toDate, null, '[]')) {
- temp['status'] = 'in progress'
- } else if (today.isAfter(toDate, null)) {
- temp['status'] = 'done'
- } else if (today.isBefore(fromDate, null)) {
- temp['status'] = 'open'
- }
- tempArr.push(temp)
+ let tempArr = []
+ for (const timeLine of config.time_lines.navgan_first_page) {
+ let temp = {}
+ temp['label'] = timeLine.label
+ temp['date'] = moment(timeLine.date.from, 'jYYYY/jMM/jDD').locale('fa').format('jD jMMMM')
+ const fromDate = moment(timeLine.date.from, 'jYYYY/jMM/jDD')
+ const toDate = moment(timeLine.date.to, 'jYYYY/jMM/jDD')
+ const today = moment()
+ if (today.isBetween(fromDate, toDate, null, '[]')) {
+ temp['status'] = 'in progress'
+ } else if (today.isAfter(toDate, null)) {
+ temp['status'] = 'done'
+ } else if (today.isBefore(fromDate, null)) {
+ temp['status'] = 'open'
}
- setTimeLineList(tempArr)
- setLoading(false)
- }).catch(() => {
- setLoading(false)
- })
+ tempArr.push(temp)
+ }
+ setTimeLineList(tempArr)
}, []);
return (
- <>
- {loading ? (
-
- ) : (
-
- {timeLineList.map((timeLine, index) => (
-
- ))
- }
-
- )}
- >
+
+ {timeLineList.map((timeLine, index) => (
+
+ ))
+ }
+
)
}
export default TimeLineDetails
\ No newline at end of file
diff --git a/src/core/components/svgs/SvgMaintenance.jsx b/src/core/components/svgs/SvgMaintenance.jsx
new file mode 100644
index 0000000..47fcc0f
--- /dev/null
+++ b/src/core/components/svgs/SvgMaintenance.jsx
@@ -0,0 +1,91 @@
+import {useTheme} from "@mui/material";
+
+const SvgMaintenance = ({width, height}) => {
+ const theme = useTheme()
+ const fillColor = theme.palette.primary.main
+
+ return (
+
+ )
+
+}
+
+export default SvgMaintenance
\ No newline at end of file
diff --git a/src/core/utils/globalServerProps.js b/src/core/utils/globalServerProps.js
new file mode 100644
index 0000000..ef8e1b8
--- /dev/null
+++ b/src/core/utils/globalServerProps.js
@@ -0,0 +1,12 @@
+import {parse} from "next-useragent";
+
+export const globalServerProps = async ({req, locale}) => {
+ const {isBot} = parse(req.headers["user-agent"]);
+
+ return {
+ config: (await import(`&/config.json`)).default,
+ messages: (await import(`&/locales/${locale}/app.json`)).default,
+ isBot,
+ locale,
+ }
+}
\ No newline at end of file
diff --git a/src/pages/_app.jsx b/src/pages/_app.jsx
index a3be1c7..848a35c 100644
--- a/src/pages/_app.jsx
+++ b/src/pages/_app.jsx
@@ -2,10 +2,12 @@ import "&/global.scss";
import "moment/locale/fa";
import {
AppLayout,
+ ConfigProvider,
LanguageProvider,
LoadingProvider,
MuiLayout,
NetworkProvider,
+ PageMiddleware,
ToastProvider,
UserProvider
} from "@witel/webapp-builder";
@@ -18,8 +20,8 @@ import GlobalHead from "@/core/components/GlobalHead";
import Layout from "@/layouts";
const App = ({Component, pageProps}) => {
- return (
- <>
+ return (<>
+
data}>
@@ -31,7 +33,9 @@ const App = ({Component, pageProps}) => {
-
+
+
+
@@ -41,8 +45,8 @@ const App = ({Component, pageProps}) => {
- >
- );
+
+ >);
};
export default App;
diff --git a/src/pages/dashboard/index.jsx b/src/pages/dashboard/index.jsx
index 265c8ac..b946dbd 100644
--- a/src/pages/dashboard/index.jsx
+++ b/src/pages/dashboard/index.jsx
@@ -1,5 +1,5 @@
import FirstComponent from "@/components/dashboard/first";
-import {parse} from "next-useragent";
+import {globalServerProps} from "@/core/utils/globalServerProps";
export default function Dashboard() {
return (
@@ -8,13 +8,10 @@ export default function Dashboard() {
}
export async function getServerSideProps({req, locale}) {
- const {isBot} = parse(req.headers["user-agent"]);
return {
props: {
- messages: (await import(`&/locales/${locale}/app.json`)).default,
+ ...await globalServerProps({req, locale}),
title: "Dashboard.dashboard_page",
- isBot,
- locale,
layout: {name: 'DashboardLayout'}
},
};
diff --git a/src/pages/dashboard/navgan/add-request-loan/index.jsx b/src/pages/dashboard/navgan/add-request-loan/index.jsx
index 1f04bf3..7706783 100644
--- a/src/pages/dashboard/navgan/add-request-loan/index.jsx
+++ b/src/pages/dashboard/navgan/add-request-loan/index.jsx
@@ -1,5 +1,5 @@
-import {parse} from "next-useragent";
import LoanRequestComponent from "@/components/dashboard/navgan/add-request-loan";
+import {globalServerProps} from "@/core/utils/globalServerProps";
export default function AddLoanRequest() {
return (
@@ -8,13 +8,10 @@ export default function AddLoanRequest() {
}
export async function getServerSideProps({req, locale}) {
- const {isBot} = parse(req.headers["user-agent"]);
return {
props: {
- messages: (await import(`&/locales/${locale}/app.json`)).default,
+ ...await globalServerProps({req, locale}),
title: "LoanRequest.loan_request_page",
- isBot,
- locale,
layout: {name: 'DashboardLayout', permissions: ["can_request_navgan_loan"]}
},
};
diff --git a/src/pages/dashboard/navgan/followUp-loan/index.jsx b/src/pages/dashboard/navgan/followUp-loan/index.jsx
index 1476d5a..68f4f73 100644
--- a/src/pages/dashboard/navgan/followUp-loan/index.jsx
+++ b/src/pages/dashboard/navgan/followUp-loan/index.jsx
@@ -1,5 +1,5 @@
-import {parse} from "next-useragent";
import LoanFollowUpComponent from "@/components/dashboard/navgan/followUp-loan";
+import {globalServerProps} from "@/core/utils/globalServerProps";
export default function FollowUpLoan() {
return (
@@ -8,13 +8,10 @@ export default function FollowUpLoan() {
}
export async function getServerSideProps({req, locale}) {
- const {isBot} = parse(req.headers["user-agent"]);
return {
props: {
- messages: (await import(`&/locales/${locale}/app.json`)).default,
+ ...await globalServerProps({req, locale}),
title: "LoanRequest.loan_request_page",
- isBot,
- locale,
layout: {name: 'DashboardLayout'}
},
};
diff --git a/src/pages/index.jsx b/src/pages/index.jsx
index 2e146c6..6e47ba2 100644
--- a/src/pages/index.jsx
+++ b/src/pages/index.jsx
@@ -1,5 +1,5 @@
import FirstComponent from "@/components/first";
-import {parse} from "next-useragent";
+import {globalServerProps} from "@/core/utils/globalServerProps";
export default function Home() {
return (
@@ -10,12 +10,10 @@ export default function Home() {
}
export async function getServerSideProps({req, locale}) {
- const {isBot} = parse(req.headers["user-agent"]);
return {
props: {
- messages: (await import(`&/locales/${locale}/app.json`)).default,
+ ...await globalServerProps({req, locale}),
title: "first_page",
- isBot,
},
};
}
diff --git a/src/pages/login.jsx b/src/pages/login.jsx
index 39502a9..6f7b288 100644
--- a/src/pages/login.jsx
+++ b/src/pages/login.jsx
@@ -1,6 +1,6 @@
import LoginComponent from "@/components/login";
-import {parse} from "next-useragent";
import {WithoutAuthMiddleware} from "@witel/webapp-builder";
+import {globalServerProps} from "@/core/utils/globalServerProps";
export default function Login() {
return (
@@ -11,12 +11,10 @@ export default function Login() {
}
export async function getServerSideProps({req, locale}) {
- const {isBot} = parse(req.headers["user-agent"]);
return {
props: {
- messages: (await import(`&/locales/${locale}/app.json`)).default,
+ ...await globalServerProps({req, locale}),
title: "Titles.title_login_page",
- isBot,
},
};
}