fix responsive all pages & change style page list blog and blog item & add date picker

This commit is contained in:
Ehsan
2024-08-23 18:57:28 +03:30
parent c62fb78f8c
commit 9701547d1f
35 changed files with 19276 additions and 225 deletions
+2 -2
View File
@@ -1,10 +1,10 @@
function AnimationTextHead({ name, text, children }) { function AnimationTextHead({ name, text, children }) {
return ( return (
<div className='flex justify-center items-start relative w-fit'> <div className='flex justify-center items-start relative w-fit'>
<div className='overflow-hidden mb-1.5'> <div className='overflow-hidden mb-[4px] md:mb-[5px] lg:mb-[6px]'>
<p <p
data-aos={name} data-aos={name}
className='text-[#3B3B3B] text-nowrap overflow-hidden text-[20px] font-bold'>{text}</p> className='text-[#3B3B3B] text-nowrap overflow-hidden text-[14px] sm:text-[16px] md:text-[18px] lg:text-[20px] font-bold'>{text}</p>
</div> </div>
<div className="absolute bottom-0 right-1/2 translate-x-1/2 w-full flex justify-center"> <div className="absolute bottom-0 right-1/2 translate-x-1/2 w-full flex justify-center">
{children} {children}
+1 -1
View File
@@ -55,7 +55,7 @@ function ItemUser({ update, setUpdate, list, setList, data, loading }) {
<Skeleton variant="text" className="!w-1/3" /> <Skeleton variant="text" className="!w-1/3" />
</> </>
) : ( ) : (
<p className="text-[#495057] text-[14px] font-normal leading-[30px]">{data.comment}</p> <p className="text-[#495057] text-[14px] font-normal leading-[20px] sm:leading-[24px] md:leading-[28px] lg:leading-[30px]">{data.comment}</p>
)} )}
<div className="flex items-center justify-start mt-2 gap-[28px]"> <div className="flex items-center justify-start mt-2 gap-[28px]">
<div className="flex items-center justify-start gap-1"> <div className="flex items-center justify-start gap-1">
+16
View File
@@ -0,0 +1,16 @@
import { Button as ButtonMUI } from '@mui/material'
import React from 'react'
function ButtonDate({ handleClick, id, text }) {
return (
<ButtonMUI
onClick={handleClick}
aria-describedby={id}
className="!border-[#E9ECEF] !text-[#6C757D]"
>
{text}
</ButtonMUI>
)
}
export default ButtonDate
+32
View File
@@ -0,0 +1,32 @@
import { TextField } from "@mui/material"
function Field({ title, handleClick }) {
return (
<div className="relative">
<TextField
label={title}
className="!w-full !mx-auto !bg-[#FFF]"
sx={{
borderRadius: '8px !important',
'& .MuiFormLabel-root': { transform: 'translate(16px, 50%) scale(1) !important' },
'& .MuiInputLabel-shrink': { transform: 'translate(14px, -9px) scale(0.75) !important' },
'& .MuiInputBase-input': { padding: '12.5px 14px' },
'& .MuiInputBase-root': { borderRadius: '8px !important' },
'& .MuiOutlinedInput-notchedOutline': { border: '1px solid #E9ECEF !important' },
".Mui-focused": {
'& .MuiOutlinedInput-notchedOutline': {
border: '1px solid #0FA1B3 !important',
transition: '0.5s all'
}
}
}}
/>
<span
className="absolute cursor-pointer left-0 top-0 w-full h-full"
onClick={handleClick}
></span>
</div>
)
}
export default Field
+45
View File
@@ -0,0 +1,45 @@
import { useState } from 'react';
import { Popover } from '@mui/material';
import { DatePicker as DatePickerJalali } from "jalaali-react-date-picker";
import Field from './Field';
import ButtonDate from './ButtonDate';
function DatePicker({ type, date, updateDate, text, from }) {
const [anchorEl, setAnchorEl] = useState(null);
const handleClick = (event) => {
setAnchorEl(event.currentTarget);
};
const handleClose = () => setAnchorEl(null);
const open = true;
const id = open ? 'simple-popover' : undefined;
return (
<div className='min-w-[700px] min-h-[700px]'>
{/* {from && from === 'register' ? (
<Field
title={text}
handleClick={handleClick}
/>
) : (
<ButtonDate
text={text}
handleClick={handleClick}
/>
)} */}
<DatePickerJalali
onChange={(e) => {
if (e._d) {
updateDate(e._d, type)
}
handleClose()
}}
/>
</div>
)
}
export default DatePicker
+90 -4
View File
@@ -171,7 +171,8 @@ html {
background: url(../public/assets/images/banner-about.png); background: url(../public/assets/images/banner-about.png);
} }
.bg-banner-home::after { .bg-banner-home::after,
.bg-banner-stroke::after {
content: ""; content: "";
position: absolute; position: absolute;
right: 0; right: 0;
@@ -215,9 +216,7 @@ html {
.cover-head-blogs p { .cover-head-blogs p {
position: absolute; position: absolute;
bottom: 32px; bottom: 32px;
right: 24px;
color: #FAFAFA; color: #FAFAFA;
font-size: 24px;
font-weight: 700; font-weight: 700;
} }
@@ -299,4 +298,91 @@ html {
padding-left: 108px; padding-left: 108px;
padding-right: 108px; padding-right: 108px;
} }
} }
/* Date Picker Style */
.panel-elevation {
box-shadow: none !important;
border: none;
outline: none;
}
.icon-keyboard_double_arrow_right,
.icon-keyboard_double_arrow_left {
display: none !important;
}
.icon-chevron-right::before,
.icon-chevron-left::before {
content: "" !important;
background: url(../public/assets/icons/arrow-right.svg);
width: 24px;
height: 24px;
}
.icon-chevron-left::before {
rotate: 180deg;
}
.panel-date-holder-item span {
/* font-family: Iran Sans !important; */
font-size: 18px !important;
font-weight: 500 !important;
}
.panel-date-holder-item span:hover {
color: #FF8848 !important;
}
.year-item-selected,
.month-item-selected {
background: #FF8848 !important;
border-radius: 3px !important;
}
.panel-header-rtl {
border-bottom: none !important;
}
.day-label-bar-inner-rtl {
background: #FFF !important;
}
.day-label-bar-inner-rtl div {
color: #6C757D !important;
}
.panel-jalaali .days-body .not-current {
display: none !important;
}
.panel-jalaali .days-body .day.hovered span {
color: #343A40 !important;
}
.panel-jalaali .days-body .day.weekend-day span {
color: #B71232 !important;
}
.panel-jalaali .today,
.panel-jalaali .highlight {
border-radius: 50% !important;
}
.panel-jalaali .today {
border: 1px solid #FF8848 !important;
}
.panel-jalaali .highlight {
background: #ff975d !important;
}
.panel-jalaali .panel-footer-wrapper,
.panel-jalaali .panel-footer-rtl {
display: none !important;
}
/* End Date Picker Style */
+1
View File
@@ -1,5 +1,6 @@
import "./globals.css"; import "./globals.css";
import ThemeRegistry from './component/ThemeRegistry'; import ThemeRegistry from './component/ThemeRegistry';
import "jalaali-react-date-picker/lib/styles/index.css";
export const metadata = { export const metadata = {
title: "Create Next App", title: "Create Next App",
+4 -1
View File
@@ -19,7 +19,10 @@ function Services() {
<UnderlineLG /> <UnderlineLG />
</AnimationTextHead> </AnimationTextHead>
</div> </div>
<ul className='mt-[20px] sm:mt-[26px] md:mt-[33px] lg:mt-[40px] flex flex-wrap gap-x-[72px] gap-y-[20px] sm:gap-y-[32px] md:gap-y-[44px] lg:gap-y-[56px]'> <ul
className='mt-[20px] sm:mt-[26px] md:mt-[33px] lg:mt-[40px] flex flex-wrap gap-x-[72px]
gap-y-[20px] sm:gap-y-[32px] md:gap-y-[44px] lg:gap-y-[56px] lg:grid lg:grid-cols-3'
>
{ourServices.map((item, idx) => ( {ourServices.map((item, idx) => (
<li <li
key={idx} key={idx}
+2 -2
View File
@@ -12,7 +12,7 @@ function Caption({ data }) {
width={808} width={808}
/> />
<div <div
className="my-6 text-[#525252] text-[16px] font-normal leading-[32px]" className="my-[12px] sm:my-[16px] md:my-[20px] lg:my-[24px] text-[#525252] text-[14px] md:text-[15px] lg:text-[16px] font-normal leading-[32px]"
dangerouslySetInnerHTML={{ __html: data.caption }} dangerouslySetInnerHTML={{ __html: data.caption }}
/> />
<Image <Image
@@ -23,7 +23,7 @@ function Caption({ data }) {
width={808} width={808}
/> />
<div <div
className="my-6" className="my-[12px] sm:my-[16px] md:my-[20px] lg:my-[24px] text-[#525252] text-[14px] md:text-[15px] lg:text-[16px] font-normal leading-[32px]"
dangerouslySetInnerHTML={{ __html: data.caption }} dangerouslySetInnerHTML={{ __html: data.caption }}
/> />
</> </>
+1 -1
View File
@@ -10,7 +10,7 @@ const socials = [
function SocialMedia() { function SocialMedia() {
return ( return (
<ul className="flex mt-[8px] pb-[32px] relative items-center justify-end gap-4"> <ul className="flex mt-0 sm:mt-[3px] md:mt-[6px] lg:mt-[8px] pb-[16px] sm:pb-[21px] md:pb-[27px] lg:pb-[32px] relative items-center justify-end gap-4">
{socials.map((item, idx) => ( {socials.map((item, idx) => (
<li <li
key={idx} key={idx}
@@ -3,11 +3,11 @@ import React from 'react'
function AddComment() { function AddComment() {
return ( return (
<div className='flex items-center justify-start gap-[16px] my-[24px]'> <div className='flex flex-col md:flex-row gap-y-[12px] items-start md:items-center justify-start gap-[16px] my-[12px] mb-[16] sm:!my-[16px] md:!my-[20px] lg:!my-[24px]'>
<p className='text-[#616161] text-[16px] font-normal'>شما هم نظر خود را به اشتراک بگذارید:</p> <p className='text-[#616161] text-[16px] font-normal'>شما هم نظر خود را به اشتراک بگذارید:</p>
<Button <Button
variant='outlined' variant='outlined'
className='!border !border-[#5559CE] !rounded-[4px] !px-[38px] !py-[9px]' className='!w-full md:!w-fit !border !border-[#5559CE] !rounded-[4px] !px-[38px] !py-[6px] md:!py-[8px] lg:!py-[9px]'
> >
ثبت نظر ثبت نظر
</Button> </Button>
+1 -1
View File
@@ -6,7 +6,7 @@ import AddComment from './AddComment'
function CommentUser({ data }) { function CommentUser({ data }) {
return ( return (
<div className='mt-[24px]'> <div className='mt-[12px] sm:mt-[16px] md:mt-[20px] lg:mt-[24px]'>
<AnimationTextHead name='zoom-in-up' text='نظرات'> <AnimationTextHead name='zoom-in-up' text='نظرات'>
<Underline /> <Underline />
</AnimationTextHead> </AnimationTextHead>
+1 -1
View File
@@ -4,7 +4,7 @@ import CommentUser from "./commentUser";
function Detail({ data }) { function Detail({ data }) {
return ( return (
<div className="w-[68%]"> <div className="w-full lg:w-[68%]">
<Caption data={data} /> <Caption data={data} />
<SocialMedia /> <SocialMedia />
<CommentUser data={data} /> <CommentUser data={data} />
+9 -9
View File
@@ -2,19 +2,19 @@ function Head({ data }) {
return ( return (
<div> <div>
<div className="flex items-center justify-start gap-1"> <div className="flex items-center justify-start gap-1">
<p className="text-[#9B9B9B] text-[16px] font-normal">بلاگ {'>'}</p> <p className="text-[#9B9B9B] text-[11px] sm:text-[13px] md:text-[15px] lg:text-[16px] font-normal">بلاگ {'>'}</p>
<p className="text-[#9B9B9B] text-[16px] font-normal">پوست و مو {'>'}</p> <p className="text-[#9B9B9B] text-[11px] sm:text-[13px] md:text-[15px] lg:text-[16px] font-normal">پوست و مو {'>'}</p>
<p className="text-[#525252] text-[16px] font-normal">روش های خانگی محافظت از پوست در تابستان</p> <p className="text-[#525252] text-[11px] sm:text-[13px] md:text-[15px] lg:text-[16px] font-normal">روش های خانگی محافظت از پوست در تابستان</p>
</div> </div>
<p className="text-[#3B3B3B] mt-[40px] text-[24px] font-bold">روش های خانگی محافظت از پوست در تابستان</p> <p className="text-[#3B3B3B] mt-[24px] sm:mt-[29px] md:mt-[35px] lg:mt-[40px] text-[14px] sm:text-[17px] md:text-[20px] lg:text-[24px] font-bold">روش های خانگی محافظت از پوست در تابستان</p>
<div className="flex mt-6 items-center justify-start gap-[35px]"> <div className="flex mt-[16px] sm:mt-[18px] md:mt-[21px] lg:mt-[24px] items-center justify-start gap-[35px]">
<div className="flex items-center justify-start gap-1"> <div className="flex items-center justify-start gap-1">
<p className="text-[#9B9B9B] text-[14px] font-normal">تاریخ انتشار:</p> <p className="text-[#9B9B9B] text-[11px] md:text-[13px] lg:text-[14px] font-normal">تاریخ انتشار:</p>
<p className="text-[#9B9B9B] text-[16px] font-medium">{data.date_of_release}</p> <p className="text-[#9B9B9B] text-[11px] md:text-[14px] lg:text-[16px] font-medium">{data.date_of_release}</p>
</div> </div>
<div className="flex items-center justify-start gap-1"> <div className="flex items-center justify-start gap-1">
<p className="text-[#9B9B9B] text-[14px] font-normal">زمان مطالعه:</p> <p className="text-[#9B9B9B] text-[11px] md:text-[13px] lg:text-[14px] font-normal">زمان مطالعه:</p>
<p className="text-[#9B9B9B] text-[16px] font-medium">{data.time}</p> <p className="text-[#9B9B9B] text-[11px] md:text-[14px] lg:text-[16px] font-medium">{data.time}</p>
</div> </div>
</div> </div>
</div> </div>
+2 -2
View File
@@ -4,9 +4,9 @@ import RelatedContent from "./relatedContent";
function BlogPage({ article, articles }) { function BlogPage({ article, articles }) {
return ( return (
<div className="padding-responsive pt-[176px]"> <div className="padding-responsive pt-[84px] sm:pt-[110px] md:pt-[140px] lg:pt-[168px]">
<Head data={article} /> <Head data={article} />
<div className="flex items-start justify-center gap-[24px] mt-[24px]"> <div className="flex flex-col gap-y-[32px] lg:flex-row items-start justify-center gap-[24px] mt-[16px] sm:mt-[19px] md:mt-[21px] lg:mt-[24px]">
<Detail data={article} /> <Detail data={article} />
<RelatedContent data={articles} /> <RelatedContent data={articles} />
</div> </div>
+12 -6
View File
@@ -1,29 +1,35 @@
import Image from "next/image"; import Image from "next/image";
import Link from "next/link"; import Link from "next/link";
function Item({ data }) { function Item({ data, idx }) {
return ( return (
<li className="flex relative items-center justify-start gap-[8px] py-[20px]"> <li className="flex relative items-center justify-start gap-[8px] py-[12px] sm:py-[15px] md:py-[18px] lg:py-[20px]">
<Link href={`/blog/${data.id}`}> <Link href={`/blog/${data.id}`}>
<Image <Image
className="w-[97px] h-[88px] rounded-[8px] overflow-hidden object-cover" className="
min-w-[64px] sm:min-w-[73px] md:min-w-[85px] lg:min-w-[97px]
min-h-[56px] sm:min-h-[64px] md:min-h-[75px] lg:min-h-[88px]
rounded-[8px] overflow-hidden object-cover
"
src={data.src} src={data.src}
alt="article" alt="article"
height={88} height={88}
width={97} width={97}
/> />
</Link> </Link>
<div className="flex flex-col gap-[24px] items-start justify-between"> <div className="flex flex-col gap-[16px] sm:gap-[18px] md:gap-[21px] lg:gap-[24px] items-start justify-between">
<Link href={`/blog/${data.id}`}> <Link href={`/blog/${data.id}`}>
<p <p
className="text-[#3B3B3B] text-[16px] text-nowrap font-bold" className="text-[#3B3B3B] text-[14px] md:text-[16px] font-bold text-wrap lg:text-nowrap"
>{data.title}</p> >{data.title}</p>
</Link> </Link>
<p <p
className="text-[#9B9B9B] text-[12px] text-nowrap font-normal" className="text-[#9B9B9B] text-[12px] text-nowrap font-normal"
>تاریخ انتشار: {data.date_of_release}</p> >تاریخ انتشار: {data.date_of_release}</p>
</div> </div>
<span className="block absolute right-0 bottom-0 w-full h-px bg-[#EFEFEF]"></span> {data.id > idx + 1 && (
<span className="block absolute right-0 bottom-0 w-full h-px bg-[#EFEFEF]"></span>
)}
</li> </li>
) )
} }
+4 -3
View File
@@ -5,13 +5,14 @@ import Item from './Item'
function RelatedContent({ data }) { function RelatedContent({ data }) {
return ( return (
<div className='p-[16px] bg-[#FFF] rounded-[8px] shadow-[0px_1px_24.8px_0px_rgba(204,_204,_204,_0.18)]'> <div className='p-[12px] w-full lg:w-fit md:p-[14px] lg:p-[16px] bg-[#FFF] rounded-[8px] shadow-[0px_1px_24.8px_0px_rgba(204,_204,_204,_0.18)]'>
<AnimationTextHead name='fade-up' text='مطالب مرتبط'> <AnimationTextHead name='fade-up' text='مطالب مرتبط'>
<UnderlineLG /> <UnderlineLG />
</AnimationTextHead> </AnimationTextHead>
<ul className='flex w-fit flex-col justify-start items-start'> <ul className='flex w-full lg:w-fit flex-col justify-start items-start'>
{data.map(item => ( {data.map((item, idx) => (
<Item <Item
idx={idx}
data={item} data={item}
key={item.id} key={item.id}
/> />
+11 -11
View File
@@ -3,45 +3,45 @@ import React from 'react'
function Head() { function Head() {
return ( return (
<div className='flex mt-[40px] items-center justify-center gap-[24px]'> <div className='flex flex-col lg:flex-row mt-[40px] items-center justify-center gap-[16px] sm:gap-[19px] md:gap-[22px] lg:gap-[24px]'>
<div className='cover-head-blogs'> <div className='w-full lg:w-1/2 cover-head-blogs'>
<Image <Image
src='/assets/images/head-blogs-1.png' src='/assets/images/head-blogs-1.png'
width={600} width={600}
height={424} height={424}
alt='head blog' alt='head blog'
/> />
<p>روش های خانگی محافظت از پوست در تابستان</p> <p className='text-[14px] sm:text-[17px] md:text-[20px] lg:text-[24px] right-[16px] md:right-[20px] lg:right-[24px]'>روش های خانگی محافظت از پوست در تابستان</p>
</div> </div>
<div className='flex flex-col items-center justify-center gap-[24px]'> <div className='w-full lg:w-1/2 flex flex-col items-center justify-center gap-[16px] sm:gap-[19px] md:gap-[22px] lg:gap-[24px]'>
<div className='flex items-center justify-center gap-[24px]'> <div className='w-full flex flex-col sm:flex-row items-center justify-center gap-[16px] sm:gap-[19px] md:gap-[22px] lg:gap-[24px]'>
<div className='cover-head-blogs'> <div className='w-full cover-head-blogs'>
<Image <Image
src='/assets/images/head-blogs-2.png' src='/assets/images/head-blogs-2.png'
width={600} width={600}
height={424} height={424}
alt='head blog' alt='head blog'
/> />
<p className='!text-[16px] !bottom-[20px] !right-[16px]'>فواید نوشیدن آب برای سلامتی</p> <p className='!text-[14px] md:!text-[16px] !bottom-[20px] !right-[16px]'>فواید نوشیدن آب برای سلامتی</p>
</div> </div>
<div className='cover-head-blogs'> <div className='w-full cover-head-blogs'>
<Image <Image
src='/assets/images/head-blogs-3.png' src='/assets/images/head-blogs-3.png'
width={600} width={600}
height={424} height={424}
alt='head blog' alt='head blog'
/> />
<p className='!text-[16px] !bottom-[20px] !right-[16px]'>راهکارهای ساده برای درمان سر درد</p> <p className='!text-[14px] md:!text-[16px] !bottom-[20px] !right-[16px]'>راهکارهای ساده برای درمان سر درد</p>
</div> </div>
</div> </div>
<div className='cover-head-blogs'> <div className='w-full cover-head-blogs'>
<Image <Image
src='/assets/images/head-blogs-4.png' src='/assets/images/head-blogs-4.png'
width={600} width={600}
height={424} height={424}
alt='head blog' alt='head blog'
/> />
<p>تغذیه مناسب برای کاهش فشار خون</p> <p className='text-[14px] sm:text-[17px] md:text-[20px] lg:text-[24px] right-[16px] md:right-[20px] lg:right-[24px]'>تغذیه مناسب برای کاهش فشار خون</p>
</div> </div>
</div> </div>
</div> </div>
+1 -1
View File
@@ -4,7 +4,7 @@ import LatestArticles from "./latestArticles";
function BlogsPage() { function BlogsPage() {
return ( return (
<div className="padding-responsive pt-[168px]"> <div className="padding-responsive pt-[84px] sm:pt-[110px] md:pt-[140px] lg:pt-[168px]">
<Title /> <Title />
<Head /> <Head />
<LatestArticles /> <LatestArticles />
+4 -3
View File
@@ -6,15 +6,16 @@ function Article({ data }) {
<li className='rounded-[8px] overflow-hidden bg-[#FFF] shadow-[0px_0px_41px_0px_rgba(173,_181,_189,_0.15)]'> <li className='rounded-[8px] overflow-hidden bg-[#FFF] shadow-[0px_0px_41px_0px_rgba(173,_181,_189,_0.15)]'>
<Link href={`/blog/${data.id}`}> <Link href={`/blog/${data.id}`}>
<Image <Image
src={data.src} className='w-full'
alt="article-img" alt="article-img"
src={data.src}
height={217} height={217}
width={392} width={392}
/> />
</Link> </Link>
<div className='p-[16px]'> <div className='p-[12px] md:p-[14px] lg:p-[16px]'>
<Link href={`/blog/${data.id}`}> <Link href={`/blog/${data.id}`}>
<p className='text-[#3B3B3B] mb-[16px] text-[16px] font-bold'>{data.title}</p> <p className='text-[#3B3B3B] mb-[12px] md:mb-[14px] lg:mb-[16px] text-[16px] font-bold'>{data.title}</p>
</Link> </Link>
<div className='flex items-center justify-start gap-[35px]'> <div className='flex items-center justify-start gap-[35px]'>
<p className='text-[#9B9B9B] text-[14px] font-medium'>تاریخ انتشار: {data.date_of_release}</p> <p className='text-[#9B9B9B] text-[14px] font-medium'>تاریخ انتشار: {data.date_of_release}</p>
+2 -2
View File
@@ -5,8 +5,8 @@ import Pagination from '@/app/component/Pagination';
function LatestArticles() { function LatestArticles() {
return ( return (
<div> <div>
<p className="text-[#3B3B3B] text-[20px] font-bold my-[24px]">جدیدترین مقاله ها</p> <p className="text-[#3B3B3B] text-[20px] font-bold my-[16px] md:my-[20px] lg:my-[24px]">جدیدترین مقاله ها</p>
<ul className="grid grid-cols-3 gap-6"> <ul className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-[16px] md:gap-[20px] lg:gap-[24px]">
{articles.map(item => ( {articles.map(item => (
<Article <Article
data={item} data={item}
+11 -9
View File
@@ -3,17 +3,19 @@ import { Button } from "@mui/material"
function ItemTitle({ name, idx, activeBtn, setActiveBtn }) { function ItemTitle({ name, idx, activeBtn, setActiveBtn }) {
return ( return (
<Button <li>
className={` <Button
!py-2 !px-4 !shadow-none !rounded-[8px] className={`
!py-[4px] md:!py-[6px] lg:!py-[8px] !px-[8px] md:!px-[12px] lg:!px-[16px] !shadow-none !rounded-[8px] !text-[14px] md:!text-[16px
${activeBtn === idx ? '!bg-[#F17732] !text-[#FAFAFA]' : '!bg-[#F5F5F5] !text-[#3B3B3B]'} ${activeBtn === idx ? '!bg-[#F17732] !text-[#FAFAFA]' : '!bg-[#F5F5F5] !text-[#3B3B3B]'}
`} `}
onClick={() => setActiveBtn(idx)} onClick={() => setActiveBtn(idx)}
variant="contained" variant="contained"
color="secondary" color="secondary"
> >
{name} {name}
</Button> </Button>
</li>
) )
} }
+2 -2
View File
@@ -9,7 +9,7 @@ function Title() {
const [activeBtn, setActiveBtn] = useState(0); const [activeBtn, setActiveBtn] = useState(0);
return ( return (
<div className="flex items-center justify-start gap-4"> <ul className="flex w-full overflow-auto hidden-scroll items-center justify-start gap-[8px] sm:gap-[10px] md:gap-[13px] lg:gap-[16px]">
{listTitle.map((name, idx) => ( {listTitle.map((name, idx) => (
<ItemTitle <ItemTitle
setActiveBtn={setActiveBtn} setActiveBtn={setActiveBtn}
@@ -19,7 +19,7 @@ function Title() {
key={idx} key={idx}
/> />
))} ))}
</div> </ul>
) )
} }
+1 -1
View File
@@ -17,7 +17,7 @@ function About({ data }) {
<div className="flex flex-col items-center justify-center"> <div className="flex flex-col items-center justify-center">
<p <p
className={` className={`
text-[#525252] text-[16px] font-normal leading-[32px] overflow-hidden relative text-[#525252] text-[16px] font-normal leading-[20px] sm:leading-[24px] md:leading-[28px] lg:leading-[32px] overflow-hidden relative
md:max-h-fit after:absolute after:right-0 after:bottom-0 after:h-[80px] md:max-h-fit after:absolute after:right-0 after:bottom-0 after:h-[80px]
after:shadow-xl after:w-full transition-all duration-500 after:shadow-xl after:w-full transition-all duration-500
${isMore ? ${isMore ?
+3 -3
View File
@@ -9,7 +9,7 @@ import Doctors from './components/doctors';
function ClinicPage({ data, doctors }) { function ClinicPage({ data, doctors }) {
const [value, setValue] = useState(1); const [value, setValue] = useState(0);
const handleChange = (event, newValue) => setValue(newValue); const handleChange = (event, newValue) => setValue(newValue);
const Components = [ const Components = [
@@ -19,12 +19,12 @@ function ClinicPage({ data, doctors }) {
]; ];
return ( return (
<div className="pt-[136px] mt-[40px] padding-responsive"> <div className="pt-[40px] sm:pt-[70px] md:pt-[100px] lg:pt-[136px] mt-[40px] padding-responsive">
<Tabs <Tabs
value={value} value={value}
handleChange={handleChange} handleChange={handleChange}
/> />
<div className='mt-[32px]'> <div className='mt-[24px] sm:mt-[27px] md:mt-[30px] lg:mt-[32px]'>
{Components[value]} {Components[value]}
</div> </div>
</div> </div>
+6 -2
View File
@@ -66,7 +66,10 @@ function ModalSearchCity() {
open={open} open={open}
onClose={handleClose} onClose={handleClose}
> >
<Box sx={styleDefault}> <Box
sx={styleDefault}
className="!w-full !h-full md:!w-fit md:!h-fit"
>
<div <div
className="flex justify-between w-full" className="flex justify-between w-full"
> >
@@ -98,9 +101,10 @@ function ModalSearchCity() {
</div> </div>
<div className="w-full flex justify-end"> <div className="w-full flex justify-end">
<Button <Button
variant="contained"
color="primary" color="primary"
variant="contained"
className="flex !px-3 items-center justify-center gap-1 mr-auto" className="flex !px-3 items-center justify-center gap-1 mr-auto"
onClick={handleClose}
> >
تایید و ادامه تایید و ادامه
<ArrowLeftM /> <ArrowLeftM />
+15 -1
View File
@@ -1,14 +1,28 @@
'use client';
import { useState } from 'react';
import turns from '@/data/turns.json'; import turns from '@/data/turns.json';
import ItemAppointment from './ItemAppointment'; import ModalDatePicker from './modal';
import { Button } from '@mui/material'; import { Button } from '@mui/material';
import ItemAppointment from './ItemAppointment';
import ArrowLeftD from '@/components/icons/ArrowLeftD'; import ArrowLeftD from '@/components/icons/ArrowLeftD';
function AppointmentList({ doctor }) { function AppointmentList({ doctor }) {
const itemActive = turns[0]; const itemActive = turns[0];
const [open, setOpen] = useState(true);
const handleOpen = () => setOpen(true);
const handleClose = () => setOpen(false);
return ( return (
<> <>
<ModalDatePicker
open={open}
handleClose={handleClose}
/>
<ul className="hidden lg:flex w-[38%] flex-col justify-start items-center gap-8"> <ul className="hidden lg:flex w-[38%] flex-col justify-start items-center gap-8">
{turns.map(item => ( {turns.map(item => (
<ItemAppointment <ItemAppointment
@@ -0,0 +1,18 @@
import { Box, Modal } from "@mui/material"
import { styleDefault } from "@/mui"
import DatePicker from "@/app/component/datePicker"
function ModalDatePicker({ open, handleClose }) {
return (
<Modal
open={open}
onClose={handleClose}
>
<Box sx={styleDefault}>
<DatePicker />
</Box>
</Modal>
)
}
export default ModalDatePicker
+1 -1
View File
@@ -18,7 +18,7 @@ function DoctorsPage() {
return ( return (
<div className="pt-[120px] padding-responsive"> <div className="pt-[120px] padding-responsive">
<div className="flex justify-center gap-[16px] sm:gap-[19px] md:gap-[22px] lg:gap-[24px] flex-col items-center mt-[90px]"> <div className="flex justify-center gap-[16px] sm:gap-[19px] md:gap-[22px] lg:gap-[24px] flex-col items-center mt-0 md:mt-[40px] lg:mt-[90px]">
<div className="flex items-center justify-start gap-2 w-full"> <div className="flex items-center justify-start gap-2 w-full">
<LocationD /> <LocationD />
<p className="text-[#525252] text-[16px] font-semibold">خوزستان / اهواز</p> <p className="text-[#525252] text-[16px] font-semibold">خوزستان / اهواز</p>
+2 -2
View File
@@ -1,6 +1,6 @@
import AutoCompleteSelect from "@/app/component/element/AutoCompleteSelect"; import AutoCompleteSelect from "@/app/component/element/AutoCompleteSelect";
import RadioContent from "./RadioContent"; import RadioContent from "./RadioContent";
import { Button, Switch } from "@mui/material"; import { Switch } from "@mui/material";
const specialties = ['چشم پزشکی1', 'چشم پزشکی2', 'چشم پزشکی3', 'چشم پزشکی4', 'چشم پزشکی5']; const specialties = ['چشم پزشکی1', 'چشم پزشکی2', 'چشم پزشکی3', 'چشم پزشکی4', 'چشم پزشکی5'];
const group1 = ['خانم', 'آقا', 'هر دو']; const group1 = ['خانم', 'آقا', 'هر دو'];
@@ -15,7 +15,7 @@ function Content({ data, setData }) {
}; };
return ( return (
<div className="mt-[50px] px-[38px] mb-[32px]"> <div className="mt-[50px] px-[0px] md:px-[19px] lg:px-[38px] mb-[32px]">
<AutoCompleteSelect <AutoCompleteSelect
updateData={(event) => changeData(event.target.innerText, 'expertise')} updateData={(event) => changeData(event.target.innerText, 'expertise')}
list={specialties} list={specialties}
+1 -1
View File
@@ -26,7 +26,7 @@ function FilterModal({ data, setData, children }) {
> >
<div <div
style={styleDefault} style={styleDefault}
className="!px-[32px] !py-[24px] !bg-[#FFF] !rounded-[8px] !overflow-hidden !shadow-[0px_1px_24.8px_0px_rgba(204,_204,_204,_0.18)] className="!px-[16px] md:!px-[24px] lg:!px-[32px] !py-[24px] !bg-[#FFF] !rounded-[8px] !overflow-hidden !shadow-[0px_1px_24.8px_0px_rgba(204,_204,_204,_0.18)]
!w-full md:!w-fit !h-full md:!h-fit !flex !flex-col !justify-between" !w-full md:!w-fit !h-full md:!h-fit !flex !flex-col !justify-between"
> >
<div> <div>
+1 -2
View File
@@ -5,8 +5,7 @@ const about = ['سوالات متداول', 'تماس با ما', 'درباره
function RegisterPage({ children }) { function RegisterPage({ children }) {
return ( return (
<div <div
className="flex padding-responsive items-center justify-start sm:justify-center flex-col !bg-contain !bg-no-repeat className="flex padding-responsive items-center justify-start sm:justify-center flex-col place-items-center h-screen w-full bg-banner-stroke !bg-bottom !bg-no-repeat !bg-cover"
!bg-top place-items-center h-screen w-full"
> >
<div className="flex items-center justify-center gap-[5px] mt-[32px] sm:mt-0"> <div className="flex items-center justify-center gap-[5px] mt-[32px] sm:mt-0">
<Image <Image
+18962 -149
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -15,7 +15,10 @@
"@mui/material": "^5.14.17", "@mui/material": "^5.14.17",
"@mui/styled-engine-sc": "^6.0.0-alpha.18", "@mui/styled-engine-sc": "^6.0.0-alpha.18",
"aos": "^2.3.4", "aos": "^2.3.4",
"i": "^0.3.7",
"jalaali-react-date-picker": "^1.0.18",
"next": "14.2.3", "next": "14.2.3",
"npm": "^10.8.2",
"react": "^18", "react": "^18",
"react-dom": "^18", "react-dom": "^18",
"styled-components": "^6.1.11", "styled-components": "^6.1.11",
+7
View File
@@ -0,0 +1,7 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="vuesax/outline/arrow-right">
<g id="arrow-right">
<path id="Vector" d="M8.90961 21.17C8.71961 21.17 8.52961 21.1 8.37961 20.95C8.08961 20.66 8.08961 20.18 8.37961 19.89L14.8996 13.37C15.3796 12.89 15.3796 12.11 14.8996 11.63L8.37961 5.10999C8.08961 4.81999 8.08961 4.33999 8.37961 4.04999C8.66961 3.75999 9.14961 3.75999 9.43961 4.04999L15.9596 10.57C16.4696 11.08 16.7596 11.77 16.7596 12.5C16.7596 13.23 16.4796 13.92 15.9596 14.43L9.43961 20.95C9.28961 21.09 9.09961 21.17 8.90961 21.17Z" fill="#292D32"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 629 B