Spaces:
Build error
Build error
import React from "react"; | |
import { ModalBody } from "../modal-body"; | |
import { ModalButton } from "../../buttons/modal-button"; | |
interface ButtonConfig { | |
text: string; | |
onClick: () => void; | |
className: React.HTMLProps<HTMLButtonElement>["className"]; | |
} | |
interface BaseModalTitleProps { | |
title: React.ReactNode; | |
} | |
export function BaseModalTitle({ title }: BaseModalTitleProps) { | |
return ( | |
<span className="text-xl leading-6 -tracking-[0.01em] font-semibold"> | |
{title} | |
</span> | |
); | |
} | |
interface BaseModalDescriptionProps { | |
description?: React.ReactNode; | |
children?: React.ReactNode; | |
} | |
export function BaseModalDescription({ | |
description, | |
children, | |
}: BaseModalDescriptionProps) { | |
return ( | |
<span className="text-xs text-[#A3A3A3]">{children || description}</span> | |
); | |
} | |
interface BaseModalProps { | |
testId?: string; | |
title: string; | |
description: string; | |
buttons: ButtonConfig[]; | |
} | |
export function BaseModal({ | |
testId, | |
title, | |
description, | |
buttons, | |
}: BaseModalProps) { | |
return ( | |
<ModalBody testID={testId}> | |
<div className="flex flex-col gap-2 self-start"> | |
<BaseModalTitle title={title} /> | |
<BaseModalDescription description={description} /> | |
</div> | |
<div className="flex flex-col gap-2 w-full"> | |
{buttons.map((button, index) => ( | |
<ModalButton | |
key={index} | |
onClick={button.onClick} | |
text={button.text} | |
className={button.className} | |
/> | |
))} | |
</div> | |
</ModalBody> | |
); | |
} | |