import React from 'react'; import { Button, IconButton, Tooltip, useBreakpoint } from '@chakra-ui/react'; import { FloppyDisk } from '@phosphor-icons/react'; import { useTranslation } from 'react-i18next'; export interface SaveButtonProps extends React.DetailedHTMLProps, HTMLButtonElement> { onClick: () => void; isDisabled?: boolean; isLoading?: boolean; isCompact?: boolean; isDirty?: boolean; dirtyCheck?: boolean; ml?: string | number; } const _SaveButton: React.FC = ({ onClick, isDisabled, isLoading, isCompact = true, isDirty, dirtyCheck, ...props }) => { const { t } = useTranslation(); const breakpoint = useBreakpoint(); if (!isCompact && breakpoint !== 'base' && breakpoint !== 'sm') { return ( ); } return ( } isLoading={isLoading} isDisabled={isDisabled || (dirtyCheck && !isDirty)} {...props} /> ); }; export const SaveButton = React.memo(_SaveButton);