Files
danak-console/src/pages/service/DetailService.tsx
T
hamid zarghami 7a4e8ecaa5 titles
2025-02-26 14:57:11 +03:30

228 lines
14 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { FC, Fragment } from 'react'
import { useTranslation } from 'react-i18next'
import Button from '../../components/Button'
import Rate from 'rc-rate'
import ServiceImages from './components/ServiceImages'
import Input from '../../components/Input'
import Textarea from '../../components/Textarea'
import AvatarImage from '../../assets/images/Avatar.png'
import ServiceHeader from './components/ServiceHeader'
import { useGetDetailService } from './hooks/useServiceData'
import { useParams } from 'react-router-dom'
import PageLoading from '../../components/PageLoading'
import moment from 'moment-jalaali'
import { useGetAds } from '../ads/hooks/useAdsData'
import { AdsDisplayLocation } from '../ads/types/AdsTypes'
const DetailService: FC = () => {
const { id } = useParams()
const { t } = useTranslation('global')
const getAdsLeft = useGetAds(AdsDisplayLocation.SINGLE_SERVICE_PAGE)
const getDetailService = useGetDetailService(id ? id : '')
return (
<div className='w-full flex gap-6 mt-4'>
{
getDetailService.isPending ?
<PageLoading />
:
<Fragment>
<div className='flex-1 max-w-full'>
<ServiceHeader data={getDetailService?.data?.data?.danakService} />
<div className='mt-8 flex overflowX justify-between items-center xl:gap-8 gap-5'>
<div className='bg-white flex xl:min-w-max min-w-[127px] flex-1 flex-col justify-center items-center h-[109px] rounded-2xl py-6 px-4'>
<div className='text-description xl:text-xs text-[11px]'>
{t('service.company_develop')}
</div>
<div className='mt-3 text-sm'>
{t('service.company_danak')}
</div>
</div>
<div className='bg-white flex xl:min-w-max min-w-[127px] flex-1 flex-col justify-center items-center h-[109px] rounded-2xl py-6 px-4'>
<div className='text-description xl:text-xs text-[11px]'>
{t('service.user_count')}
</div>
<div className='mt-3 text-sm'>
+{getDetailService?.data?.data?.danakService?.userCount}
</div>
</div>
<div className='bg-white flex xl:min-w-max min-w-[127px] flex-1 flex-col justify-center items-center h-[109px] rounded-2xl py-6 px-4'>
<div className='text-description xl:text-xs text-[11px]'>
{t('service.year_make')}
</div>
<div className='mt-3 text-sm'>
{moment(getDetailService?.data?.data?.danakService?.createDate, 'jYYYY-jMM-jDD').format('jYYYY')}
</div>
</div>
<div className='bg-white flex xl:min-w-max min-w-[127px] flex-1 flex-col justify-center items-center h-[109px] rounded-2xl py-6 px-4'>
<div className='text-description xl:text-xs text-[11px]'>
{t('service.lang_app')}
</div>
<div className='mt-3 text-sm'>
{getDetailService?.data?.data?.danakService?.serviceLanguage === 'fa' ? t('service.persian') : t('service.english')}
</div>
</div>
<div className='bg-white flex xl:min-w-max min-w-[127px] flex-1 flex-col justify-center items-center h-[109px] rounded-2xl py-6 px-4'>
<div className='text-description xl:text-xs text-[11px]'>
{t('service.score')}
</div>
<div className='mt-3 dltr flex gap-1 text-sm'>
<Rate
count={5}
style={{ fontSize: 15 }}
value={4}
disabled
/>
</div>
</div>
</div>
<ServiceImages images={getDetailService?.data?.data?.danakService?.images} />
<div className='mt-8 bg-white p-6 rounded-3xl'>
<div>
{t('service.compelete_description')}
</div>
<p dangerouslySetInnerHTML={{ __html: getDetailService.data?.data?.danakService?.metaDescription }} className='text-[11px] mt-4 leading-6'>
</p>
</div>
<div className='mt-8 flex xl:flex-row flex-col gap-8 items-start'>
<div className='bg-white p-6 rounded-3xl xl:w-[360px] w-full'>
<div>
{t('service.submit_comment')}
</div>
<div className='text-xs mt-4'>
{t('service.hint_comment')}
</div>
<div className='mt-6 text-description text-sm'>
<div>
{t('service.score')}
</div>
<div className='mt-2 dltr flex justify-end'>
<Rate
count={5}
style={{ fontSize: 22 }}
/>
</div>
<div className='mt-6'>
<Input
label={t('service.title')}
placeholder={t('service.enter_title_comment')}
/>
</div>
<div className='mt-6'>
<Textarea
label={t('service.your_comment')}
placeholder={t('service.write_your_comment')}
/>
</div>
<div className='mt-6'>
<Button
label={t('service.submit_comment')}
/>
</div>
</div>
</div>
<div className='flex-1 max-w-full bg-white p-6 rounded-3xl'>
<div className='text-sm'>
{t('service.users_comments')}
</div>
<div className='mt-5 border border-border rounded-3xl p-6'>
<div className='flex gap-2 items-center'>
<img src={AvatarImage} className='size-6 rounded-full object-cover' />
<div className='text-description text-xs'>
فروغ براتی
</div>
</div>
<div className='mt-4 flex justify-between'>
<div className='text-sm max-w-[70%] truncate'>
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ
</div>
<div className='text-xs text-description'>
۳ روز پیش
</div>
</div>
<div className='mt-2'>
<Rate
disabled
value={5}
count={5}
style={{ fontSize: 14 }}
/>
</div>
<div className='mt-4 text-[11px] leading-6'>
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را ...
</div>
</div>
<div className='mt-5 border border-border rounded-3xl p-6'>
<div className='flex gap-2 items-center'>
<img src={AvatarImage} className='size-6 rounded-full object-cover' />
<div className='text-description text-xs'>
فروغ براتی
</div>
</div>
<div className='mt-4 flex justify-between'>
<div className='text-sm max-w-[70%] truncate'>
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ
</div>
<div className='text-xs text-description'>
۳ روز پیش
</div>
</div>
<div className='mt-2'>
<Rate
disabled
value={5}
count={5}
style={{ fontSize: 14 }}
/>
</div>
<div className='mt-4 text-[11px] leading-6'>
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را ...
</div>
</div>
</div>
</div>
</div>
{
getAdsLeft.isSuccess && getAdsLeft.data.data.ads[0] &&
<a href={getAdsLeft.data?.data?.ads[0].link} target='_blank' className='bg-white w-sidebar h-fit hidden xl:block rounded-3xl overflow-hidden sticky top-4'>
<img
src={getAdsLeft.data.data.ads[0].imageUrl}
className='w-full backdrop-blur-[100px] h-[550px] object-cover'
/>
<div className='absolute flex items-center px-4 w-full bottom-0 h-[86px] bg-black bg-opacity-5 backdrop-blur-[14px]'>
<div className='max-w-[80%] text-sm leading-6 text-white'>
{getAdsLeft.data.data.ads[0].title}
</div>
</div>
</a>
}
</Fragment>
}
</div>
)
}
export default DetailService