composant modal global

This commit is contained in:
MathieuG-P
2022-05-17 23:50:54 +02:00
parent 502b330339
commit efa31126d0
@@ -0,0 +1,29 @@
import { ModalExitCode, ModalService, ModalType } from "renderer/services/modale.service";
import { useEffect, useState } from "react"
import { distinctUntilChanged } from "rxjs";
import { LoginModal } from "./modal-types/login-modal.component";
export function Modal() {
const [modalType, setModalType] = useState(null as ModalType);
const modalSevice = ModalService.getInsance();
useEffect(() => {
modalSevice.modalType$.pipe(distinctUntilChanged()).subscribe(type => {
setModalType(type)
})
}, [])
return (
<div className={`absolute w-screen h-screen flex content-center items-center justify-center z-50 ${modalType ? "top-0" : "top-[calc(100%+50px)]"}`}>
<span onClick={() => modalSevice.resolve({exitCode: ModalExitCode.NO_CHOICE})} className={`absolute top-0 bottom-0 right-0 left-0 transition-opacity bg-black ${modalType? "opacity-40" : "opacity-0"}`}></span>
<div className={`absolute transition-transform ${modalType ? "translate-y-0" : "translate-y-full"}`}>
{modalType === ModalType.STEAM_LOGIN && <LoginModal resolver={modalSevice.getResolver()}/>}
</div>
</div>
)
}