Skip to content

Commit 908342f

Browse files
authored
Merge pull request #14826 from ethereum/shadcn-code-modal
Shadcn/tw codemodal
2 parents 7f4bb34 + 44b1abb commit 908342f

File tree

1 file changed

+18
-33
lines changed

1 file changed

+18
-33
lines changed

src/components/CodeModal.tsx

Lines changed: 18 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@ import { Children, type ReactElement } from "react"
22
import { useTranslation } from "next-i18next"
33
import { IoMdCopy } from "react-icons/io"
44
import { MdCheck } from "react-icons/md"
5-
import { Modal, ModalBody, ModalContent, ModalOverlay } from "@chakra-ui/react"
65

76
import { Button } from "./ui/buttons/Button"
7+
import {
8+
Dialog,
9+
DialogContent,
10+
DialogDescription,
11+
DialogHeader,
12+
DialogTitle,
13+
} from "./ui/dialog-modal"
814

915
import { useClipboard } from "@/hooks/useClipboard"
1016

@@ -23,39 +29,18 @@ const CodeModal = ({ children, isOpen, setIsOpen, title }: CodeModalProps) => {
2329
const { onCopy, hasCopied } = useClipboard()
2430

2531
return (
26-
<Modal
27-
isOpen={isOpen}
28-
scrollBehavior="inside"
29-
onClose={() => setIsOpen(false)}
30-
>
31-
<ModalOverlay hideBelow="md" />
32-
<ModalContent
33-
hideBelow="md"
34-
maxW="100vw"
35-
marginTop="auto"
36-
marginBottom="0"
37-
maxHeight="50%"
38-
borderRadius="0"
39-
p={{ base: "0", md: "0" }}
40-
gap="0"
41-
>
42-
<div className="flex items-center border-y bg-background px-6 py-3 font-monospace uppercase">
43-
<h2 className="text-md font-normal">{title}</h2>
44-
<Button
45-
variant="ghost"
46-
className="ms-auto text-sm"
47-
size="sm"
48-
isSecondary
49-
onClick={() => setIsOpen(false)}
50-
>
51-
{t("close")}
52-
</Button>
53-
</div>
54-
<ModalBody p="0">{children}</ModalBody>
32+
<Dialog open={isOpen} onOpenChange={setIsOpen}>
33+
<DialogContent className="absolute inset-0 mb-0 mt-auto max-h-[50%] max-w-[100vw]">
34+
<DialogHeader>
35+
<DialogTitle>{title}</DialogTitle>
36+
</DialogHeader>
37+
<DialogDescription asChild>
38+
<div className="overflow-y-auto">{children}</div>
39+
</DialogDescription>
5540
<Button
5641
variant="outline"
5742
onClick={() => onCopy(codeSnippet)}
58-
className="absolute right-4 top-20" // Force right, code always LTR
43+
className="absolute right-19 top-24" // Force right, code always LTR
5944
>
6045
{hasCopied ? (
6146
<>
@@ -67,8 +52,8 @@ const CodeModal = ({ children, isOpen, setIsOpen, title }: CodeModalProps) => {
6752
</>
6853
)}
6954
</Button>
70-
</ModalContent>
71-
</Modal>
55+
</DialogContent>
56+
</Dialog>
7257
)
7358
}
7459

0 commit comments

Comments
 (0)