diff --git a/.gitignore b/.gitignore index ccfafdc..a59383e 100644 --- a/.gitignore +++ b/.gitignore @@ -31,4 +31,6 @@ cypress/screenshots .env .idea package-lock.json -ecosystem.config \ No newline at end of file +ecosystem.config + +public/config.json \ No newline at end of file diff --git a/public/config.json.example b/public/config.json.example new file mode 100644 index 0000000..59e8e23 --- /dev/null +++ b/public/config.json.example @@ -0,0 +1,36 @@ +{ + "time_lines": { + "navgan_first_page": [ + { + "date": { + "from": "1402/09/01", + "to": "1402/09/10" + }, + "label": { + "primary": "ثبت نام متقاضی", + "secondary": "ثبت نام متقاضیان واجد شرایط" + } + }, + { + "date": { + "from": "1402/09/15", + "to": "1402/11/10" + }, + "label": { + "primary": "صحت سنجی متقاضیان", + "secondary": "بررسی و کارشناسی درخواست ها" + } + }, + { + "date": { + "from": "1402/11/10", + "to": "1402/12/20" + }, + "label": { + "primary": "ارجاع به بانک", + "secondary": "فرآیند معرفی ضامن و پرداخت" + } + } + ] + } +} \ No newline at end of file diff --git a/public/locales/fa/app.json b/public/locales/fa/app.json index 2eeb753..6978a5d 100644 --- a/public/locales/fa/app.json +++ b/public/locales/fa/app.json @@ -18,6 +18,7 @@ "upload_file_text": "بارگذاری فایل", "online_message": "شما به اینترنت وصل هستید", "offline_message": "اتصال شما به اینترنت قطع شده است", + "routing_to": "در حال انتقال به صفحه", "header": { "open_profile": "پروفایل", "edit_profile": "ویرایش پروفایل", diff --git a/src/components/first/LoanDescription/TimeLineDetails.jsx b/src/components/first/LoanDescription/TimeLineDetails.jsx index 5feb4fe..a3db1a7 100644 --- a/src/components/first/LoanDescription/TimeLineDetails.jsx +++ b/src/components/first/LoanDescription/TimeLineDetails.jsx @@ -1,19 +1,73 @@ 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 OpenTimeLine from "@/core/components/timelines/OpenTimeLine"; -import InProgressTimeLine from "@/core/components/timelines/InProgressTimeLine"; const TimeLineDetails = () => { const t = useTranslations(); + const request = useRequest({notification: false, auth: false}) + const [timeLineList, setTimeLineList] = useState([]) + const [loading, setLoading] = useState(true) + + useEffect(() => { + setLoading(true) + request(process.env.NEXT_PUBLIC_CONFIG_APP_URL, 'get').then(res => { + setLoading(false) + 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) + } + setTimeLineList(tempArr) + }).catch(() => { + setLoading(false) + }) + }, []); + return ( - - - - - + <> + {loading ? ( + <>loading... + ) : ( + + {timeLineList.map((timeLine, index) => ( + + )) + } + + )} + ) + // return ( + // + // + // + // + // + // ) } export default TimeLineDetails \ No newline at end of file diff --git a/src/core/components/timelines/timelineManager.jsx b/src/core/components/timelines/timelineManager.jsx new file mode 100644 index 0000000..292c3d1 --- /dev/null +++ b/src/core/components/timelines/timelineManager.jsx @@ -0,0 +1,16 @@ +import OpenTimeLine from "@/core/components/timelines/OpenTimeLine"; +import InProgressTimeLine from "@/core/components/timelines/InProgressTimeLine"; +import DoneTimeLine from "@/core/components/timelines/DoneTimeLine"; + +const TimelineManager = (props) => { + switch (props.status) { + case 'open': + return + case 'in progress': + return + case 'done': + return + } +} + +export default TimelineManager \ No newline at end of file