Files
league-of-legends-gui-overhaul/src/components/ui/Modal.tsx
ToxicCrzay270 45b96ec20f
All checks were successful
Release Dry Run / release-dry-run (push) Successful in 12s
Codex Template Compliance / template-compliance (push) Successful in 6s
Initialize League GUI prototype
2026-05-15 00:41:38 +02:00

30 lines
757 B
TypeScript

import type { ReactNode } from "react";
import { Button } from "./Button";
type ModalProps = {
open: boolean;
title: string;
children: ReactNode;
onClose: () => void;
};
export function Modal({ open, title, children, onClose }: ModalProps) {
if (!open) {
return null;
}
return (
<div className="ui-modal-backdrop" role="presentation">
<section className="ui-modal" role="dialog" aria-modal="true" aria-labelledby="modal-title">
<header className="ui-modal-header">
<h2 id="modal-title">{title}</h2>
<Button variant="ghost" size="sm" onClick={onClose} aria-label="Close modal">
Close
</Button>
</header>
<div>{children}</div>
</section>
</div>
);
}