transger dsc to admin
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import { FC, SelectHTMLAttributes } from 'react'
|
import { FC, SelectHTMLAttributes } from 'react'
|
||||||
import { clx } from '../helpers/utils'
|
import { clx } from '../helpers/utils'
|
||||||
|
import { ArrowDown2 } from 'iconsax-react'
|
||||||
|
|
||||||
export type ItemsSelectType = {
|
export type ItemsSelectType = {
|
||||||
value: string,
|
value: string,
|
||||||
@@ -23,7 +24,7 @@ const Select: FC<Props> = (props: Props) => {
|
|||||||
</label>
|
</label>
|
||||||
}
|
}
|
||||||
<select {...props} className={clx(
|
<select {...props} className={clx(
|
||||||
'w-full text-black block border border-border px-2.5 h-10 text-sm rounded-2.5 bg-gray',
|
'w-full text-black block border appearance-none border-border px-2.5 h-10 text-sm rounded-2.5 bg-gray',
|
||||||
props.className,
|
props.className,
|
||||||
props.label && 'mt-1'
|
props.label && 'mt-1'
|
||||||
)}>
|
)}>
|
||||||
@@ -41,6 +42,7 @@ const Select: FC<Props> = (props: Props) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
</select>
|
</select>
|
||||||
|
<ArrowDown2 size={16} color='black' className='absolute z-0 top-3 left-2' />
|
||||||
{
|
{
|
||||||
props.error_text && props.error_text !== '' ?
|
props.error_text && props.error_text !== '' ?
|
||||||
<div className='text-xs text-right text-red-600 mt-2 mr-2 font-medium'>
|
<div className='text-xs text-right text-red-600 mt-2 mr-2 font-medium'>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { FC } from 'react'
|
|||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
import StatusWithText from '../../components/StatusWithText'
|
import StatusWithText from '../../components/StatusWithText'
|
||||||
import { useNavigate } from 'react-router-dom'
|
import { useNavigate } from 'react-router-dom'
|
||||||
|
import { ArrowLeft2 } from 'iconsax-react'
|
||||||
|
|
||||||
const AnnouncementDetail: FC = () => {
|
const AnnouncementDetail: FC = () => {
|
||||||
|
|
||||||
@@ -14,8 +15,9 @@ const AnnouncementDetail: FC = () => {
|
|||||||
<div>
|
<div>
|
||||||
{t('announcement.text_announcement')}
|
{t('announcement.text_announcement')}
|
||||||
</div>
|
</div>
|
||||||
<div onClick={() => navigate(-1)} className='text-xs font-extralight'>
|
<div onClick={() => navigate(-1)} className='text-xs flex gap-0.5 items-center font-extralight'>
|
||||||
{t('back')}
|
{t('back')}
|
||||||
|
<ArrowLeft2 size={12} color='black' />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -26,14 +26,14 @@ const DanakLearning: FC = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='text-xs'>
|
<div className='text-xs'>
|
||||||
<div>
|
<div className='leading-5'>
|
||||||
لورم ایپسوم متن ساختگی با تولید سادگی
|
لورم ایپسوم متن ساختگی با تولید سادگی
|
||||||
</div>
|
</div>
|
||||||
<div className='flex gap-1 mt-2'>
|
<div className='flex gap-1 text-[11px] mt-3 text-description'>
|
||||||
<div>دیزاین ,</div>
|
<div>دیزاین ,</div>
|
||||||
<div>۲۴ دقیقه</div>
|
<div>۲۴ دقیقه</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div className='text-description text-[11px] mt-2'>
|
||||||
آذر ماه 1403
|
آذر ماه 1403
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -41,53 +41,49 @@ const MyServices: FC = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='flex flex-wrap xl:gap-6 gap-4 items-center mt-8'>
|
<div className='flex flex-wrap xl:gap-6 gap-4 items-center mt-8'>
|
||||||
<Link to={Pages.services.detail + '1'}>
|
|
||||||
<div className='flex-1 min-w-[40%] xl:min-w-[20%] bg-white rounded-3xl p-6'>
|
<Link to={Pages.services.detail + '1'} className='flex-1 min-w-[40%] xl:min-w-[20%] bg-white rounded-3xl p-6'>
|
||||||
<ServiceSection
|
<ServiceSection
|
||||||
|
/>
|
||||||
|
<div className='mt-6 flex gap-1 items-center'>
|
||||||
|
<StatusCircle
|
||||||
|
color='#00BA4B'
|
||||||
/>
|
/>
|
||||||
<div className='mt-6 flex gap-1 items-center'>
|
<div className='text-xs text-description'>1 {t('service.active_menu')}</div>
|
||||||
<StatusCircle
|
</div>
|
||||||
color='#00BA4B'
|
|
||||||
/>
|
</Link>
|
||||||
<div className='text-xs text-description'>1 {t('service.active_menu')}</div>
|
<Link to={Pages.services.detail + '1'} className='flex-1 min-w-[40%] xl:min-w-[20%] bg-white rounded-3xl p-6'>
|
||||||
</div>
|
<ServiceSection
|
||||||
|
/>
|
||||||
|
<div className='mt-6 flex gap-1 items-center'>
|
||||||
|
<StatusCircle
|
||||||
|
color='#00BA4B'
|
||||||
|
/>
|
||||||
|
<div className='text-xs text-description'>1 {t('service.active_menu')}</div>
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
<Link to={Pages.services.detail + '1'}>
|
<Link to={Pages.services.detail + '1'} className='flex-1 min-w-[40%] xl:min-w-[20%] bg-white rounded-3xl p-6'>
|
||||||
<div className='flex-1 min-w-[40%] xl:min-w-[20%] bg-white rounded-3xl p-6'>
|
<ServiceSection
|
||||||
<ServiceSection
|
/>
|
||||||
|
<div className='mt-6 flex gap-1 items-center'>
|
||||||
|
<StatusCircle
|
||||||
|
color='#00BA4B'
|
||||||
/>
|
/>
|
||||||
<div className='mt-6 flex gap-1 items-center'>
|
<div className='text-xs text-description'>1 {t('service.active_menu')}</div>
|
||||||
<StatusCircle
|
|
||||||
color='#00BA4B'
|
|
||||||
/>
|
|
||||||
<div className='text-xs text-description'>1 {t('service.active_menu')}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
<Link to={Pages.services.detail + '1'}>
|
|
||||||
<div className='flex-1 min-w-[40%] xl:min-w-[20%] bg-white rounded-3xl p-6'>
|
<Link to={Pages.services.detail + '1'} className='flex-1 min-w-[40%] xl:min-w-[20%] bg-white rounded-3xl p-6'>
|
||||||
<ServiceSection
|
<ServiceSection
|
||||||
|
/>
|
||||||
|
<div className='mt-6 flex gap-1 items-center'>
|
||||||
|
<StatusCircle
|
||||||
|
color='#00BA4B'
|
||||||
/>
|
/>
|
||||||
<div className='mt-6 flex gap-1 items-center'>
|
<div className='text-xs text-description'>1 {t('service.active_menu')}</div>
|
||||||
<StatusCircle
|
|
||||||
color='#00BA4B'
|
|
||||||
/>
|
|
||||||
<div className='text-xs text-description'>1 {t('service.active_menu')}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</Link>
|
|
||||||
<Link to={Pages.services.detail + '1'}>
|
|
||||||
<div className='flex-1 min-w-[40%] xl:min-w-[20%] bg-white rounded-3xl p-6'>
|
|
||||||
<ServiceSection
|
|
||||||
/>
|
|
||||||
<div className='mt-6 flex gap-1 items-center'>
|
|
||||||
<StatusCircle
|
|
||||||
color='#00BA4B'
|
|
||||||
/>
|
|
||||||
<div className='text-xs text-description'>1 {t('service.active_menu')}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -45,104 +45,104 @@ const Setting: FC = () => {
|
|||||||
|
|
||||||
<div className='flex xl:flex-row flex-col gap-6 text-sm mt-8'>
|
<div className='flex xl:flex-row flex-col gap-6 text-sm mt-8'>
|
||||||
<div className='flex-1 border border-border px-4 rounded-2xl min-h-14 items-center flex justify-between'>
|
<div className='flex-1 border border-border px-4 rounded-2xl min-h-14 items-center flex justify-between'>
|
||||||
<div className='xl:text-sm text-xs'>
|
<div className='xl:text-[13px] text-xs'>
|
||||||
{t('setting.notification_announcement')}
|
{t('setting.notification_announcement')}
|
||||||
</div>
|
</div>
|
||||||
<div className='flex xl:gap-4 gap-2'>
|
<div className='flex xl:gap-4 gap-2'>
|
||||||
<div className='flex gap-1 text-xs items-center text-description'>
|
<div className='flex gap-2 text-xs items-center text-description'>
|
||||||
|
<div>
|
||||||
|
{t('setting.email')}
|
||||||
|
</div>
|
||||||
<SwitchComponent
|
<SwitchComponent
|
||||||
active={true}
|
active={true}
|
||||||
onChange={() => { }}
|
onChange={() => { }}
|
||||||
/>
|
/>
|
||||||
<div>
|
|
||||||
{t('setting.email')}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className='flex gap-1 text-xs items-center text-description'>
|
<div className='flex gap-2 text-xs items-center text-description'>
|
||||||
|
<div>
|
||||||
|
{t('setting.sms')}
|
||||||
|
</div>
|
||||||
<SwitchComponent
|
<SwitchComponent
|
||||||
active={false}
|
active={false}
|
||||||
onChange={() => { }}
|
onChange={() => { }}
|
||||||
/>
|
/>
|
||||||
<div>
|
|
||||||
{t('setting.sms')}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='flex-1 border border-border px-4 rounded-2xl min-h-14 items-center flex justify-between'>
|
<div className='flex-1 border border-border px-4 rounded-2xl min-h-14 items-center flex justify-between'>
|
||||||
<div className='xl:text-sm text-xs'>
|
<div className='xl:text-[13px] text-xs'>
|
||||||
{t('setting.notification_announcement')}
|
{t('setting.notification_announcement')}
|
||||||
</div>
|
</div>
|
||||||
<div className='flex xl:gap-4 gap-2'>
|
<div className='flex xl:gap-4 gap-2'>
|
||||||
<div className='flex gap-1 text-xs items-center text-description'>
|
<div className='flex gap-2 text-xs items-center text-description'>
|
||||||
|
<div>
|
||||||
|
{t('setting.email')}
|
||||||
|
</div>
|
||||||
<SwitchComponent
|
<SwitchComponent
|
||||||
active={true}
|
active={true}
|
||||||
onChange={() => { }}
|
onChange={() => { }}
|
||||||
/>
|
/>
|
||||||
<div>
|
|
||||||
{t('setting.email')}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className='flex gap-1 text-xs items-center text-description'>
|
<div className='flex gap-2 text-xs items-center text-description'>
|
||||||
|
<div>
|
||||||
|
{t('setting.sms')}
|
||||||
|
</div>
|
||||||
<SwitchComponent
|
<SwitchComponent
|
||||||
active={false}
|
active={false}
|
||||||
onChange={() => { }}
|
onChange={() => { }}
|
||||||
/>
|
/>
|
||||||
<div>
|
|
||||||
{t('setting.sms')}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='flex xl:flex-row flex-col gap-6 text-sm mt-6'>
|
<div className='flex xl:flex-row flex-col gap-6 text-sm mt-6'>
|
||||||
<div className='flex-1 border border-border px-4 rounded-2xl min-h-14 items-center flex justify-between'>
|
<div className='flex-1 border border-border px-4 rounded-2xl min-h-14 items-center flex justify-between'>
|
||||||
<div className='xl:text-sm text-xs'>
|
<div className='xl:text-[13px] text-xs'>
|
||||||
{t('setting.notification_announcement')}
|
{t('setting.notification_announcement')}
|
||||||
</div>
|
</div>
|
||||||
<div className='flex xl:gap-4 gap-2'>
|
<div className='flex xl:gap-4 gap-2'>
|
||||||
<div className='flex gap-1 text-xs items-center text-description'>
|
<div className='flex gap-2 text-xs items-center text-description'>
|
||||||
|
<div>
|
||||||
|
{t('setting.email')}
|
||||||
|
</div>
|
||||||
<SwitchComponent
|
<SwitchComponent
|
||||||
active={true}
|
active={true}
|
||||||
onChange={() => { }}
|
onChange={() => { }}
|
||||||
/>
|
/>
|
||||||
<div>
|
|
||||||
{t('setting.email')}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className='flex gap-1 text-xs items-center text-description'>
|
<div className='flex gap-2 text-xs items-center text-description'>
|
||||||
|
<div>
|
||||||
|
{t('setting.sms')}
|
||||||
|
</div>
|
||||||
<SwitchComponent
|
<SwitchComponent
|
||||||
active={false}
|
active={false}
|
||||||
onChange={() => { }}
|
onChange={() => { }}
|
||||||
/>
|
/>
|
||||||
<div>
|
|
||||||
{t('setting.sms')}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='flex-1 border border-border px-4 rounded-2xl min-h-14 items-center flex justify-between'>
|
<div className='flex-1 border border-border px-4 rounded-2xl min-h-14 items-center flex justify-between'>
|
||||||
<div className='xl:text-sm text-xs'>
|
<div className='xl:text-[13px] text-xs'>
|
||||||
{t('setting.notification_announcement')}
|
{t('setting.notification_announcement')}
|
||||||
</div>
|
</div>
|
||||||
<div className='flex xl:gap-4 gap-2'>
|
<div className='flex xl:gap-4 gap-2'>
|
||||||
<div className='flex gap-1 text-xs items-center text-description'>
|
<div className='flex gap-2 text-xs items-center text-description'>
|
||||||
|
<div>
|
||||||
|
{t('setting.email')}
|
||||||
|
</div>
|
||||||
<SwitchComponent
|
<SwitchComponent
|
||||||
active={true}
|
active={true}
|
||||||
onChange={() => { }}
|
onChange={() => { }}
|
||||||
/>
|
/>
|
||||||
<div>
|
|
||||||
{t('setting.email')}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className='flex gap-1 text-xs items-center text-description'>
|
<div className='flex gap-2 text-xs items-center text-description'>
|
||||||
|
<div>
|
||||||
|
{t('setting.sms')}
|
||||||
|
</div>
|
||||||
<SwitchComponent
|
<SwitchComponent
|
||||||
active={false}
|
active={false}
|
||||||
onChange={() => { }}
|
onChange={() => { }}
|
||||||
/>
|
/>
|
||||||
<div>
|
|
||||||
{t('setting.sms')}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+6
-10
@@ -7,18 +7,14 @@ import { Link } from 'react-router-dom'
|
|||||||
import { Pages } from '../config/Pages'
|
import { Pages } from '../config/Pages'
|
||||||
import Notifications from '../pages/notification/Notification'
|
import Notifications from '../pages/notification/Notification'
|
||||||
import { useSharedStore } from './store/sharedStore'
|
import { useSharedStore } from './store/sharedStore'
|
||||||
import { clx } from '../helpers/utils'
|
|
||||||
|
|
||||||
const Header: FC = () => {
|
const Header: FC = () => {
|
||||||
|
|
||||||
const { t } = useTranslation('global')
|
const { t } = useTranslation('global')
|
||||||
const { setOpenSidebar, openSidebar, hasSubMenu } = useSharedStore()
|
const { setOpenSidebar, openSidebar } = useSharedStore()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={clx(
|
<div className='fixed z-10 right-4 left-4 xl:right-[285px] top-4 xl:h-16 h-12 flex items-center px-6 bg-white justify-between rounded-[32px] xl:w-[calc(100%-305px)]'>
|
||||||
'fixed z-10 right-4 left-4 xl:right-[285px] top-4 xl:h-16 h-12 flex items-center px-6 bg-white justify-between rounded-[32px] xl:w-[calc(100%-305px)]',
|
|
||||||
hasSubMenu && 'xl:right-[320px] xl:w-[calc(100%-345px)] left-4',
|
|
||||||
)}>
|
|
||||||
|
|
||||||
<div className='min-w-[270px] hidden xl:block'>
|
<div className='min-w-[270px] hidden xl:block'>
|
||||||
<Input
|
<Input
|
||||||
@@ -30,14 +26,14 @@ const Header: FC = () => {
|
|||||||
<HambergerMenu size={24} color='black' />
|
<HambergerMenu size={24} color='black' />
|
||||||
</div>
|
</div>
|
||||||
{/* <img src={LogoImage} className='h-6 xl:hidden block absolute right-0 left-0 mx-auto' /> */}
|
{/* <img src={LogoImage} className='h-6 xl:hidden block absolute right-0 left-0 mx-auto' /> */}
|
||||||
<div className='flex xl:gap-6 gap-3 items-center'>
|
<div className='flex xl:gap-6 gap-4 items-center'>
|
||||||
<Element3 color='black' className='xl:size-[18px] size-4' />
|
<Element3 color='black' className='xl:size-[18px] size-[17px]' />
|
||||||
<Link to={Pages.wallet}>
|
<Link to={Pages.wallet}>
|
||||||
<Wallet className='xl:size-[18px] size-4' color='black' />
|
<Wallet className='xl:size-[18px] size-[17px]' color='black' />
|
||||||
</Link>
|
</Link>
|
||||||
<Notifications />
|
<Notifications />
|
||||||
<div className='flex gap-2 items-center'>
|
<div className='flex gap-2 items-center'>
|
||||||
<div className='size-7 rounded-full bg-description overflow-hidden'>
|
<div className='size-6 rounded-full bg-description overflow-hidden'>
|
||||||
<Link to={Pages.profile}>
|
<Link to={Pages.profile}>
|
||||||
<img src={AvatarImage} className='size-full object-cover' />
|
<img src={AvatarImage} className='size-full object-cover' />
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
Reference in New Issue
Block a user