check responsive & page dashboard user account & turns & transactions & comments

This commit is contained in:
Ehsan
2024-09-03 03:04:55 +03:30
parent bb154ac63f
commit 13cc7796c3
55 changed files with 1887 additions and 92 deletions
+3 -3
View File
@@ -7,12 +7,12 @@ import doctors from '@/data/doctors.json';
import Date from '@/components/booking/date';
import BookingPage from '@/components/booking';
import RegisterPage from '@/components/register';
import SetCodePage from '@/components/register/SetCodePage';
import Paying from '@/components/booking/paying';
import Detail from '@/components/booking/detail';
import FailedPay from '@/components/booking/failedPay';
import LogInPage from '@/components/register/LogInPage';
import SuccessPay from '@/components/booking/successPay';
import FailedPay from '@/components/booking/failedPay';
import Detail from '@/components/booking/detail';
import SetCodePage from '@/components/register/SetCodePage';
function Booking({ params: { slug } }) {
+32
View File
@@ -0,0 +1,32 @@
import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow } from '@mui/material'
function CustomTable({ tableHead, centerTable, children }) {
return (
<TableContainer className='!shadow-none !rounded-[8px] !border !border-solid !border-[#DBDBDB]'>
<Table className='!rounded-[8px] !overflow-hidden'>
<TableHead>
<TableRow
className='!bg-[#EFEFEF]'
>
{tableHead.map((item, idx) => (
<TableCell
key={idx}
className={`
!text-[#616161] !text-[14px] !font-normal !py-[10px] !px-[18px]
${centerTable.find(i => i === idx) ? '!text-center' : '!text-start'}
`}
>
{item}
</TableCell>
))}
</TableRow>
</TableHead>
<TableBody>
{children}
</TableBody>
</Table>
</TableContainer>
)
}
export default CustomTable
@@ -1,7 +1,8 @@
import EditGrayA from "@/components/icons/EditGrayA"
import EditOrangeA from "@/components/icons/EditOrangeA"
import { Button, TextField } from "@mui/material"
function EditField({ changeData, data, name }) {
function EditField({ changeData, data, name, iconGray }) {
return (
<div className="relative w-full">
<TextField
@@ -18,7 +19,7 @@ function EditField({ changeData, data, name }) {
},
'& .MuiInputBase-input': { padding: '12.5px 14px' },
'& .MuiInputBase-root': { borderRadius: '6px !important' },
'& .MuiOutlinedInput-notchedOutline': { border: '1px solid #E9ECEF !important' },
'& .MuiOutlinedInput-notchedOutline': { border: '1px solid #D7D7D7 !important' },
".Mui-focused": {
'& .MuiOutlinedInput-notchedOutline': {
border: '1px solid #5559CE !important',
@@ -33,7 +34,11 @@ function EditField({ changeData, data, name }) {
changeData(!data.isEdit, 'isEdit', name)
}}
>
<EditOrangeA />
{iconGray ? (
<EditGrayA />
) : (
<EditOrangeA />
)}
</Button>
</div>
)
+2 -16
View File
@@ -7,7 +7,7 @@ function a11yProps(index) {
};
};
function Tabs({ value, handleChange, listTab, isSm }) {
function Tabs({ value, handleChange, listTab, isSm, style }) {
return (
<Box
className="!border-none"
@@ -16,24 +16,10 @@ function Tabs({ value, handleChange, listTab, isSm }) {
value={value}
onChange={handleChange}
sx={{
...style,
'.MuiTabs-fixed': {
overflow: 'auto !important'
},
'.MuiTabs-indicator': {
height: isSm ? '4px' : '2px',
borderRadius: isSm ? '8px' : '10px',
background: '#F17732'
},
'& .MuiTabs-flexContainer': {
borderBottom: isSm ? '2px solid #EFEFEF' : '',
marginBottom: isSm ? '1px' : ''
},
'& .mui-11pdt05-MuiButtonBase-root-MuiTab-root.Mui-selected': {
color: '#F17732 !important'
},
'& .MuiButtonBase-root.Mui-selected': {
color: '#F17732 !important'
}
}}
>
{listTab.map((item, idx) => (
+17
View File
@@ -20,6 +20,23 @@ function DateTime({ doctor, setStep, setIsError, locateVisit }) {
<div className="w-full">
<Tabs
isSm={true}
style={{
'.MuiTabs-indicator': {
height: '4px',
borderRadius: '8px',
background: '#F17732'
},
'& .MuiTabs-flexContainer': {
borderBottom: '2px solid #EFEFEF',
marginBottom: '1px'
},
'& .mui-11pdt05-MuiButtonBase-root-MuiTab-root.Mui-selected': {
color: '#F17732 !important'
},
'& .MuiButtonBase-root.Mui-selected': {
color: '#F17732 !important'
}
}}
value={value}
listTab={listTab}
handleChange={handleChange}
@@ -27,7 +27,17 @@ function AutoCompleteSelect({ list, isError, updateData, name, label }) {
},
'& .MuiOutlinedInput-notchedOutline': {
border: isError ? '1px solid red' : ''
},
'& .MuiOutlinedInput-notchedOutline': {
border: '1px solid #D7D7D7'
},
'& .MuiInput-underline:hover:not(.Mui-disabled):before, .MuiOutlinedInput-notchedOutline': {
borderColor: "#D7D7D7 !important"
},
'& .muirtl-1kiro5a-MuiInputBase-root-MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline': {
border: '1px solid #5559CE !important'
}
}}
renderInput={params =>
<TextField
-18
View File
@@ -1,18 +0,0 @@
import DashboardPage from '@/components/dashboard';
import Layout from '@/components/layout';
import user from '@/data/userData.json';
function Dashboard() {
return (
<Layout
user={user.data}
title='داشبورد'
name='dashboard'
isSidebar={true}
>
<DashboardPage />
</Layout>
)
}
export default Dashboard
+13
View File
@@ -0,0 +1,13 @@
import userData from '@/data/userData.json';
import DashboardPage from "@/components/dashboard";
import UserAccountPage from "@/components/dashboard/userAccount/UserAccount";
function UserAccount() {
return (
<DashboardPage user={userData.data} >
<UserAccountPage user={userData.data} />
</DashboardPage>
)
}
export default UserAccount
+4
View File
@@ -171,6 +171,10 @@ html {
background: url(../public/assets/images/banner-about.png);
}
.bg-head-dashboard {
background: url(../public/assets/images/bg-head-dashboard.png);
}
.bg-banner-home::after,
.bg-banner-stroke::after {
content: "";
+1 -1
View File
@@ -1,5 +1,5 @@
import AutoCompleteSelect from "@/app/component/element/AutoCompleteSelect";
import EditField from "./EditField";
import EditField from "../../../app/component/EditField";
import Content from "./Content";
const bime = [
+1 -1
View File
@@ -28,7 +28,7 @@ function SuccessPay({ setStep }) {
</div>
<span className="w-full block h-px bg-[#EFEFEF]"></span>
</div>
<Link href='/dashboard'>
<Link href='/dashboard/user-account'>
<Button
variant="text"
className="!flex !items-center !justify-center !gap-[4px]"
+13
View File
@@ -22,6 +22,19 @@ function ClinicPage({ data, doctors }) {
return (
<div className="pt-[40px] sm:pt-[70px] md:pt-[100px] lg:pt-[136px] mt-[40px] padding-responsive">
<Tabs
style={{
'.MuiTabs-indicator': {
height: '2px',
borderRadius: '10px',
background: '#F17732'
},
'& .mui-11pdt05-MuiButtonBase-root-MuiTab-root.Mui-selected': {
color: '#F17732 !important'
},
'& .MuiButtonBase-root.Mui-selected': {
color: '#F17732 !important'
}
}}
value={value}
listTab={listTab}
handleChange={handleChange}
+10 -14
View File
@@ -1,20 +1,16 @@
import React from 'react'
import Layout from '../layout'
function DashboardPage() {
function DashboardPage({ user, children }) {
return (
<div className=''>
DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage
DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage
DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage
DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage
DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage
DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage
DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage
DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage
DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage
DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage
DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage DashboardPage
</div>
<Layout
user={user}
title='داشبورد'
name='dashboard'
isSidebar={true}
>
{children}
</Layout>
)
}
@@ -0,0 +1,62 @@
'use client'
import { useState } from "react";
// Tabs
import Turns from "./tabs/turns";
import DetailUser from "./tabs/detailUser";
import Comments from "./tabs/comments";
import Messages from "./tabs/messages";
import Tabs from "@/app/component/Tabs";
import Transactions from "./tabs/transactions";
const listTab = ['حساب کاربری', 'نوبت های من', 'تراکنش های من', 'نظرات من', 'پیام ها'];
function ContentTabs({ user }) {
const [value, setValue] = useState(0);
const handleChange = (event, newValue) => setValue(newValue);
const components = [
<DetailUser user={user} />,
<Turns user={user} />,
<Transactions user={user} />,
<Comments user={user} />,
<Messages />
]
return (
<div className="mt-[24px] pt-[12px] pb-[24px] w-full bg-[0px_1px_24.8px_0px_rgba(204,_204,_204,_0.18)] rounded-[8px] bg-[#FFF]">
<Tabs
style={{
'.MuiTabs-indicator': {
height: '2px',
borderRadius: '16px',
background: '#5559CE',
},
'& .MuiTabs-scroller': {
borderBottom: '1px solid #EFEFEF',
},
'& .MuiTabs-flexContainer': {
paddingRight: '15px',
paddingLeft: '15px',
},
'& .mui-11pdt05-MuiButtonBase-root-MuiTab-root.Mui-selected': {
color: '#5559CE !important'
},
'& .MuiButtonBase-root.Mui-selected': {
color: '#5559CE !important'
}
}}
value={value}
color='#5559CE'
listTab={listTab}
handleChange={handleChange}
/>
<div className="mt-[36px] px-[24px]">
{components[value]}
</div>
</div>
)
}
export default ContentTabs
+51
View File
@@ -0,0 +1,51 @@
import CalendarAdD from '@/components/icons/CalendarAdD'
import CardTickD from '@/components/icons/CardTickD'
import { Button } from '@mui/material'
import Image from 'next/image'
import React from 'react'
function Head({ user }) {
return (
<div className='flex w-full items-stretch justify-center gap-[24px]'>
<div className='bg-head-dashboard rounded-[8px] relative w-full !bg-no-repeat !bg-cover py-[20px] px-[24px] !bg-center flex items-center'>
<div className='flex flex-col justify-start items-start gap-[8px]'>
<p className='text-[3B3B3B] text-[16px] font-bold'>{user.name} <span className='text-[#3B3B3B] text-[16px] font-normal'>عزیز!</span></p>
<p className='text-[#616161] text-[12px] font-normal'>در این قسمت میتوانید اطلاعات حساب خود و نوبت های گرفته شده<br /> را مدیریت کنید. </p>
<Button
variant='contained'
className='!bg-[#5559CE] !rounded-[4px] !py-[4px] !px-[8px] !text-[#EFEFEF] !text-[12px] !font-medium !leading-[22px]'
>مشاهده اطلاعات</Button>
</div>
<Image
className='absolute bottom-0 left-[72px] h-[calc(100%_+_16px)]'
src='/assets/images/male-doctor-head-dashboard.png'
alt='doctor'
height={175}
width={171}
/>
</div>
<div className='flex flex-col items-start justify-start gap-[12px]'>
<div className='py-[10px] flex items-center justify-start gap-[12px] pl-[20px] px-[8px] bg-[#FFF] bg-[0px_1px_24.8px_0px_rgba(204,_204,_204,_0.18)] rounded-[8px]'>
<div className='bg-[#5559CE] rounded-full p-[8px]'>
<CardTickD />
</div>
<div className='flex flex-col gap-[8px] items-start justify-start'>
<p className='text-[#3B3B3B] text-nowrap text-[16px] font-medium'>{user.total_transactions} <span className='text-[12px]'>تومان</span></p>
<p className='text-[#616161] text-nowrap text-[14px] font-normal'>مجموع تراکنش ها</p>
</div>
</div>
<div className='py-[10px] flex items-center justify-start gap-[12px] pl-[20px] px-[8px] bg-[#FFF] bg-[0px_1px_24.8px_0px_rgba(204,_204,_204,_0.18)] rounded-[8px]'>
<div className='bg-[#FFC051] rounded-full p-[8px]'>
<CalendarAdD />
</div>
<div className='flex flex-col gap-[8px] items-start justify-start'>
<p className='text-[#3B3B3B] text-nowrap text-[16px] font-medium'>{user.number_of_turns}</p>
<p className='text-[#616161] text-nowrap text-[14px] font-normal'>تعداد نوبت های شما</p>
</div>
</div>
</div>
</div>
)
}
export default Head
@@ -0,0 +1,13 @@
import ContentTabs from "./ContentTabs"
import Head from "./Head"
function UserAccountPage({ user }) {
return (
<div className='w-full'>
<Head user={user} />
<ContentTabs user={user} />
</div>
)
}
export default UserAccountPage
@@ -0,0 +1,22 @@
import Image from "next/image"
function Comment({ data }) {
return (
<li
className="flex flex-col gap-[8px] w-full"
>
<div className="flex items-start justify-between w-full">
<div className="flex items-center justify-start gap-[16px]">
<Image
src={data.profile}
alt="profile"
height={87}
width={87}
/>
</div>
</div>
</li>
)
}
export default Comment
@@ -0,0 +1,16 @@
import Comment from "./Comment"
function Comments({ user }) {
return (
<ul className="flex flex-col items-start justify-start">
{user.comments.map((item, idx) => (
<Comment
key={idx}
data={item}
/>
))}
</ul>
)
}
export default Comments
@@ -0,0 +1,17 @@
function Content({ isConfirmed, children, title }) {
return (
<div className='flex w-full flex-col items-start justify-start gap-[8px] sm:gap-[10px] md:gap-[13px] lg:gap-[16px]'>
<div className='flex min-h-[32px] items-center justify-start gap-[8px] md:gap-[6px] lg:gap-[4px]'>
<p className="text-[#525252] text-[14px] font-medium">{title}</p>
{isConfirmed && (
<p
className='py-[4px] md:py-[2px] leading-[8px] sm:leading-[14px] md:leading-[21px] lg:leading-[28px] px-[5px] bg-[#05BA58] rounded-[40px] text-[#FFF] text-[10px] md:text-[12px] font-normal'
>تایید شده</p>
)}
</div>
{children}
</div>
)
}
export default Content
@@ -0,0 +1,70 @@
import CalendarEdit from '@/components/icons/CalendarEdit';
import { convertToJalali } from '@/helper';
import { Button, Popover } from '@mui/material'
import { DatePicker } from 'jalaali-react-date-picker'
import React, { useState } from 'react'
function DateBirthday({ data, changeData }) {
const [anchorEl, setAnchorEl] = useState(null);
const handleClick = (event) => {
setAnchorEl(event.currentTarget);
};
const handleClose = () => {
setAnchorEl(null);
};
const open = Boolean(anchorEl);
const id = open ? 'simple-popover' : undefined;
return (
<div className='w-full'>
<div
className="relative w-full border cursor-pointer py-[15px] px-[16px] border-solid border-[#D7D7D7] rounded-[8px] h-[48px]"
onClick={handleClick}
>
<p className='text-[#7E7E7E] text-[14px] font-normal cursor-pointer'>{data.value}</p>
<Button
className="!absolute !left-[8px] !top-1/2 !-translate-y-1/2 !min-w-fit !p-1"
>
<CalendarEdit />
</Button>
</div>
<Popover
id={id}
open={open}
anchorEl={anchorEl}
onClose={handleClose}
anchorOrigin={{
vertical: 'bottom',
horizontal: 'right',
}}
transformOrigin={{
vertical: 'top',
horizontal: 'right',
}}
sx={{
'& .MuiPaper-root': {
padding: { xs: '12px 12px 0', sm: '24px 24px 0' },
background: '#FFF',
borderRadius: '16px',
border: '1px solid #E9ECEF',
boxShadow: '0px 2px 28.4px 0px rgba(112, 112, 112, 0.28)'
},
}}
>
<DatePicker
locale='fa'
onChange={e => {
changeData(convertToJalali(e._d), 'value', 'date_of_birth');
handleClose();
}}
/>
</Popover>
</div>
)
}
export default DateBirthday
@@ -0,0 +1,86 @@
import Content from './Content'
import EditField from '@/app/component/EditField'
import AutoCompleteSelect from '@/app/component/element/AutoCompleteSelect'
import DateBirthday from './DateBirthday'
import { insurance, gender, blood_group, marital_status, education, job } from "./listSelector";
function Form({ data, selected, changeData, updateSelect }) {
return (
<div className='grid grid-cols-2 gap-[24px]'>
<Content title='شماره موبایل' isConfirmed={true}>
<EditField iconGray={true} changeData={changeData} data={data?.phone} name='phone' />
</Content>
<Content title='کد ملی' isConfirmed={false}>
<EditField iconGray={true} changeData={changeData} data={data?.national_code} name='national_code' />
</Content>
<Content title='نام و نام خانوادگی' isConfirmed={false}>
<EditField iconGray={true} changeData={changeData} data={data?.name} name='name' />
</Content>
<Content title='جنسیت'>
<AutoCompleteSelect
updateData={updateSelect}
label='جنسیت'
name='gender'
list={gender}
/>
</Content>
<Content title='جنسیت'>
<DateBirthday data={data?.date_of_birth} isConfirmed={false} changeData={changeData} />
</Content>
<Content title='نام پدر' isConfirmed={false}>
<EditField iconGray={true} changeData={changeData} data={data?.father_name} name='father_name' />
</Content>
<Content title='نوع بیمه'>
<AutoCompleteSelect
updateData={updateSelect}
label='نوع بیمه'
name='insurance'
list={insurance}
/>
</Content>
<Content title='شماره بیمه' isConfirmed={false}>
<EditField iconGray={true} changeData={changeData} data={data?.insurance_number} name='insurance_number' />
</Content>
<Content title='گروه خونی'>
<AutoCompleteSelect
updateData={updateSelect}
label='گروه خونی'
name='blood_group'
list={blood_group}
/>
</Content>
<Content title='وضعیت تاهل'>
<AutoCompleteSelect
updateData={updateSelect}
label='وضعیت تاهل'
name='marital_status'
list={marital_status}
/>
</Content>
<Content title='تلفن منزل' isConfirmed={false}>
<EditField iconGray={true} changeData={changeData} data={data?.home_phone} name='home_phone' />
</Content>
<Content title='تحصیلات'>
<AutoCompleteSelect
updateData={updateSelect}
label='تحصیلات'
name='education'
list={education}
/>
</Content>
<Content title='شغل'>
<AutoCompleteSelect
updateData={updateSelect}
label='شغل'
name='job'
list={job}
/>
</Content>
<Content title='تلفن محل کار' isConfirmed={false}>
<EditField iconGray={true} changeData={changeData} data={data?.work_phone} name='work_phone' />
</Content>
</div>
)
}
export default Form
@@ -0,0 +1,56 @@
import { useState } from "react";
import Form from "./Form";
import { Button } from "@mui/material";
import ArrowLeftWhiteD from "@/components/icons/ArrowLeftWhiteD";
function DetailUser({ user }) {
const [data, setData] = useState({
phone: { value: user.phone, isEdit: false },
national_code: { value: user.national_code, isEdit: false },
name: { value: user.name, isEdit: false },
date_of_birth: { value: user.date_of_birth, isEdit: false },
father_name: { value: user.father_name, isEdit: false },
insurance_number: { value: user.insurance_number, isEdit: false },
home_phone: { value: user.home_phone, isEdit: false },
work_phone: { value: user.work_phone, isEdit: false },
});
const [selected, setSelected] = useState({
gender: '',
blood_group: '',
insurance: '',
marital_status: '',
education: '',
job: '',
});
const changeData = (value, type, name) =>
setData({
...data,
[name]: {
...data[name],
[type]: value
}
});
const updateSelect = (event, name) => setSelected({ ...selected, [name]: event.target.innerText })
return (
<div className="opacity-page">
<Form
data={data}
selected={selected}
changeData={changeData}
updateSelect={updateSelect}
/>
<Button
className="!gap-[4px] !mr-auto !text-nowrap !flex !mt-[48px] !flex-nowrap !py-[8px] !px-[24px] !bg-[#5559CE] !rounded-[4px] !text-[#EFEFEF] !text-[16px] !font-medium"
>
ثبت اطلاعات
<ArrowLeftWhiteD />
</Button>
</div>
)
}
export default DetailUser
@@ -0,0 +1,34 @@
export const gender = [
{ label: 'مرد', id: 10 },
{ label: 'زن', id: 20 }
];
export const blood_group = [
{ label: 'A+', id: 10 },
{ label: 'B+', id: 20 },
{ label: 'AB', id: 30 },
{ label: 'O+', id: 40 }
];
export const marital_status = [
{ label: 'متاهل', id: 10 },
{ label: 'مجرد', id: 20 }
]
export const education = [
{ label: 'دیپلم', id: 10 },
{ label: 'فوق دیپلم', id: 20 },
{ label: 'لیسانس', id: 30 },
{ label: 'کارشناسی ارشد', id: 40 }
]
export const job = [
{ label: 'آزاد', id: 10 },
{ label: 'دولتی', id: 20 },
]
export const insurance = [
{ label: 'بیمه 1', id: 10 },
{ label: 'بیمه 2', id: 20 },
{ label: 'بیمه 3', id: 30 }
];
@@ -0,0 +1,7 @@
function Messages() {
return (
<div>Messages</div>
)
}
export default Messages
@@ -0,0 +1,57 @@
import CustomTable from "@/app/component/CustomTable";
import { TableCell, TableRow } from "@mui/material";
import Image from "next/image";
function List({ user }) {
const tableHead = ['ردیف', 'شناسه', 'نام پزشک', 'تاریخ', 'ساعت', 'مبلغ (تومان)', 'وضعیت']
const centerTable = [0, 4, 5];
return (
<div className='!mt-[32px]'>
<CustomTable
tableHead={tableHead}
centerTable={centerTable}
>
{user.turns.map((row, idx) => (
<TableRow
key={idx}
className='!border-0 !border-b !border-[#DBDBDB]'
>
<TableCell className='!pr-[18px] !text-nowrap' align="center">{idx + 1}</TableCell>
<TableCell className='!text-start !pr-[18px] !text-nowrap' align="right">{row.id}</TableCell>
<TableCell className='!pr-[18px] !text-nowrap' component="th" scope="row">
<div className='flex items-center justify-start gap-[8px] !text-nowrap'>
<Image
src={row.image}
alt='doctor'
height={32}
width={32}
/>
{row.name}
</div>
</TableCell>
<TableCell className='!text-start !pr-[18px] !text-nowrap' align="right">{row.date}</TableCell>
<TableCell className='!text-center !pr-[18px] !text-nowrap' align="right">{row.time}</TableCell>
<TableCell className='!text-center !pr-[18px] !text-nowrap' align="right">{row.amount}</TableCell>
<TableCell className='!pr-[18px] !text-nowrap' align="right">
<div
className={`
w-[124px] py-[4px] px-[4px] rounded-[4px] text-center text-[16px] font-medium cursor-pointer select-none
${row.status === 'success' ? 'bg-[#E8FADD] text-[#75E22E]' :
row.status === 'pending' ? 'bg-[#FFF3DD] text-[#FDBA35]' : 'bg-[#FFE3E2] text-[#FF5450]'}
`}
variant='text'
>
{row.status === 'success' ? 'پرداخت شده' :
row.status === 'pending' ? 'در انتظار' : 'پرداخت نشده'}
</div>
</TableCell>
</TableRow>
))}
</CustomTable>
</div>
)
}
export default List
@@ -0,0 +1,12 @@
import List from "./List";
function Transactions({ user }) {
return (
<div className="opacity-page">
<p className="text-[#3B3B3B] text-[16px] font-bold">تاریخچه تراکنش ها</p>
<List user={user} />
</div>
)
}
export default Transactions
@@ -0,0 +1,22 @@
import { Button } from '@mui/material'
function Head() {
return (
<div className="flex items-center justify-start gap-[32px] mt-[30px]">
<Button
className='!py-[8px] !shadow-none !px-[12px] !text-[#EFEFEF] !text-[16px] !font-medium'
variant='contained'
>
نوبت های جاری
</Button>
<Button
className='!py-[8px] !shadow-none !px-[12px] !text-[#5559CE] !text-[16px] !font-medium'
variant='outlined'
>
نوبت های انجام شده
</Button>
</div>
)
}
export default Head
@@ -0,0 +1,55 @@
import CustomTable from '@/app/component/CustomTable';
import ArrowLeftBlueD from '@/components/icons/ArrowLeftBlueD'
import { Button, TableCell, TableRow } from '@mui/material'
import Image from 'next/image'
function List({ user }) {
const tableHead = ['ردیف', 'نام پزشک', 'تخصص', 'تاریخ', 'ساعت', 'مبلغ (تومان)', 'عملیات']
const centerTable = [0, 5];
return (
<div className='!mt-[24px]'>
<CustomTable
tableHead={tableHead}
centerTable={centerTable}
>
{user.turns.map((row, idx) => (
<TableRow
key={idx}
className='!border-0 !border-b !border-[#DBDBDB]'
>
<TableCell className='!pr-[18px] !text-nowrap' align="center">{idx + 1}</TableCell>
<TableCell className='!pr-[18px] !text-nowrap' component="th" scope="row">
<div className='flex items-center justify-start gap-[8px] !text-nowrap'>
<Image
src={row.image}
alt='doctor'
height={32}
width={32}
/>
{row.name}
</div>
</TableCell>
<TableCell className='!text-start !pr-[18px] !text-nowrap' align="right">{row.expertise}</TableCell>
<TableCell className='!text-start !pr-[18px] !text-nowrap' align="right">{row.date}</TableCell>
<TableCell className='!text-center !pr-[18px] !text-nowrap' align="right">{row.time}</TableCell>
<TableCell className='!text-center !pr-[18px] !text-nowrap' align="right">{row.amount}</TableCell>
<TableCell className='!pr-[18px] !text-nowrap' align="right">
<Button
className='!flex !p-1 !items-center !justify-start !gap-[4px] !text-[14px] !font-bold !text-[#5559CE]'
variant='text'
>
مشاهده جزئیات
<ArrowLeftBlueD />
</Button>
</TableCell>
</TableRow>
))}
</CustomTable>
</div>
)
}
export default List
@@ -0,0 +1,14 @@
import Head from "./Head";
import List from "./List";
function Turns({ user }) {
return (
<div className="opacity-page">
<p className="text-[#3B3B3B] text-[16px] font-bold">تاریخچه نوبت ها</p>
<Head />
<List user={user} />
</div>
)
}
export default Turns
+10
View File
@@ -0,0 +1,10 @@
function ArrowLeftBlueD() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path d="M9.57 5.92999L3.5 12L9.57 18.07" stroke="#5559CE" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M20.5019 12H3.67188" stroke="#5559CE" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
</svg>
)
}
export default ArrowLeftBlueD
+2 -2
View File
@@ -1,8 +1,8 @@
function ArrowLeftWD() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="21" viewBox="0 0 20 21" fill="none">
<path d="M7.97533 5.44167L2.91699 10.5L7.97533 15.5583" stroke="#EFEFEF" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M17.0836 10.5H3.05859" stroke="#EFEFEF" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M7.97533 5.44167L2.91699 10.5L7.97533 15.5583" stroke="#EFEFEF" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M17.0836 10.5H3.05859" stroke="#EFEFEF" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
</svg>
)
}
+10
View File
@@ -0,0 +1,10 @@
function ArrowLeftWhiteD() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="21" height="20" viewBox="0 0 21 20" fill="none">
<path d="M8.4763 4.94165L3.41797 9.99998L8.4763 15.0583" stroke="#EFEFEF" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M17.5836 10H3.55859" stroke="#EFEFEF" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
</svg>
)
}
export default ArrowLeftWhiteD
+18
View File
@@ -0,0 +1,18 @@
function CalendarAdD() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none">
<path d="M8 2.5V5.5" stroke="white" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M16 2.5V5.5" stroke="white" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M3.5 9.59H20.5" stroke="white" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M18 23.5C20.2091 23.5 22 21.7091 22 19.5C22 17.2909 20.2091 15.5 18 15.5C15.7909 15.5 14 17.2909 14 19.5C14 21.7091 15.7909 23.5 18 23.5Z" stroke="white" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M19.4917 19.55H16.5117" stroke="white" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M18 18.09V21.08" stroke="white" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M21 9V16.86C20.27 16.03 19.2 15.5 18 15.5C15.79 15.5 14 17.29 14 19.5C14 20.25 14.21 20.96 14.58 21.56C14.79 21.92 15.06 22.24 15.37 22.5H8C4.5 22.5 3 20.5 3 17.5V9C3 6 4.5 4 8 4H16C19.5 4 21 6 21 9Z" stroke="white" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M11.9945 14.2H12.0035" stroke="white" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
<path d="M8.29529 14.2H8.30427" stroke="white" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
<path d="M8.29529 17.2H8.30427" stroke="white" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
</svg>
)
}
export default CalendarAdD
+17
View File
@@ -0,0 +1,17 @@
function CalendarEdit() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<path d="M6.66797 1.66666V4.16666" stroke="#525252" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M13.332 1.66666V4.16666" stroke="#525252" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M2.91797 7.57501H17.0846" stroke="#525252" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M16.0066 13.1417L13.0566 16.0917C12.9399 16.2083 12.8316 16.425 12.8066 16.5833L12.6482 17.7083C12.5899 18.1167 12.8732 18.4 13.2816 18.3417L14.4066 18.1833C14.5649 18.1583 14.7899 18.05 14.8982 17.9333L17.8483 14.9833C18.3566 14.475 18.5983 13.8833 17.8483 13.1333C17.1066 12.3917 16.5149 12.6333 16.0066 13.1417Z" fill="#525252" stroke="#525252" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M15.582 13.5667C15.832 14.4667 16.532 15.1667 17.432 15.4167" stroke="#525252" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M10 18.3333H6.66667C3.75 18.3333 2.5 16.6667 2.5 14.1667V7.08332C2.5 4.58332 3.75 2.91666 6.66667 2.91666H13.3333C16.25 2.91666 17.5 4.58332 17.5 7.08332V9.99999" stroke="#525252" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M9.99803 11.4167H10.0055" stroke="#525252" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
<path d="M6.91209 11.4167H6.91957" stroke="#525252" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
<path d="M6.91209 13.9167H6.91957" stroke="#525252" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
</svg>
)
}
export default CalendarEdit
+10 -10
View File
@@ -1,16 +1,16 @@
function CalndarD() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path d="M8 2V5" stroke="#616161" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M16 2V5" stroke="#616161" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M3.5 9.09H20.5" stroke="#616161" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M21 8.5V17C21 20 19.5 22 16 22H8C4.5 22 3 20 3 17V8.5C3 5.5 4.5 3.5 8 3.5H16C19.5 3.5 21 5.5 21 8.5Z" stroke="#616161" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M15.6937 13.7H15.7027" stroke="#616161" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
<path d="M15.6937 16.7H15.7027" stroke="#616161" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
<path d="M11.9945 13.7H12.0035" stroke="#616161" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
<path d="M11.9945 16.7H12.0035" stroke="#616161" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
<path d="M8.29529 13.7H8.30427" stroke="#616161" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
<path d="M8.29529 16.7H8.30427" stroke="#616161" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
<path d="M8 2V5" stroke="#616161" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M16 2V5" stroke="#616161" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M3.5 9.09H20.5" stroke="#616161" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M21 8.5V17C21 20 19.5 22 16 22H8C4.5 22 3 20 3 17V8.5C3 5.5 4.5 3.5 8 3.5H16C19.5 3.5 21 5.5 21 8.5Z" stroke="#616161" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M15.6937 13.7H15.7027" stroke="#616161" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
<path d="M15.6937 16.7H15.7027" stroke="#616161" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
<path d="M11.9945 13.7H12.0035" stroke="#616161" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
<path d="M11.9945 16.7H12.0035" stroke="#616161" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
<path d="M8.29529 13.7H8.30427" stroke="#616161" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
<path d="M8.29529 16.7H8.30427" stroke="#616161" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
</svg>
)
}
+4 -4
View File
@@ -1,10 +1,10 @@
function CardD() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path d="M2 8.50496H22" stroke="#616161" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M6 16.505H8" stroke="#616161" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M10.5 16.505H14.5" stroke="#616161" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M6.44 3.50496H17.55C21.11 3.50496 22 4.38496 22 7.89496V16.105C22 19.615 21.11 20.495 17.56 20.495H6.44C2.89 20.505 2 19.625 2 16.115V7.89496C2 4.38496 2.89 3.50496 6.44 3.50496Z" stroke="#616161" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
<path d="M2 8.50496H22" stroke="#616161" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M6 16.505H8" stroke="#616161" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M10.5 16.505H14.5" stroke="#616161" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M6.44 3.50496H17.55C21.11 3.50496 22 4.38496 22 7.89496V16.105C22 19.615 21.11 20.495 17.56 20.495H6.44C2.89 20.505 2 19.625 2 16.115V7.89496C2 4.38496 2.89 3.50496 6.44 3.50496Z" stroke="#616161" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
</svg>
)
}
+13
View File
@@ -0,0 +1,13 @@
function CardTickD() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25" fill="none">
<path d="M2 9H13.5" stroke="white" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M6 17H8" stroke="white" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M10.5 17H14.5" stroke="white" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M22 11.53V16.61C22 20.12 21.11 21 17.56 21H6.44C2.89 21 2 20.12 2 16.61V8.39C2 4.88 2.89 4 6.44 4H13.5" stroke="white" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
<path d="M16.5 6.5L18 8L22 4" stroke="white" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
</svg>
)
}
export default CardTickD
+11
View File
@@ -0,0 +1,11 @@
function EditGrayA() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<path d="M4.61763 16.2667C4.1093 16.2667 3.6343 16.0917 3.29263 15.7667C2.8593 15.3583 2.65097 14.7417 2.72597 14.075L3.0343 11.375C3.09263 10.8667 3.40097 10.1917 3.7593 9.825L10.601 2.58333C12.3093 0.774998 14.0926 0.724998 15.901 2.43333C17.7093 4.14166 17.7593 5.925 16.051 7.73333L9.2093 14.975C8.8593 15.35 8.2093 15.7 7.70096 15.7833L5.01763 16.2417C4.87597 16.25 4.75097 16.2667 4.61763 16.2667ZM13.276 2.425C12.6343 2.425 12.076 2.825 11.5093 3.425L4.66763 10.675C4.50097 10.85 4.3093 11.2667 4.27597 11.5083L3.96763 14.2083C3.9343 14.4833 4.00097 14.7083 4.15097 14.85C4.30097 14.9917 4.52597 15.0417 4.80097 15L7.4843 14.5417C7.72597 14.5 8.12597 14.2833 8.29263 14.1083L15.1343 6.86666C16.1676 5.76666 16.5426 4.75 15.0343 3.33333C14.3676 2.69166 13.7926 2.425 13.276 2.425Z" fill="#525252" />
<path d="M14.4497 9.125C14.433 9.125 14.408 9.125 14.3914 9.125C11.7914 8.86667 9.69971 6.89167 9.29971 4.30833C9.24971 3.96667 9.48305 3.65 9.82471 3.59167C10.1664 3.54167 10.483 3.775 10.5414 4.11667C10.858 6.13333 12.4914 7.68333 14.5247 7.88333C14.8664 7.91667 15.1164 8.225 15.083 8.56667C15.0414 8.88333 14.7664 9.125 14.4497 9.125Z" fill="#525252" />
<path d="M17.5 18.9583H2.5C2.15833 18.9583 1.875 18.675 1.875 18.3333C1.875 17.9917 2.15833 17.7083 2.5 17.7083H17.5C17.8417 17.7083 18.125 17.9917 18.125 18.3333C18.125 18.675 17.8417 18.9583 17.5 18.9583Z" fill="#525252" />
</svg>
)
}
export default EditGrayA
+1 -1
View File
@@ -1,7 +1,7 @@
function LinkedingBlueD() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="13" height="14" viewBox="0 0 13 14" fill="none">
<path d="M3.36472 2.21094C3.36721 2.52738 3.24504 2.83208 3.02464 3.05916C2.80424 3.28624 2.50331 3.41745 2.18694 3.42441C1.87122 3.41294 1.57199 3.28061 1.35108 3.05476C1.13017 2.82892 1.00449 2.52683 1 2.21094C1.01364 1.90309 1.1439 1.61196 1.36433 1.39663C1.58476 1.18129 1.87885 1.05789 2.18694 1.05145C2.49411 1.05801 2.78717 1.18173 3.00612 1.39727C3.22507 1.61282 3.35335 1.9039 3.36472 2.21094ZM1.1272 5.58049C1.1272 4.88315 1.57105 4.99205 2.18694 4.99205C2.80283 4.99205 3.23752 4.88315 3.23752 5.58049V12.3745C3.23752 13.081 2.79368 12.9364 2.18694 12.9364C1.5802 12.9364 1.1272 13.081 1.1272 12.3745V5.58049ZM5.0678 5.5814C5.0678 5.19155 5.2124 5.04604 5.43844 5.0012C5.66539 4.95544 6.44418 5.0012 6.71597 5.0012C6.98777 5.0012 7.09667 5.44504 7.08752 5.77999C7.31997 5.46805 7.62856 5.22096 7.98377 5.06233C8.33899 4.90371 8.72895 4.83887 9.11639 4.874C9.49685 4.85077 9.87795 4.90782 10.2349 5.04146C10.5919 5.1751 10.9168 5.38233 11.1885 5.6497C11.4602 5.91706 11.6726 6.23858 11.8119 6.59338C11.9512 6.94818 12.0144 7.32831 11.9973 7.7091V12.347C11.9973 13.0535 11.5626 12.9089 10.9458 12.9089C10.3299 12.9089 9.89517 13.0535 9.89517 12.347V8.724C9.91113 8.53756 9.88677 8.34987 9.82376 8.17367C9.76074 7.99748 9.66055 7.83691 9.52999 7.70287C9.39942 7.56884 9.24154 7.46446 9.06706 7.39685C8.89258 7.32924 8.70559 7.29996 8.5188 7.31102C8.33273 7.30612 8.14774 7.34082 7.9761 7.41284C7.80447 7.48486 7.6501 7.59254 7.52324 7.72875C7.39637 7.86496 7.29992 8.02658 7.24026 8.2029C7.1806 8.37921 7.15911 8.5662 7.1772 8.75145V12.3745C7.1772 13.081 6.73336 12.9364 6.11747 12.9364C5.50158 12.9364 5.06689 13.081 5.06689 12.3745V5.58049L5.0678 5.5814Z" stroke="#5559CE" stroke-linecap="round" stroke-linejoin="round" />
<path d="M3.36472 2.21094C3.36721 2.52738 3.24504 2.83208 3.02464 3.05916C2.80424 3.28624 2.50331 3.41745 2.18694 3.42441C1.87122 3.41294 1.57199 3.28061 1.35108 3.05476C1.13017 2.82892 1.00449 2.52683 1 2.21094C1.01364 1.90309 1.1439 1.61196 1.36433 1.39663C1.58476 1.18129 1.87885 1.05789 2.18694 1.05145C2.49411 1.05801 2.78717 1.18173 3.00612 1.39727C3.22507 1.61282 3.35335 1.9039 3.36472 2.21094ZM1.1272 5.58049C1.1272 4.88315 1.57105 4.99205 2.18694 4.99205C2.80283 4.99205 3.23752 4.88315 3.23752 5.58049V12.3745C3.23752 13.081 2.79368 12.9364 2.18694 12.9364C1.5802 12.9364 1.1272 13.081 1.1272 12.3745V5.58049ZM5.0678 5.5814C5.0678 5.19155 5.2124 5.04604 5.43844 5.0012C5.66539 4.95544 6.44418 5.0012 6.71597 5.0012C6.98777 5.0012 7.09667 5.44504 7.08752 5.77999C7.31997 5.46805 7.62856 5.22096 7.98377 5.06233C8.33899 4.90371 8.72895 4.83887 9.11639 4.874C9.49685 4.85077 9.87795 4.90782 10.2349 5.04146C10.5919 5.1751 10.9168 5.38233 11.1885 5.6497C11.4602 5.91706 11.6726 6.23858 11.8119 6.59338C11.9512 6.94818 12.0144 7.32831 11.9973 7.7091V12.347C11.9973 13.0535 11.5626 12.9089 10.9458 12.9089C10.3299 12.9089 9.89517 13.0535 9.89517 12.347V8.724C9.91113 8.53756 9.88677 8.34987 9.82376 8.17367C9.76074 7.99748 9.66055 7.83691 9.52999 7.70287C9.39942 7.56884 9.24154 7.46446 9.06706 7.39685C8.89258 7.32924 8.70559 7.29996 8.5188 7.31102C8.33273 7.30612 8.14774 7.34082 7.9761 7.41284C7.80447 7.48486 7.6501 7.59254 7.52324 7.72875C7.39637 7.86496 7.29992 8.02658 7.24026 8.2029C7.1806 8.37921 7.15911 8.5662 7.1772 8.75145V12.3745C7.1772 13.081 6.73336 12.9364 6.11747 12.9364C5.50158 12.9364 5.06689 13.081 5.06689 12.3745V5.58049L5.0678 5.5814Z" stroke="#5559CE" strokeLinecap="round" strokeLinejoin="round" />
</svg>
)
}
+3 -3
View File
@@ -1,9 +1,9 @@
function LogoutD() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path d="M17.4414 14.62L20.0014 12.06L17.4414 9.5" stroke="#616161" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M9.76172 12.06H19.9317" stroke="#616161" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M11.7617 20C7.34172 20 3.76172 17 3.76172 12C3.76172 7 7.34172 4 11.7617 4" stroke="#616161" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M17.4414 14.62L20.0014 12.06L17.4414 9.5" stroke="#616161" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M9.76172 12.06H19.9317" stroke="#616161" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M11.7617 20C7.34172 20 3.76172 17 3.76172 12C3.76172 7 7.34172 4 11.7617 4" stroke="#616161" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
</svg>
)
}
+2 -2
View File
@@ -1,8 +1,8 @@
function MessageD() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path d="M22 6.25V11.35C22 12.62 21.58 13.69 20.83 14.43C20.09 15.18 19.02 15.6 17.75 15.6V17.41C17.75 18.09 16.99 18.5 16.43 18.12L15.46 17.48C15.55 17.17 15.59 16.83 15.59 16.47V12.4C15.59 10.36 14.23 9 12.19 9H5.39999C5.25999 9 5.13 9.01002 5 9.02002V6.25C5 3.7 6.7 2 9.25 2H17.75C20.3 2 22 3.7 22 6.25Z" stroke="#616161" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M15.59 12.4V16.47C15.59 16.83 15.55 17.17 15.46 17.48C15.09 18.95 13.87 19.87 12.19 19.87H9.47L6.45 21.88C6 22.19 5.39999 21.86 5.39999 21.32V19.87C4.37999 19.87 3.53 19.53 2.94 18.94C2.34 18.34 2 17.49 2 16.47V12.4C2 10.5 3.18 9.19002 5 9.02002C5.13 9.01002 5.25999 9 5.39999 9H12.19C14.23 9 15.59 10.36 15.59 12.4Z" stroke="#616161" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" />
<path d="M22 6.25V11.35C22 12.62 21.58 13.69 20.83 14.43C20.09 15.18 19.02 15.6 17.75 15.6V17.41C17.75 18.09 16.99 18.5 16.43 18.12L15.46 17.48C15.55 17.17 15.59 16.83 15.59 16.47V12.4C15.59 10.36 14.23 9 12.19 9H5.39999C5.25999 9 5.13 9.01002 5 9.02002V6.25C5 3.7 6.7 2 9.25 2H17.75C20.3 2 22 3.7 22 6.25Z" stroke="#616161" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
<path d="M15.59 12.4V16.47C15.59 16.83 15.55 17.17 15.46 17.48C15.09 18.95 13.87 19.87 12.19 19.87H9.47L6.45 21.88C6 22.19 5.39999 21.86 5.39999 21.32V19.87C4.37999 19.87 3.53 19.53 2.94 18.94C2.34 18.34 2 17.49 2 16.47V12.4C2 10.5 3.18 9.19002 5 9.02002C5.13 9.01002 5.25999 9 5.39999 9H12.19C14.23 9 15.59 10.36 15.59 12.4Z" stroke="#616161" strokeWidth="1.5" strokeMiterlimit="10" strokeLinecap="round" strokeLinejoin="round" />
</svg>
)
}
+2 -2
View File
@@ -3,8 +3,8 @@ import React from 'react'
function ProfileD() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path d="M12.1586 10.87C12.0586 10.86 11.9386 10.86 11.8286 10.87C9.44859 10.79 7.55859 8.84 7.55859 6.44C7.55859 3.99 9.53859 2 11.9986 2C14.4486 2 16.4386 3.99 16.4386 6.44C16.4286 8.84 14.5386 10.79 12.1586 10.87Z" stroke="#5559CE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
<path d="M7.15875 14.56C4.73875 16.18 4.73875 18.82 7.15875 20.43C9.90875 22.27 14.4188 22.27 17.1688 20.43C19.5888 18.81 19.5888 16.17 17.1688 14.56C14.4288 12.73 9.91875 12.73 7.15875 14.56Z" stroke="#5559CE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
<path d="M12.1586 10.87C12.0586 10.86 11.9386 10.86 11.8286 10.87C9.44859 10.79 7.55859 8.84 7.55859 6.44C7.55859 3.99 9.53859 2 11.9986 2C14.4486 2 16.4386 3.99 16.4386 6.44C16.4286 8.84 14.5386 10.79 12.1586 10.87Z" stroke="#5559CE" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
<path d="M7.15875 14.56C4.73875 16.18 4.73875 18.82 7.15875 20.43C9.90875 22.27 14.4188 22.27 17.1688 20.43C19.5888 18.81 19.5888 16.17 17.1688 14.56C14.4288 12.73 9.91875 12.73 7.15875 14.56Z" stroke="#5559CE" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
</svg>
)
}
+1 -1
View File
@@ -1,7 +1,7 @@
function TelegramBlueD() {
return (
<svg xmlns="http://www.w3.org/2000/svg" width="13" height="12" viewBox="0 0 13 12" fill="none">
<path d="M12.5 0.857147L0.5 5.14286L3.92857 6.85715L9.07143 3.42858L5.64286 7.71429L10.7857 11.1429L12.5 0.857147Z" stroke="#5559CE" stroke-linejoin="round" />
<path d="M12.5 0.857147L0.5 5.14286L3.92857 6.85715L9.07143 3.42858L5.64286 7.71429L10.7857 11.1429L12.5 0.857147Z" stroke="#5559CE" strokeLinejoin="round" />
</svg>
)
}
+1 -1
View File
@@ -25,7 +25,7 @@ function Layout({ children, title, name, disableFooter, isSidebar, user }) {
<section className={`
opacity-page
${isSidebar &&
'padding-responsive min-h-screen pt-[120px] flex items-start justify-center gap-[24px] mt-[56px]'
'padding-responsive min-h-screen pt-[120px] flex items-stretch justify-center gap-[24px] mt-[56px]'
}
`}>
{isSidebar && (
+6 -4
View File
@@ -4,11 +4,13 @@ import List from "./List"
function Sidebar({ user }) {
return (
<aside
className="pt-[10px] pb-[26px] bg-[#FFF] shadow-[0px_1px_24.8px_0px_rgba(204,_204,_204,_0.18)] rounded-[8px]
min-w-[288px]"
className="h-fit lg:h-screen w-full lg:w-[39%]"
>
<Head user={user} />
<List user={user} />
<div className="sticky pt-[10px] pb-[26px] bg-[#FFF] shadow-[0px_1px_24.8px_0px_rgba(204,_204,_204,_0.18)] rounded-[8px]
min-w-[288px] top-[calc(12px_+_58px_+_32px)] sm:top-[calc(21px_+_58px_+_45px)] md:top-[calc(30px_+_58px_+_58px)] lg:top-[calc(40px_+_58px_+_78px)]">
<Head user={user} />
<List user={user} />
</div>
</aside>
)
}
-2
View File
@@ -18,8 +18,6 @@ function LogInPage({ setIsSendMsg, setStep }) {
fullWidth
variant='contained'
onClick={() => {
console.log(setIsSendMsg);
setIsSendMsg && setIsSendMsg(true);
setStep && setStep(prev => prev + 1);
}}
+490 -1
View File
@@ -2,6 +2,495 @@
"data": {
"profile": "/assets/images/profile-user.png",
"name": "امیر حبیبی",
"phone": "09165206544"
"phone": "09165206544",
"total_transactions": 245000,
"number_of_turns": 4,
"national_code": 1741025645,
"gender": "مرد",
"date_of_birth": "1371/03/07",
"father_name": "محمد",
"insurance": "تامین اجتماعی",
"insurance_number": 11695641,
"blood_group": "A+",
"marital_status": "مجرد",
"home_phone": 9121056987,
"education": "کارشناسی ارشد",
"job": "آزاد",
"work_phone": 9121056987,
"turns": [
{
"name": "دنیا خلیلی",
"image": "/assets/images/doctor-1.png",
"id": 12345678,
"status": "success",
"expertise": "دندان پزشکی",
"date": "1403-03-27",
"time": "15:30",
"amount": "2350000"
},
{
"name": "دنیا خلیلی",
"image": "/assets/images/doctor-1.png",
"id": 12345678,
"status": "success",
"expertise": "دندان پزشکی",
"date": "1403-03-27",
"time": "16:30",
"amount": "2350000"
},
{
"name": "دنیا خلیلی",
"image": "/assets/images/doctor-1.png",
"id": 12345678,
"status": "pending",
"expertise": "دندان پزشکی",
"date": "1403-03-27",
"time": "17:30",
"amount": "2350000"
},
{
"name": "دنیا خلیلی",
"image": "/assets/images/doctor-1.png",
"id": 12345678,
"status": "pending",
"expertise": "دندان پزشکی",
"date": "1403-03-27",
"time": "18:30",
"amount": "2350000"
},
{
"name": "دنیا خلیلی",
"image": "/assets/images/doctor-1.png",
"id": 12345678,
"status": "failed",
"expertise": "دندان پزشکی",
"date": "1403-03-27",
"time": "19:30",
"amount": "2350000"
}
],
"comments": [
{
"id": 1,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "میثم امیری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": [
{
"id": 1,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "میثم امیری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
},
{
"id": 2,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "میثم امیری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
},
{
"id": 3,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "میثم امیری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
}
]
},
{
"id": 2,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "ساغر صابری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
},
{
"id": 3,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "ساغر صابری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
},
{
"id": 4,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "ساغر صابری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": [
{
"id": 1,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "میثم امیری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
},
{
"id": 2,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "میثم امیری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
},
{
"id": 3,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "میثم امیری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
}
]
},
{
"id": 5,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "ساغر صابری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
},
{
"id": 6,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "ساغر صابری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": [
{
"id": 1,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "میثم امیری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
},
{
"id": 2,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "میثم امیری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
},
{
"id": 3,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "میثم امیری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
}
]
},
{
"id": 7,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "ساغر صابری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
},
{
"id": 8,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "ساغر صابری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
},
{
"id": 9,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "ساغر صابری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
},
{
"id": 10,
"is_open_answer": false,
"profile": "/assets/images/doctor.png",
"name": "ساغر صابری",
"location": "اهواز _ خوزستان",
"comment": "لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است.",
"like": 6,
"is_like": false,
"is_open_reply": false,
"is_dislike": false,
"dislike": 1,
"stars": {
"reception": 4,
"cleaning": 5,
"information": 5,
"location": 4,
"security": 4,
"value": 3
},
"replays": []
}
]
}
}
+18 -1
View File
@@ -1,3 +1,20 @@
import moment from 'jalali-moment';
export const numberToArStyle = num => num.toLocaleString('ar-AE');
export const isActiveURL = (link, name) => link === name;
export const isActiveURL = (link, name) => link === name;
export const convertToJalali = (date) => {
// Get the current Gregorian date
const currentDate = date;
// Convert the Gregorian date to Jalali date
const jalaliDate = moment(currentDate).format('jYYYY/jM/jD');
// Get Jalali year, month, and day
const jalaliYear = moment(jalaliDate, 'jYYYY/jM/jD').jYear();
const jalaliMonth = moment(jalaliDate, 'jYYYY/jM/jD').jMonth() + 1; // Note: jalali-moment months are zero-based
const jalaliDay = moment(jalaliDate, 'jYYYY/jM/jD').jDate();
return `${jalaliYear}/${jalaliMonth}/${jalaliDay}`
}
+559 -2
View File
@@ -1,11 +1,11 @@
{
"name": "nobat",
"name": "nobat724",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "nobat",
"name": "nobat724",
"version": "0.1.0",
"dependencies": {
"@emotion/cache": "^11.11.0",
@@ -18,6 +18,7 @@
"date-fns": "^3.6.0",
"i": "^0.3.7",
"jalaali-react-date-picker": "^1.0.18",
"jalali-moment": "^3.3.11",
"next": "14.2.3",
"npm": "^10.8.2",
"react": "^18.0.0",
@@ -6035,6 +6036,25 @@
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/batch": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
@@ -6074,6 +6094,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/bl": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"dependencies": {
"buffer": "^5.5.0",
"inherits": "^2.0.4",
"readable-stream": "^3.4.0"
}
},
"node_modules/bluebird": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
@@ -6211,6 +6241,29 @@
"node-int64": "^0.4.0"
}
},
"node_modules/buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
}
},
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -6399,6 +6452,11 @@
"node": ">=10"
}
},
"node_modules/chardet": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
},
"node_modules/check-types": {
"version": "11.2.3",
"resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz",
@@ -6494,6 +6552,36 @@
"node": ">=0.10.0"
}
},
"node_modules/cli-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
"integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
"dependencies": {
"restore-cursor": "^3.1.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/cli-spinners": {
"version": "2.9.2",
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
"integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cli-width": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
"integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
"engines": {
"node": ">= 10"
}
},
"node_modules/client-only": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
@@ -6576,6 +6664,14 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
"node_modules/clone": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
"integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/clsx": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
@@ -7422,6 +7518,17 @@
"node": ">= 10"
}
},
"node_modules/defaults": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
"integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
"dependencies": {
"clone": "^1.0.2"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
@@ -8910,6 +9017,30 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/external-editor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
"integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
"dependencies": {
"chardet": "^0.7.0",
"iconv-lite": "^0.4.24",
"tmp": "^0.0.33"
},
"engines": {
"node": ">=4"
}
},
"node_modules/external-editor/node_modules/iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -8983,6 +9114,28 @@
"bser": "2.1.1"
}
},
"node_modules/figures": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
"integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
"dependencies": {
"escape-string-regexp": "^1.0.5"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/figures/node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -10121,6 +10274,25 @@
"node": ">=4"
}
},
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/ignore": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
@@ -10207,6 +10379,129 @@
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
"node_modules/inquirer": {
"version": "8.2.6",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz",
"integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==",
"dependencies": {
"ansi-escapes": "^4.2.1",
"chalk": "^4.1.1",
"cli-cursor": "^3.1.0",
"cli-width": "^3.0.0",
"external-editor": "^3.0.3",
"figures": "^3.0.0",
"lodash": "^4.17.21",
"mute-stream": "0.0.8",
"ora": "^5.4.1",
"run-async": "^2.4.0",
"rxjs": "^7.5.5",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0",
"through": "^2.3.6",
"wrap-ansi": "^6.0.1"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/inquirer/node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/inquirer/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/inquirer/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/inquirer/node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/inquirer/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/inquirer/node_modules/string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/inquirer/node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/inquirer/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/inquirer/node_modules/wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/internal-slot": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
@@ -10443,6 +10738,14 @@
"resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
"integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g=="
},
"node_modules/is-interactive": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
"integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
"engines": {
"node": ">=8"
}
},
"node_modules/is-map": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
@@ -10638,6 +10941,17 @@
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
},
"node_modules/is-unicode-supported": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-weakmap": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
@@ -11081,6 +11395,27 @@
"node": ">=8"
}
},
"node_modules/jalali-moment": {
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/jalali-moment/-/jalali-moment-3.3.11.tgz",
"integrity": "sha512-tdSaRs9cjWjOIaWhcsGFZMhZQhfgok5J0TwqFpBIZPudZxxa6yjUPoLCOwuvbAtRpiZn7k/mvazAJh+vEN5suw==",
"dependencies": {
"commander": "^7.0.0",
"inquirer": "^8.0.0",
"moment": "^2.26.0"
},
"bin": {
"jalalim": "cli.js"
}
},
"node_modules/jalali-moment/node_modules/commander": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
"integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
"engines": {
"node": ">= 10"
}
},
"node_modules/jest": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz",
@@ -13171,6 +13506,69 @@
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
"integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
},
"node_modules/log-symbols": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
"integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"dependencies": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/log-symbols/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/log-symbols/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/log-symbols/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/log-symbols/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -13464,6 +13862,11 @@
"multicast-dns": "cli.js"
}
},
"node_modules/mute-stream": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
},
"node_modules/mz": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
@@ -16245,6 +16648,103 @@
"node": ">= 0.8.0"
}
},
"node_modules/ora": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
"integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
"dependencies": {
"bl": "^4.1.0",
"chalk": "^4.1.0",
"cli-cursor": "^3.1.0",
"cli-spinners": "^2.5.0",
"is-interactive": "^1.0.0",
"is-unicode-supported": "^0.1.0",
"log-symbols": "^4.1.0",
"strip-ansi": "^6.0.0",
"wcwidth": "^1.0.1"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/ora/node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/ora/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/ora/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/ora/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/ora/node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/ora/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
@@ -18629,6 +19129,23 @@
"node": ">=10"
}
},
"node_modules/restore-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
"integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
"dependencies": {
"onetime": "^5.1.0",
"signal-exit": "^3.0.2"
},
"engines": {
"node": ">=8"
}
},
"node_modules/restore-cursor/node_modules/signal-exit": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"node_modules/retry": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
@@ -18770,6 +19287,14 @@
"node": ">=8"
}
},
"node_modules/run-async": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
"integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -18792,6 +19317,14 @@
"queue-microtask": "^1.2.2"
}
},
"node_modules/rxjs": {
"version": "7.8.1",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
"integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/safe-array-concat": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
@@ -20301,6 +20834,11 @@
"resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz",
"integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ=="
},
"node_modules/through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
},
"node_modules/thunky": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
@@ -20311,6 +20849,17 @@
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
"node_modules/tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"dependencies": {
"os-tmpdir": "~1.0.2"
},
"engines": {
"node": ">=0.6.0"
}
},
"node_modules/tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@@ -20830,6 +21379,14 @@
"minimalistic-assert": "^1.0.0"
}
},
"node_modules/wcwidth": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
"integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
"dependencies": {
"defaults": "^1.0.3"
}
},
"node_modules/webidl-conversions": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+1
View File
@@ -19,6 +19,7 @@
"date-fns": "^3.6.0",
"i": "^0.3.7",
"jalaali-react-date-picker": "^1.0.18",
"jalali-moment": "^3.3.11",
"next": "14.2.3",
"npm": "^10.8.2",
"react": "^18.0.0",
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 11 KiB