Deleted duplicated Modal
This commit is contained in:
parent
73d1d47cd1
commit
df1e345748
@ -1,163 +0,0 @@
|
||||
.modal-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background: rgba(35, 36, 42, 0.82);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 1000;
|
||||
animation: modal-fadein 0.33s cubic-bezier(.4, 0, .2, 1);
|
||||
backdrop-filter: blur(3.5px);
|
||||
-webkit-backdrop-filter: blur(3.5px);
|
||||
}
|
||||
|
||||
|
||||
@keyframes modal-fadein {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.modal-container {
|
||||
background: #23242a;
|
||||
border-radius: 18px;
|
||||
min-width: 340px;
|
||||
max-width: 95vw;
|
||||
min-height: 0;
|
||||
padding: 0 0 24px 0;
|
||||
position: relative;
|
||||
box-shadow: 0 12px 48px 0 rgba(0, 0, 0, 0.34), 0 2px 12px 0 rgba(30, 34, 44, 0.10);
|
||||
overflow: hidden;
|
||||
animation: modal-popin 0.34s cubic-bezier(.4, 0, .2, 1);
|
||||
transition: box-shadow 0.2s, opacity 0.25s cubic-bezier(.4, 0, .2, 1);
|
||||
}
|
||||
|
||||
.modal-container.modal-closing {
|
||||
opacity: 0;
|
||||
transform: translateY(32px) scale(0.97);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
|
||||
@keyframes modal-popin {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(32px) scale(0.97);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0) scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
background: linear-gradient(90deg, #23242a 85%, #23242aEE 100%);
|
||||
color: #fff;
|
||||
padding: 22px 30px 14px 30px;
|
||||
border-radius: 18px 18px 0 0;
|
||||
box-shadow: 0 2px 12px 0 rgba(30, 34, 44, 0.06);
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
min-height: 52px;
|
||||
}
|
||||
|
||||
|
||||
.modal-header h2 {
|
||||
margin: 0;
|
||||
font-size: 1.3rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.01em;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.modal-close {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 16px;
|
||||
background: transparent;
|
||||
border: none;
|
||||
font-size: 2rem;
|
||||
color: #e3e4e8;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
min-width: 36px;
|
||||
min-height: 36px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
transition: background 0.18s, color 0.18s;
|
||||
z-index: 2;
|
||||
border-radius: 6px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.modal-close svg {
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.modal-close:hover,
|
||||
.modal-close:focus {
|
||||
background: rgba(255, 255, 255, 0.10);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.modal-close:active {
|
||||
background: rgba(67, 160, 71, 0.13);
|
||||
}
|
||||
|
||||
.modal-close:active {
|
||||
background: rgba(67, 160, 71, 0.13);
|
||||
}
|
||||
|
||||
|
||||
.modal-body {
|
||||
padding: 28px 28px 0 28px;
|
||||
max-height: 70vh;
|
||||
overflow-y: auto;
|
||||
color: #e3e4e8;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.modal-container {
|
||||
min-width: 0;
|
||||
width: 98vw;
|
||||
padding: 0 0 12px 0;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
padding: 16px 10px 10px 14px;
|
||||
border-radius: 12px 12px 0 0;
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
padding: 14px 8px 0 8px;
|
||||
}
|
||||
|
||||
.modal-close {
|
||||
top: 6px;
|
||||
right: 6px;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
width: 100%;
|
||||
}
|
||||
@ -1,38 +0,0 @@
|
||||
import React, { memo } from 'react';
|
||||
import './Modal.css';
|
||||
|
||||
interface ModalProps {
|
||||
isOpen: boolean;
|
||||
onClose: () => void;
|
||||
title?: string;
|
||||
children: React.ReactNode;
|
||||
}
|
||||
|
||||
function Modal({ isOpen, onClose, title, children }: ModalProps) {
|
||||
if (!isOpen) {
|
||||
return null;
|
||||
}
|
||||
return (
|
||||
<div className="modal-overlay modal-fadein">
|
||||
<div className="modal-container modal-popin">
|
||||
<button className="close-button modal-close" onClick={onClose} aria-label="Fermer">
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
||||
<path d="M6 6L18 18M18 6L6 18" stroke="#fff" strokeWidth="2.4" strokeLinecap="round" filter="url(#shadow)" />
|
||||
<defs>
|
||||
<filter id="shadow" x="-2" y="-2" width="28" height="28" filterUnits="userSpaceOnUse">
|
||||
<feDropShadow dx="0" dy="0" stdDeviation="1.2" floodColor="#23242a" />
|
||||
</filter>
|
||||
</defs>
|
||||
</svg>
|
||||
</button>
|
||||
{title && <div className="modal-header modal-header"><h2>{title}</h2></div>}
|
||||
<div className="modal-body modal-body">
|
||||
{children}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Modal.displayName = 'Modal';
|
||||
export default memo(Modal);
|
||||
Loading…
x
Reference in New Issue
Block a user