Skip to content

Commit

Permalink
style: linting via biome
Browse files Browse the repository at this point in the history
  • Loading branch information
escapedcat committed Dec 23, 2024
1 parent a45dd48 commit 18aa8c8
Show file tree
Hide file tree
Showing 15 changed files with 798 additions and 797 deletions.
110 changes: 55 additions & 55 deletions src/components/ConfirmModal.tsx
Original file line number Diff line number Diff line change
@@ -1,82 +1,82 @@
import { Button } from "@/components/Button";
import {
Modal,
ModalBody,
ModalContent,
ModalFooter,
ModalHeader,
Modal,
ModalBody,
ModalContent,
ModalFooter,
ModalHeader,
} from "@nextui-org/react";
import type { UseDisclosureReturn } from "@nextui-org/use-disclosure";
import type { ReactNode } from "react";
import { useTranslation } from "react-i18next";

export type Props = {
disclosure: UseDisclosureReturn;
headline?: string;
children?: ReactNode;
onConfirm?: () => void;
confirmText?: string;
cancelText?: string;
isLoading?: boolean;
disclosure: UseDisclosureReturn;
headline?: string;
children?: ReactNode;
onConfirm?: () => void;
confirmText?: string;
cancelText?: string;
isLoading?: boolean;
} & ({ custom: true } | { custom?: false; body?: ReactNode });

type ConfirmModalComponent = {
(props: Props): JSX.Element;
Header: typeof ModalHeader;
Body: typeof ModalBody;
Footer: typeof ModalFooter;
(props: Props): JSX.Element;
Header: typeof ModalHeader;
Body: typeof ModalBody;
Footer: typeof ModalFooter;
};

export const ConfirmModalHeader = ModalHeader;
export const ConfirmModalBody = ModalBody;
export const ConfirmModalFooter = ModalFooter;

export const ConfirmModal: ConfirmModalComponent = ({
disclosure,
headline,
children,
onConfirm,
confirmText,
cancelText,
isLoading = false,
...props
disclosure,
headline,
children,
onConfirm,
confirmText,
cancelText,
isLoading = false,
...props
}: Props) => {
const { t } = useTranslation();
const { isOpen, onOpenChange, onClose } = disclosure;
const { t } = useTranslation();
const { isOpen, onOpenChange, onClose } = disclosure;

const renderContent = () => {
if ("custom" in props && props.custom) {
return children;
}
const renderContent = () => {
if ("custom" in props && props.custom) {
return children;
}

return (
<>
{headline && <ConfirmModalHeader>{headline}</ConfirmModalHeader>}
return (
<>
{headline && <ConfirmModalHeader>{headline}</ConfirmModalHeader>}

<ConfirmModalBody>{children || props.body}</ConfirmModalBody>
<ConfirmModalBody>{children || props.body}</ConfirmModalBody>

<ConfirmModalFooter>
<Button onClick={onClose} isDisabled={isLoading}>
{cancelText || t("settings.cancel")}
</Button>
<Button
color="primary"
onClick={onConfirm}
isDisabled={isLoading || !onConfirm}
isLoading={isLoading}
>
{confirmText || t("settings.confirm")}
</Button>
</ConfirmModalFooter>
</>
);
};
<ConfirmModalFooter>
<Button onClick={onClose} isDisabled={isLoading}>
{cancelText || t("settings.cancel")}
</Button>
<Button
color="primary"
onClick={onConfirm}
isDisabled={isLoading || !onConfirm}
isLoading={isLoading}
>
{confirmText || t("settings.confirm")}
</Button>
</ConfirmModalFooter>
</>
);
};

return (
<Modal isOpen={isOpen} onOpenChange={onOpenChange} onClose={onClose}>
<ModalContent>{renderContent()}</ModalContent>
</Modal>
);
return (
<Modal isOpen={isOpen} onOpenChange={onOpenChange} onClose={onClose}>
<ModalContent>{renderContent()}</ModalContent>
</Modal>
);
};

ConfirmModal.Header = ConfirmModalHeader;
Expand Down
Loading

0 comments on commit 18aa8c8

Please sign in to comment.