From dcc58570483a2cd627177a63bc7f8c314589f160 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Thu, 30 Jan 2025 11:21:49 +0330 Subject: [PATCH] annoncement --- src/App.tsx | 1 + src/components/DatePicker.tsx | 2 +- src/pages/annoncement/Detail.tsx | 23 +- src/pages/annoncement/List.tsx | 227 ++++++++++-------- .../annoncement/service/AnnoncementService.ts | 4 +- 5 files changed, 148 insertions(+), 109 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 950f6f2..0cc2bea 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -3,6 +3,7 @@ import { BrowserRouter } from 'react-router-dom' import 'swiper/swiper-bundle.css'; import 'rc-rate/assets/index.css'; import "quill/dist/quill.snow.css"; +import "react-multi-date-picker/styles/layouts/mobile.css" import i18next from 'i18next' import { I18nextProvider } from 'react-i18next' import { QueryCache, QueryClient, QueryClientProvider } from '@tanstack/react-query' diff --git a/src/components/DatePicker.tsx b/src/components/DatePicker.tsx index fd37e49..362a028 100644 --- a/src/components/DatePicker.tsx +++ b/src/components/DatePicker.tsx @@ -62,7 +62,7 @@ const DatePickerComponent: FC = (props: Props) => { calendar={persian} locale={persian_fa} calendarPosition="bottom-right" - className={props.className} + className={`rmdp-mobile ${props.className}`} /> {props.error_text && props.error_text !== '' && (
diff --git a/src/pages/annoncement/Detail.tsx b/src/pages/annoncement/Detail.tsx index c8bcbb2..3edf1c6 100644 --- a/src/pages/annoncement/Detail.tsx +++ b/src/pages/annoncement/Detail.tsx @@ -32,16 +32,25 @@ const AnnouncementDetail: FC = () => {
- لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ + {getDetail.data?.data?.announcement?.title} +
+
+ { + getDetail.data?.data?.announcement.isImportant && + + } + +
-
-
- لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد. +
} diff --git a/src/pages/annoncement/List.tsx b/src/pages/annoncement/List.tsx index 70c204d..210f519 100644 --- a/src/pages/annoncement/List.tsx +++ b/src/pages/annoncement/List.tsx @@ -1,9 +1,9 @@ -import { FC, useState } from 'react' +import { FC, Fragment, useState } from 'react' import { useTranslation } from 'react-i18next' import Input from '../../components/Input' import StatusWithText from '../../components/StatusWithText' import { clx } from '../../helpers/utils' -import { useNavigate } from 'react-router-dom' +import { Link, useNavigate } from 'react-router-dom' import { Pages } from '../../config/Pages' import { useGetAnnoncements } from './hooks/useAnnoncementData' import PageLoading from '../../components/PageLoading' @@ -11,6 +11,8 @@ import { AnnoncementItemType } from './types/AnnoncementTypes' import moment from 'moment-jalaali' import Pagination from '../../components/Pagination' import DatePickerComponent from '../../components/DatePicker' +import Button from '../../components/Button' +import { Add } from 'iconsax-react' const AnnouncementtList: FC = () => { @@ -32,116 +34,141 @@ const AnnouncementtList: FC = () => { return (
-
- {t('announcement.announcements')} + +
+
+ {t('announcement.announcements')} +
+
+ + + +
- { - getAnnoncements.isPending ? - - : -
-
-
-
- setSearch(value)} - /> -
-
- setSince(d)} - placeholder={t('announcement.date_created')} - /> -
-
- -
- { - getAnnoncements.data?.data?.announcements?.map((item: AnnoncementItemType) => { - return ( -
handleChange(item)} className={clx( - 'p-4 rounded-2xl cursor-pointer', - openItem?.id === item.id && 'bg-[#F5F6FA]' - )}> -
-
- {item.title} -
- -
- { - item.isImportant && - - } - - -
-
- -
-
-
-
- {moment(item.publishAt, 'jYYYY-jMM-jDD').format('jYYYY/jMM/jDD')} -
-
-
- ) - }) - } -
- -
-
+
+
+
+
+ setSearch(value)} + />
- { - openItem && -
-
-
- متن اطلاعیه -
-
- { - openItem.isImportant && - - } - + setSince(d)} + placeholder={t('announcement.date_created')} + /> +
+
+ + { + getAnnoncements.isPending ? + + : + +
+ { + getAnnoncements.data?.data?.announcements?.map((item: AnnoncementItemType) => { + return ( +
handleChange(item)} className={clx( + 'p-4 rounded-2xl cursor-pointer', + openItem?.id === item.id && 'bg-[#F5F6FA]' + )}> +
+
+ {item.title} +
+ +
+ { + item.isImportant && + + } + + +
+
+ +
+
+
+
+ {moment(item.publishAt).format('jYYYY/jMM/jDD')} +
+
+
+ ) + }) + } +
+
+
+ } -
- {openItem.title} -
-
-
+
+ + { + openItem && +
+
+
+ متن اطلاعیه
- } +
+ { + openItem.isImportant && + + } + +
+
+ +
+ {openItem.title} +
+ +
+
- } + } +
+
) diff --git a/src/pages/annoncement/service/AnnoncementService.ts b/src/pages/annoncement/service/AnnoncementService.ts index 3224682..bd6e762 100644 --- a/src/pages/annoncement/service/AnnoncementService.ts +++ b/src/pages/annoncement/service/AnnoncementService.ts @@ -1,3 +1,4 @@ +import moment from "moment-jalaali"; import axios from "../../../config/axios"; import { CreateAnnouncementType } from "../../types/AnnouncementTypes"; @@ -13,7 +14,8 @@ export const getAnnoncements = async ( ) => { let query = `?page=${page}`; if (search) query += `&q=${search}`; - if (since) query += `&since=${since}`; + if (since) + query += `&since=${moment(since, "jYYYY-jMM-jDD").format("YYYY-MM-DD")}`; const { data } = await axios.get(`/announcements${query}`); return data;