@ -1,38 +1,12 @@ |
|||||||
.App { |
body { |
||||||
text-align: center; |
background-color: #f5f5f5 !important; |
||||||
|
direction: rtl; |
||||||
} |
} |
||||||
|
button { |
||||||
.App-logo { |
outline: none !important; |
||||||
height: 40vmin; |
border: none !important; |
||||||
pointer-events: none; |
|
||||||
} |
|
||||||
|
|
||||||
@media (prefers-reduced-motion: no-preference) { |
|
||||||
.App-logo { |
|
||||||
animation: App-logo-spin infinite 20s linear; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.App-header { |
|
||||||
background-color: #282c34; |
|
||||||
min-height: 100vh; |
|
||||||
display: flex; |
|
||||||
flex-direction: column; |
|
||||||
align-items: center; |
|
||||||
justify-content: center; |
|
||||||
font-size: calc(10px + 2vmin); |
|
||||||
color: white; |
|
||||||
} |
|
||||||
|
|
||||||
.App-link { |
|
||||||
color: #61dafb; |
|
||||||
} |
} |
||||||
|
|
||||||
@keyframes App-logo-spin { |
input { |
||||||
from { |
outline: none !important; |
||||||
transform: rotate(0deg); |
|
||||||
} |
|
||||||
to { |
|
||||||
transform: rotate(360deg); |
|
||||||
} |
|
||||||
} |
} |
||||||
|
@ -1,8 +0,0 @@ |
|||||||
import { render, screen } from '@testing-library/react'; |
|
||||||
import App from './App'; |
|
||||||
|
|
||||||
test('renders learn react link', () => { |
|
||||||
render(<App />); |
|
||||||
const linkElement = screen.getByText(/learn react/i); |
|
||||||
expect(linkElement).toBeInTheDocument(); |
|
||||||
}); |
|
@ -0,0 +1,22 @@ |
|||||||
|
.box { |
||||||
|
cursor: pointer; |
||||||
|
transition: all 0.4s; |
||||||
|
} |
||||||
|
|
||||||
|
.box:hover { |
||||||
|
background-color: #f5f5f5; |
||||||
|
transform: translateY(-5px) !important; |
||||||
|
} |
||||||
|
|
||||||
|
.title-holder h1 { |
||||||
|
margin-left: 13px !important; |
||||||
|
} |
||||||
|
|
||||||
|
.image-box { |
||||||
|
background-color: #f3f0d7; |
||||||
|
width: 20%; |
||||||
|
} |
||||||
|
|
||||||
|
.content-holder { |
||||||
|
width: 70%; |
||||||
|
} |
@ -0,0 +1,148 @@ |
|||||||
|
import React from "react"; |
||||||
|
import "./Functionalities.css"; |
||||||
|
import airplane from "../../icons/vuesax-linear-airplane.png"; |
||||||
|
|
||||||
|
const Functionalities = () => { |
||||||
|
return ( |
||||||
|
<section className="functionality bg-white"> |
||||||
|
<div className="container"> |
||||||
|
<div className="row justify-content-around py-5"> |
||||||
|
{/* box1 */} |
||||||
|
<div className="col-5 box d-flex justify-content-around align-items-center p-4 border"> |
||||||
|
{/* imageHolder */} |
||||||
|
<div className="image-box rounded-3 shadow-sm border"> |
||||||
|
<img src={airplane} alt="" className="p-2 image-bg" /> |
||||||
|
</div> |
||||||
|
{/* text holder */} |
||||||
|
<div className="content-holder "> |
||||||
|
{/* title */} |
||||||
|
<div className="title-holder d-flex align-items-center justify-content-center text-center"> |
||||||
|
<h1 className="fs-5 text-success">قابلیت امتیازدهی</h1> |
||||||
|
<button type="button" className="btn btn-success"> |
||||||
|
جدید |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
{/* paragraph */} |
||||||
|
<p className="mt-1"> |
||||||
|
قابلیت امتیازدهی به مطالب از جمله امکانات می باشد تا به جامعه |
||||||
|
هدف کارکنان کمک نمیاد. |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
{/* box2 */} |
||||||
|
<div className="col-5 box d-flex justify-content-around align-items-center p-4 border"> |
||||||
|
{/* imageHolder */} |
||||||
|
<div className="image-box rounded-3 shadow-sm border"> |
||||||
|
<img src={airplane} alt="" className="p-2 image-bg" /> |
||||||
|
</div> |
||||||
|
{/* text holder */} |
||||||
|
<div className="content-holder "> |
||||||
|
{/* title */} |
||||||
|
<div className="title-holder d-flex align-items-center justify-content-center text-center"> |
||||||
|
<h1 className="fs-5 text-success">قابلیت امتیازدهی</h1> |
||||||
|
<button type="button" className="btn btn-success"> |
||||||
|
جدید |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
{/* paragraph */} |
||||||
|
<p className="mt-1"> |
||||||
|
قابلیت امتیازدهی به مطالب از جمله امکانات می باشد تا به جامعه |
||||||
|
هدف کارکنان کمک نمیاد. |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
{/* box3 */} |
||||||
|
<div className="col-5 box d-flex justify-content-around align-items-center p-4 border mt-4"> |
||||||
|
{/* imageHolder */} |
||||||
|
<div className="image-box rounded-3 shadow-sm border"> |
||||||
|
<img src={airplane} alt="" className="p-2 image-bg" /> |
||||||
|
</div> |
||||||
|
{/* text holder */} |
||||||
|
<div className="content-holder "> |
||||||
|
{/* title */} |
||||||
|
<div className="title-holder d-flex align-items-center justify-content-center text-center"> |
||||||
|
<h1 className="fs-5 text-success">قابلیت امتیازدهی</h1> |
||||||
|
<button type="button" className="btn btn-success"> |
||||||
|
جدید |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
{/* paragraph */} |
||||||
|
<p className="mt-1"> |
||||||
|
قابلیت امتیازدهی به مطالب از جمله امکانات می باشد تا به جامعه |
||||||
|
هدف کارکنان کمک نمیاد. |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
{/* box4 */} |
||||||
|
<div className="col-5 box d-flex justify-content-around align-items-center p-4 border mt-4"> |
||||||
|
{/* imageHolder */} |
||||||
|
<div className="image-box rounded-3 shadow-sm border"> |
||||||
|
<img src={airplane} alt="" className="p-2 image-bg" /> |
||||||
|
</div> |
||||||
|
{/* text holder */} |
||||||
|
<div className="content-holder "> |
||||||
|
{/* title */} |
||||||
|
<div className="title-holder d-flex align-items-center justify-content-center text-center"> |
||||||
|
<h1 className="fs-5 text-success">قابلیت امتیازدهی</h1> |
||||||
|
<button type="button" className="btn btn-success"> |
||||||
|
جدید |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
{/* paragraph */} |
||||||
|
<p className="mt-1"> |
||||||
|
قابلیت امتیازدهی به مطالب از جمله امکانات می باشد تا به جامعه |
||||||
|
هدف کارکنان کمک نمیاد. |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
{/* box5 */} |
||||||
|
<div className="col-5 box d-flex justify-content-around align-items-center p-4 border mt-4"> |
||||||
|
{/* imageHolder */} |
||||||
|
<div className="image-box rounded-3 shadow-sm border"> |
||||||
|
<img src={airplane} alt="" className="p-2 image-bg" /> |
||||||
|
</div> |
||||||
|
{/* text holder */} |
||||||
|
<div className="content-holder "> |
||||||
|
{/* title */} |
||||||
|
<div className="title-holder d-flex align-items-center justify-content-center text-center"> |
||||||
|
<h1 className="fs-5 text-success">قابلیت امتیازدهی</h1> |
||||||
|
<button type="button" className="btn btn-success"> |
||||||
|
جدید |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
{/* paragraph */} |
||||||
|
<p className="mt-1"> |
||||||
|
قابلیت امتیازدهی به مطالب از جمله امکانات می باشد تا به جامعه |
||||||
|
هدف کارکنان کمک نمیاد. |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
{/* box6 */} |
||||||
|
<div className="col-5 box d-flex justify-content-around align-items-center p-4 border mt-4"> |
||||||
|
{/* imageHolder */} |
||||||
|
<div className="image-box rounded-3 shadow-sm border"> |
||||||
|
<img src={airplane} alt="" className="p-2 image-bg" /> |
||||||
|
</div> |
||||||
|
{/* text holder */} |
||||||
|
<div className="content-holder "> |
||||||
|
{/* title */} |
||||||
|
<div className="title-holder d-flex align-items-center justify-content-center text-center"> |
||||||
|
<h1 className="fs-5 text-success">قابلیت امتیازدهی</h1> |
||||||
|
<button type="button" className="btn btn-success"> |
||||||
|
جدید |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
{/* paragraph */} |
||||||
|
<p className="mt-1"> |
||||||
|
قابلیت امتیازدهی به مطالب از جمله امکانات می باشد تا به جامعه |
||||||
|
هدف کارکنان کمک نمیاد. |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</section> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Functionalities; |
@ -0,0 +1,153 @@ |
|||||||
|
import React from "react"; |
||||||
|
import Swal from "sweetalert2"; |
||||||
|
import withReactContent from "sweetalert2-react-content"; |
||||||
|
import "./alert.css"; |
||||||
|
import undraw from "../../icons/undraw.png"; |
||||||
|
|
||||||
|
const Alert = () => { |
||||||
|
// error1
|
||||||
|
const showAlert = () => { |
||||||
|
Swal.fire({ |
||||||
|
title: "عنوان متن ارور", |
||||||
|
text: "در این قسمت یک توضیح بسیار کوتاه یا عادی در مورد ارور نوشته خواهد شد. طراح سعی می کند تا این متن را بیشتر از حدانتظار بلند کند تا دیگران متوجه مفهوم شوند", |
||||||
|
confirmButtonText: "متوجه شدم", |
||||||
|
showCloseButton: true, |
||||||
|
customClass: { |
||||||
|
title: "title-error-1", |
||||||
|
closeButton: "close-button-1", |
||||||
|
confirmButton: "confirm-button-1", |
||||||
|
}, |
||||||
|
}); |
||||||
|
}; |
||||||
|
// error2
|
||||||
|
const showAlert2 = () => { |
||||||
|
Swal.fire({ |
||||||
|
title: "عنوان متن ارور", |
||||||
|
text: "در این قسمت یک توضیح بسیار کوتاه یا عادی در مورد ارور نوشته خواهد شد. طراح سعی می کند تا این متن را بیشتر از حدانتظار بلند کند تا دیگران متوجه مفهوم شوند", |
||||||
|
confirmButtonText: "توضیح بیشتر", |
||||||
|
showCloseButton: true, |
||||||
|
showCancelButton: true, |
||||||
|
cancelButtonText: "متوجه شدم", |
||||||
|
customClass: { |
||||||
|
title: "title-error-1", |
||||||
|
closeButton: "close-button-1", |
||||||
|
confirmButton: "confirm-button-1", |
||||||
|
cancelButton: "cancle-button1", |
||||||
|
}, |
||||||
|
}).then((result) => { |
||||||
|
if (result.isConfirmed) { |
||||||
|
Swal.fire("Deleted!", "Your file has been deleted.", "success"); |
||||||
|
} |
||||||
|
}); |
||||||
|
}; |
||||||
|
// error3
|
||||||
|
const showAlert3 = () => { |
||||||
|
Swal.fire({ |
||||||
|
title: "عنوان متن ارور", |
||||||
|
text: "در این قسمت یک توضیح بسیار کوتاه یا عادی در مورد ارور نوشته خواهد شد. طراح سعی می کند تا این متن را بیشتر از حدانتظار بلند کند تا دیگران متوجه مفهوم شوند", |
||||||
|
confirmButtonText: "توضیح بیشتر", |
||||||
|
customClass: { |
||||||
|
title: "title-error-2", |
||||||
|
closeButton: "close-button-2", |
||||||
|
confirmButton: "confirm-button-2", |
||||||
|
cancelButton: "cancle-button2", |
||||||
|
}, |
||||||
|
showCloseButton: true, |
||||||
|
showCancelButton: true, |
||||||
|
cancelButtonText: "متوجه شدم", |
||||||
|
}).then((result) => { |
||||||
|
if (result.isConfirmed) { |
||||||
|
Swal.fire("Deleted!", "Your file has been deleted.", "success"); |
||||||
|
} |
||||||
|
}); |
||||||
|
}; |
||||||
|
// error4
|
||||||
|
const showAlert4 = () => { |
||||||
|
Swal.fire({ |
||||||
|
icon: "success", |
||||||
|
title: "عنوان متن ارور", |
||||||
|
text: "در این قسمت یک توضیح بسیار کوتاه یا عادی در مورد ارور نوشته خواهد شد. طراح سعی می کند تا این متن را بیشتر از حدانتظار بلند کند تا دیگران متوجه مفهوم شوند", |
||||||
|
confirmButtonText: "توضیح بیشتر", |
||||||
|
showCloseButton: true, |
||||||
|
showCancelButton: true, |
||||||
|
cancelButtonText: "متوجه شدم", |
||||||
|
customClass: { |
||||||
|
title: "title-error-4", |
||||||
|
closeButton: "close-button-2", |
||||||
|
confirmButton: "confirm-button-2", |
||||||
|
cancelButton: "cancle-button2", |
||||||
|
}, |
||||||
|
}).then((result) => { |
||||||
|
if (result.isConfirmed) { |
||||||
|
Swal.fire("Deleted!", "Your file has been deleted.", "success"); |
||||||
|
} |
||||||
|
}); |
||||||
|
}; |
||||||
|
// error5
|
||||||
|
const showAlert5 = () => { |
||||||
|
const { value: email } = Swal.fire({ |
||||||
|
input: "email", |
||||||
|
inputPlaceholder: "ایمیل خود را اینجا بنویسید", |
||||||
|
imageUrl: "https://unsplash.it/400/200", |
||||||
|
imageAlt: "Custom image", |
||||||
|
showCloseButton: true, |
||||||
|
imageWidth: 400, |
||||||
|
imageHeight: 200, |
||||||
|
confirmButtonText: "عضو شوید", |
||||||
|
html: "<p> این یک پیام تستی است <span style='color:#3ee924;'> که میتوان استایل دلخواه با استفاده از کدهای اچ تی ام ال داد و من اول یه تگ پی گذاشتم و بعد داخل تگ یه اسپن گذاشتم و به این استایل اینلاین دادم</span></p>", |
||||||
|
customClass: { |
||||||
|
confirmButton: "confirm-button-5", |
||||||
|
input: "input-error-5", |
||||||
|
closeButton: "close-button-2", |
||||||
|
}, |
||||||
|
}); |
||||||
|
|
||||||
|
if (email) { |
||||||
|
Swal.fire(`Entered email: ${email}`); |
||||||
|
} |
||||||
|
}; |
||||||
|
// error6
|
||||||
|
const showAlert6 = () => { |
||||||
|
Swal.fire({ |
||||||
|
title: "عنوان متن ارور", |
||||||
|
text: "در این قسمت یک توضیح بسیار کوتاه یا عادی در مورد ارور نوشته خواهد شد. طراح سعی می کند تا این متن را بیشتر از حدانتظار بلند کند تا دیگران متوجه مفهوم شوند", |
||||||
|
confirmButtonText: "مشاهده امکانات", |
||||||
|
showCloseButton: true, |
||||||
|
customClass: { |
||||||
|
title: "title-error-1", |
||||||
|
closeButton: "close-button-6", |
||||||
|
confirmButton: "confirm-button-1", |
||||||
|
}, |
||||||
|
}).then((result) => { |
||||||
|
if (result.isConfirmed) { |
||||||
|
Swal.fire("Deleted!", "Your file has been deleted.", "success"); |
||||||
|
} |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
return ( |
||||||
|
<div className="mt-5"> |
||||||
|
<button className="btn btn-danger btn-lg" onClick={showAlert}> |
||||||
|
اررور 1 |
||||||
|
</button> |
||||||
|
<button className="btn btn-danger btn-lg" onClick={showAlert2}> |
||||||
|
اررور 2 |
||||||
|
</button> |
||||||
|
<button className="btn btn-danger btn-lg eroorr" onClick={showAlert3}> |
||||||
|
اررور 3 |
||||||
|
</button> |
||||||
|
<button className="btn btn-danger btn-lg" onClick={showAlert4}> |
||||||
|
4 اررور |
||||||
|
</button> |
||||||
|
<button className="btn btn-danger btn-lg" onClick={showAlert5}> |
||||||
|
5 اررور |
||||||
|
</button> |
||||||
|
<button className="btn btn-danger btn-lg" onClick={showAlert6}> |
||||||
|
6 اررور |
||||||
|
</button> |
||||||
|
<button className="btn btn-danger btn-lg">7 اررور</button> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Alert; |
@ -0,0 +1,172 @@ |
|||||||
|
:root { |
||||||
|
--error-color1: #06bace; |
||||||
|
--error-color2: #3ee924; |
||||||
|
--white: #fff; |
||||||
|
--content-color: #646464; |
||||||
|
} |
||||||
|
/* TODO common styles */ |
||||||
|
.swal2-container.swal2-center > .swal2-popup { |
||||||
|
border: solid 2px #707070; |
||||||
|
padding: 10px; |
||||||
|
} |
||||||
|
/* ? کلاس تمامی تایتل ها */ |
||||||
|
.swal2-title { |
||||||
|
text-align: right; |
||||||
|
font-size: 26px; |
||||||
|
} |
||||||
|
/* ? کلاس متن داخل الرت باکس */ |
||||||
|
.swal2-html-container { |
||||||
|
text-align: justify; |
||||||
|
line-height: 1.8; |
||||||
|
color: var(--content-color) !important; |
||||||
|
font-weight: 600; |
||||||
|
} |
||||||
|
/* ? کلاس ایکن کنسل یا ضربدر بالا سمت چپ الرت باکس */ |
||||||
|
.swal2-rtl .swal2-close { |
||||||
|
border-radius: 10px; |
||||||
|
margin-left: 10px; |
||||||
|
margin-top: 13px; |
||||||
|
transition: all 0.4s; |
||||||
|
} |
||||||
|
/* ? کلاس کانفرم باتن */ |
||||||
|
.swal2-styled.swal2-confirm { |
||||||
|
transition: all 0.4s; |
||||||
|
outline: none !important; |
||||||
|
} |
||||||
|
/* ? کلاس هاور کانفرم باتن */ |
||||||
|
.swal2-styled.swal2-confirm:hover { |
||||||
|
transform: translateY(-5px) !important; |
||||||
|
} |
||||||
|
/* ? کلاس کنسل باتن */ |
||||||
|
.swal2-styled.swal2-cancel { |
||||||
|
transition: all 0.4s; |
||||||
|
} |
||||||
|
/* ? کلاس هاور کنسل باتن */ |
||||||
|
.swal2-styled.swal2-cancel:hover { |
||||||
|
transform: translateY(-5px) !important; |
||||||
|
} |
||||||
|
/* ? ایکن اررور */ |
||||||
|
.swal2-icon.swal2-error { |
||||||
|
border-color: #e92424; |
||||||
|
color: #e92424; |
||||||
|
} |
||||||
|
/* !error 1 */ |
||||||
|
/* به اررور های ابی رنگ کلاس هایی دادم که اخرش با 1 تمام میشود */ |
||||||
|
/* TODO باکس اول از سمت راست در فایل پی اس دی */ |
||||||
|
/* ? تایتل */ |
||||||
|
.title-error-1 { |
||||||
|
color: var(--error-color1) !important; |
||||||
|
} |
||||||
|
|
||||||
|
.eroorr:focus { |
||||||
|
outline: none !important; |
||||||
|
box-shadow: 0px 0px 0px black !important; |
||||||
|
border: 0px; |
||||||
|
} |
||||||
|
|
||||||
|
/* ? دکمه ضربدر بالا سمت چپ */ |
||||||
|
.close-button-1 { |
||||||
|
background-color: var(--error-color1) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
} |
||||||
|
/* ? هاور دکمه ضربدر بالا سمت چپ */ |
||||||
|
.close-button-1:hover { |
||||||
|
background-color: var(--white) !important; |
||||||
|
color: var(--error-color1) !important; |
||||||
|
border: solid 4px var(--error-color1) !important; |
||||||
|
} |
||||||
|
/* ? کانفرم باتن */ |
||||||
|
.confirm-button-1 { |
||||||
|
background-color: var(--white) !important; |
||||||
|
border: solid 2px var(--error-color1) !important; |
||||||
|
color: var(--error-color1) !important; |
||||||
|
} |
||||||
|
/* ? هاور کانفرم باتن */ |
||||||
|
.confirm-button-1:hover { |
||||||
|
background-color: var(--error-color1) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
} |
||||||
|
/* !error 2 */ |
||||||
|
/* ? کنسل باتن */ |
||||||
|
.cancle-button1 { |
||||||
|
background-color: var(--error-color1) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
border: solid 2px var(--error-color1) !important; |
||||||
|
} |
||||||
|
/* ? هاور کنسل باتن */ |
||||||
|
.cancle-button1:hover { |
||||||
|
background-color: var(--white) !important; |
||||||
|
color: var(--error-color1) !important; |
||||||
|
} |
||||||
|
/* !error3 */ |
||||||
|
/* ? تایتل */ |
||||||
|
.title-error-2 { |
||||||
|
color: var(--error-color2) !important; |
||||||
|
} |
||||||
|
/* ? دکمه ضربدر بالا سمت چپ */ |
||||||
|
.close-button-2 { |
||||||
|
background-color: var(--error-color2) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
} |
||||||
|
/* ? هاور دکمه ضربدر بالا سمت چپ */ |
||||||
|
.close-button-2:hover { |
||||||
|
background-color: var(--white) !important; |
||||||
|
color: var(--error-color2) !important; |
||||||
|
border: solid 4px var(--error-color2) !important; |
||||||
|
} |
||||||
|
/* ? کانفرم باتن */ |
||||||
|
.confirm-button-2 { |
||||||
|
background-color: var(--white) !important; |
||||||
|
border: solid 2px var(--error-color2) !important; |
||||||
|
color: var(--error-color2) !important; |
||||||
|
} |
||||||
|
/* ? هاور کانفرم باتن */ |
||||||
|
.confirm-button-2:hover { |
||||||
|
background-color: var(--error-color2) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
} |
||||||
|
/* ? کنسل باتن */ |
||||||
|
.cancle-button2 { |
||||||
|
background-color: var(--error-color2) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
border: solid 2px var(--error-color2) !important; |
||||||
|
} |
||||||
|
/* ? هاور کنسل باتن */ |
||||||
|
.cancle-button2:hover { |
||||||
|
background-color: var(--white) !important; |
||||||
|
color: var(--error-color2) !important; |
||||||
|
} |
||||||
|
/* !error4 */ |
||||||
|
/* ? تایتل */ |
||||||
|
.title-error-4 { |
||||||
|
text-align: center !important; |
||||||
|
color: var(--error-color2) !important; |
||||||
|
} |
||||||
|
/* !error5 */ |
||||||
|
/* ? کانفرم باتن */ |
||||||
|
.confirm-button-5 { |
||||||
|
background-color: var(--error-color2) !important; |
||||||
|
margin-top: -81px; |
||||||
|
margin-left: -260px; |
||||||
|
padding: 12px 15px; |
||||||
|
border-top-right-radius: 0px !important; |
||||||
|
border-bottom-right-radius: 0px !important; |
||||||
|
} |
||||||
|
/* ? اینپوت فیلد */ |
||||||
|
.input-error-5 { |
||||||
|
width: 70% !important; |
||||||
|
height: 47px !important ; |
||||||
|
border-top-left-radius: 0px !important; |
||||||
|
border-bottom-left-radius: 0px !important; |
||||||
|
} |
||||||
|
/* !error6 */ |
||||||
|
/* ? دکمه ضربدر بالا سمت چپ */ |
||||||
|
.close-button-6 { |
||||||
|
color: var(--error-color1) !important; |
||||||
|
} |
||||||
|
/* ? هاور دکمه ضربدر بالا سمت چپ */ |
||||||
|
.close-button-6:hover { |
||||||
|
background-color: var(--error-color1) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
border: solid 4px var(--error-color1) !important; |
||||||
|
} |
@ -0,0 +1,172 @@ |
|||||||
|
:root { |
||||||
|
--error-color1: #06bace; |
||||||
|
--error-color2: #3ee924; |
||||||
|
--white: #fff; |
||||||
|
--content-color: #646464; |
||||||
|
} |
||||||
|
/* TODO common styles */ |
||||||
|
.swal2-container.swal2-center > .swal2-popup { |
||||||
|
border: solid 2px #707070; |
||||||
|
padding: 10px; |
||||||
|
} |
||||||
|
/* ? کلاس تمامی تایتل ها */ |
||||||
|
.swal2-title { |
||||||
|
text-align: right; |
||||||
|
font-size: 26px; |
||||||
|
} |
||||||
|
/* ? کلاس متن داخل الرت باکس */ |
||||||
|
.swal2-html-container { |
||||||
|
text-align: justify; |
||||||
|
line-height: 1.8; |
||||||
|
color: var(--content-color) !important; |
||||||
|
font-weight: 600; |
||||||
|
} |
||||||
|
/* ? کلاس ایکن کنسل یا ضربدر بالا سمت چپ الرت باکس */ |
||||||
|
.swal2-rtl .swal2-close { |
||||||
|
border-radius: 10px; |
||||||
|
margin-left: 10px; |
||||||
|
margin-top: 13px; |
||||||
|
transition: all 0.4s; |
||||||
|
} |
||||||
|
/* ? کلاس کانفرم باتن */ |
||||||
|
.swal2-styled.swal2-confirm { |
||||||
|
transition: all 0.4s; |
||||||
|
outline: none !important; |
||||||
|
} |
||||||
|
/* ? کلاس هاور کانفرم باتن */ |
||||||
|
.swal2-styled.swal2-confirm:hover { |
||||||
|
transform: translateY(-5px) !important; |
||||||
|
} |
||||||
|
/* ? کلاس کنسل باتن */ |
||||||
|
.swal2-styled.swal2-cancel { |
||||||
|
transition: all 0.4s; |
||||||
|
} |
||||||
|
/* ? کلاس هاور کنسل باتن */ |
||||||
|
.swal2-styled.swal2-cancel:hover { |
||||||
|
transform: translateY(-5px) !important; |
||||||
|
} |
||||||
|
/* ? ایکن اررور */ |
||||||
|
.swal2-icon.swal2-error { |
||||||
|
border-color: #e92424; |
||||||
|
color: #e92424; |
||||||
|
} |
||||||
|
/* !error 1 */ |
||||||
|
/* به اررور های ابی رنگ کلاس هایی دادم که اخرش با 1 تمام میشود */ |
||||||
|
/* TODO باکس اول از سمت راست در فایل پی اس دی */ |
||||||
|
/* ? تایتل */ |
||||||
|
.title-error-1 { |
||||||
|
color: var(--error-color1) !important; |
||||||
|
} |
||||||
|
|
||||||
|
.eroorr:focus { |
||||||
|
outline: none !important; |
||||||
|
box-shadow: 0px 0px 0px black !important; |
||||||
|
border: 0px; |
||||||
|
} |
||||||
|
|
||||||
|
/* ? دکمه ضربدر بالا سمت چپ */ |
||||||
|
.close-button-1 { |
||||||
|
background-color: var(--error-color1) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
} |
||||||
|
/* ? هاور دکمه ضربدر بالا سمت چپ */ |
||||||
|
.close-button-1:hover { |
||||||
|
background-color: var(--white) !important; |
||||||
|
color: var(--error-color1) !important; |
||||||
|
border: solid 4px var(--error-color1) !important; |
||||||
|
} |
||||||
|
/* ? کانفرم باتن */ |
||||||
|
.confirm-button-1 { |
||||||
|
background-color: var(--white) !important; |
||||||
|
border: solid 2px var(--error-color1) !important; |
||||||
|
color: var(--error-color1) !important; |
||||||
|
} |
||||||
|
/* ? هاور کانفرم باتن */ |
||||||
|
.confirm-button-1:hover { |
||||||
|
background-color: var(--error-color1) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
} |
||||||
|
/* !error 2 */ |
||||||
|
/* ? کنسل باتن */ |
||||||
|
.cancle-button1 { |
||||||
|
background-color: var(--error-color1) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
border: solid 2px var(--error-color1) !important; |
||||||
|
} |
||||||
|
/* ? هاور کنسل باتن */ |
||||||
|
.cancle-button1:hover { |
||||||
|
background-color: var(--white) !important; |
||||||
|
color: var(--error-color1) !important; |
||||||
|
} |
||||||
|
/* !error3 */ |
||||||
|
/* ? تایتل */ |
||||||
|
.title-error-2 { |
||||||
|
color: var(--error-color2) !important; |
||||||
|
} |
||||||
|
/* ? دکمه ضربدر بالا سمت چپ */ |
||||||
|
.close-button-2 { |
||||||
|
background-color: var(--error-color2) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
} |
||||||
|
/* ? هاور دکمه ضربدر بالا سمت چپ */ |
||||||
|
.close-button-2:hover { |
||||||
|
background-color: var(--white) !important; |
||||||
|
color: var(--error-color2) !important; |
||||||
|
border: solid 4px var(--error-color2) !important; |
||||||
|
} |
||||||
|
/* ? کانفرم باتن */ |
||||||
|
.confirm-button-2 { |
||||||
|
background-color: var(--white) !important; |
||||||
|
border: solid 2px var(--error-color2) !important; |
||||||
|
color: var(--error-color2) !important; |
||||||
|
} |
||||||
|
/* ? هاور کانفرم باتن */ |
||||||
|
.confirm-button-2:hover { |
||||||
|
background-color: var(--error-color2) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
} |
||||||
|
/* ? کنسل باتن */ |
||||||
|
.cancle-button2 { |
||||||
|
background-color: var(--error-color2) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
border: solid 2px var(--error-color2) !important; |
||||||
|
} |
||||||
|
/* ? هاور کنسل باتن */ |
||||||
|
.cancle-button2:hover { |
||||||
|
background-color: var(--white) !important; |
||||||
|
color: var(--error-color2) !important; |
||||||
|
} |
||||||
|
/* !error4 */ |
||||||
|
/* ? تایتل */ |
||||||
|
.title-error-4 { |
||||||
|
text-align: center !important; |
||||||
|
color: var(--error-color2) !important; |
||||||
|
} |
||||||
|
/* !error5 */ |
||||||
|
/* ? کانفرم باتن */ |
||||||
|
.confirm-button-5 { |
||||||
|
background-color: var(--error-color2) !important; |
||||||
|
margin-top: -81px; |
||||||
|
margin-left: -260px; |
||||||
|
padding: 12px 15px; |
||||||
|
border-top-right-radius: 0px !important; |
||||||
|
border-bottom-right-radius: 0px !important; |
||||||
|
} |
||||||
|
/* ? اینپوت فیلد */ |
||||||
|
.input-error-5 { |
||||||
|
width: 70% !important; |
||||||
|
height: 47px !important ; |
||||||
|
border-top-left-radius: 0px !important; |
||||||
|
border-bottom-left-radius: 0px !important; |
||||||
|
} |
||||||
|
/* !error6 */ |
||||||
|
/* ? دکمه ضربدر بالا سمت چپ */ |
||||||
|
.close-button-6 { |
||||||
|
color: var(--error-color1) !important; |
||||||
|
} |
||||||
|
/* ? هاور دکمه ضربدر بالا سمت چپ */ |
||||||
|
.close-button-6:hover { |
||||||
|
background-color: var(--error-color1) !important; |
||||||
|
color: var(--white) !important; |
||||||
|
border: solid 4px var(--error-color1) !important; |
||||||
|
} |
@ -0,0 +1,29 @@ |
|||||||
|
import React from "react"; |
||||||
|
import "./footer.css"; |
||||||
|
|
||||||
|
const Footer = () => { |
||||||
|
return ( |
||||||
|
<footer className="p-2 rounded"> |
||||||
|
<div className="container"> |
||||||
|
<div className="row"> |
||||||
|
<div className="col-8 text-white"> |
||||||
|
<h4>هزاران درصد تخفیف بیشتر</h4> |
||||||
|
<p className="me-4 text-white"> |
||||||
|
با وارد کردن کد بهار تابستون از تخفیف 10 درصدی ویژه برخوردار شوید |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
<div className="col-4 align-items-end"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
class="btn btn-outline-info btn-lg text-white text-center" |
||||||
|
> |
||||||
|
مشاهده امکانات |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Footer; |
@ -0,0 +1,3 @@ |
|||||||
|
footer { |
||||||
|
background-color: #2f6aa1; |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
import React from "react"; |
||||||
|
import "./header.css"; |
||||||
|
|
||||||
|
const Header = () => { |
||||||
|
return ( |
||||||
|
<header className="bg-white mt-5"> |
||||||
|
<div className="container"> |
||||||
|
<div className="row justify-content-between align-items-center"> |
||||||
|
{/* header title */} |
||||||
|
<div className="col-6 mt-5 "> |
||||||
|
<h4 className="header-title d-inline rounded p-2 border"> |
||||||
|
امکانات و ویژگی های پلتفرم |
||||||
|
</h4> |
||||||
|
</div> |
||||||
|
{/* header nav menu */} |
||||||
|
{/* <div className="col-4 bg-dark"> |
||||||
|
<p className="text-white text-start">مهدی عندلیب</p> |
||||||
|
</div> */} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Header; |
@ -0,0 +1,13 @@ |
|||||||
|
/* header */ |
||||||
|
header { |
||||||
|
border-top-right-radius: 7px; |
||||||
|
border-top-left-radius: 7px; |
||||||
|
} |
||||||
|
.header-title { |
||||||
|
background-color: #f5f5f5 !important; |
||||||
|
cursor: pointer; |
||||||
|
transition: all 0.4s; |
||||||
|
} |
||||||
|
.header-title:hover { |
||||||
|
background-color: #fff !important; |
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
.Toastify__toast-theme--colored.Toastify__toast--error { |
||||||
|
background: #ffeaea; |
||||||
|
color: #c70000; |
||||||
|
} |
||||||
|
.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error { |
||||||
|
background: #c70000; |
||||||
|
} |
||||||
|
.Toastify__close-button > svg { |
||||||
|
color: #000 !important; |
||||||
|
} |
||||||
|
.Toastify__toast-theme--colored.Toastify__toast--success { |
||||||
|
color: #21ae0b !important; |
||||||
|
background: #c3ffb9 !important; |
||||||
|
} |
||||||
|
.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success { |
||||||
|
background: #21ae0b !important; |
||||||
|
} |
@ -0,0 +1,62 @@ |
|||||||
|
import React from "react"; |
||||||
|
import { ToastContainer, toast } from "react-toastify"; |
||||||
|
import "react-toastify/dist/ReactToastify.css"; |
||||||
|
import "./Toast.css"; |
||||||
|
|
||||||
|
const Toast = () => { |
||||||
|
const notify = () => |
||||||
|
toast.success("اررور شماره 1", { |
||||||
|
position: "top-right", |
||||||
|
autoClose: false, |
||||||
|
hideProgressBar: false, |
||||||
|
closeOnClick: true, |
||||||
|
pauseOnHover: false, |
||||||
|
draggable: true, |
||||||
|
progress: undefined, |
||||||
|
theme: "colored", |
||||||
|
}); |
||||||
|
const notify2 = () => |
||||||
|
toast.error("اررور شماره 1", { |
||||||
|
position: "top-right", |
||||||
|
autoClose: false, |
||||||
|
hideProgressBar: false, |
||||||
|
closeOnClick: true, |
||||||
|
pauseOnHover: false, |
||||||
|
draggable: true, |
||||||
|
progress: undefined, |
||||||
|
theme: "colored", |
||||||
|
}); |
||||||
|
const notify3 = () => |
||||||
|
toast.error("اررور شماره 1", { |
||||||
|
position: "top-right", |
||||||
|
theme: "colored", |
||||||
|
icon: false, |
||||||
|
}); |
||||||
|
const notify4 = () => |
||||||
|
toast.success("اررور شماره 1", { |
||||||
|
position: "top-right", |
||||||
|
theme: "colored", |
||||||
|
icon: false, |
||||||
|
}); |
||||||
|
|
||||||
|
return ( |
||||||
|
<div> |
||||||
|
<button onClick={notify} className="btn btn-lg bg-warning"> |
||||||
|
toast notification 1 |
||||||
|
</button> |
||||||
|
<button onClick={notify2} className="btn btn-lg bg-warning"> |
||||||
|
toast notification 2 |
||||||
|
</button> |
||||||
|
<button onClick={notify3} className="btn btn-lg bg-warning"> |
||||||
|
toast notification 3 |
||||||
|
</button> |
||||||
|
<button onClick={notify4} className="btn btn-lg bg-warning"> |
||||||
|
toast notification 4 |
||||||
|
</button> |
||||||
|
|
||||||
|
<ToastContainer position="top-right" rtl /> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Toast; |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.9 KiB |
@ -1,13 +0,0 @@ |
|||||||
body { |
|
||||||
margin: 0; |
|
||||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', |
|
||||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', |
|
||||||
sans-serif; |
|
||||||
-webkit-font-smoothing: antialiased; |
|
||||||
-moz-osx-font-smoothing: grayscale; |
|
||||||
} |
|
||||||
|
|
||||||
code { |
|
||||||
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', |
|
||||||
monospace; |
|
||||||
} |
|
@ -1,17 +1,13 @@ |
|||||||
import React from 'react'; |
import React from "react"; |
||||||
import ReactDOM from 'react-dom'; |
import ReactDOM from "react-dom"; |
||||||
import './index.css'; |
import "./index.css"; |
||||||
import App from './App'; |
import App from "./App"; |
||||||
import reportWebVitals from './reportWebVitals'; |
import reportWebVitals from "./reportWebVitals"; |
||||||
|
|
||||||
ReactDOM.render( |
ReactDOM.render( |
||||||
<React.StrictMode> |
<React.StrictMode> |
||||||
<App /> |
<App /> |
||||||
</React.StrictMode>, |
</React.StrictMode>, |
||||||
document.getElementById('root') |
document.getElementById("root") |
||||||
); |
); |
||||||
|
|
||||||
// If you want to start measuring performance in your app, pass a function
|
|
||||||
// to log results (for example: reportWebVitals(console.log))
|
|
||||||
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
|
|
||||||
reportWebVitals(); |
reportWebVitals(); |
||||||
|
Before Width: | Height: | Size: 2.6 KiB |
@ -1,5 +0,0 @@ |
|||||||
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
|
||||||
// allows you to do things like:
|
|
||||||
// expect(element).toHaveTextContent(/react/i)
|
|
||||||
// learn more: https://github.com/testing-library/jest-dom
|
|
||||||
import '@testing-library/jest-dom'; |
|