mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-06 00:07:44 +01:00
24c11332b5
* refactor: update mui packages * refactor: run mui codemods * refactor: format files after codemods * refactor: fix broken types * refactor: clean up theme * refactor: fix broken tests * refactor: replace @mui/styles with tss-react * refactor: move breakpoints into classes for tss * refactor: fix crash on missing feature description * refactor: remove void classNames * refactor: adjust styles to new defaults * refactor: remove broken rollout slider e2e test * refactor: fix duplicate e2e testid * refactor: update makeStyles after rebase * refactor: add missing snapshot after rebase * refactor: fix TableCellSortable focus styles * refactor: use 1.4 as the default line-height * refactor: hide webkit search field icons * refactor: fix select box label * refactor: make AutocompleteBox smaller * refactor: make heading smaller * refactor: fix toast close icon color * refactor: update snapshots * refactor: add missing test event awaits * refactor: fix default button line-height
67 lines
1.9 KiB
TypeScript
67 lines
1.9 KiB
TypeScript
import { useMediaQuery } from '@mui/material';
|
|
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
|
import PermissionButton from '../PermissionButton/PermissionButton';
|
|
import PermissionIconButton from '../PermissionIconButton/PermissionIconButton';
|
|
import React from 'react';
|
|
|
|
interface IResponsiveButtonProps {
|
|
Icon: React.ElementType;
|
|
onClick: () => void;
|
|
disabled?: boolean;
|
|
permission: string;
|
|
projectId?: string;
|
|
environmentId?: string;
|
|
maxWidth: string;
|
|
className?: string;
|
|
}
|
|
|
|
const ResponsiveButton: React.FC<IResponsiveButtonProps> = ({
|
|
Icon,
|
|
onClick,
|
|
maxWidth,
|
|
disabled = false,
|
|
children,
|
|
permission,
|
|
environmentId,
|
|
projectId,
|
|
...rest
|
|
}) => {
|
|
const smallScreen = useMediaQuery(`(max-width:${maxWidth})`);
|
|
|
|
return (
|
|
<ConditionallyRender
|
|
condition={smallScreen}
|
|
show={
|
|
<PermissionIconButton
|
|
disabled={disabled}
|
|
onClick={onClick}
|
|
permission={permission}
|
|
projectId={projectId}
|
|
environmentId={environmentId}
|
|
data-loading
|
|
{...rest}
|
|
>
|
|
<Icon />
|
|
</PermissionIconButton>
|
|
}
|
|
elseShow={
|
|
<PermissionButton
|
|
onClick={onClick}
|
|
permission={permission}
|
|
projectId={projectId}
|
|
color="primary"
|
|
variant="contained"
|
|
disabled={disabled}
|
|
environmentId={environmentId}
|
|
data-loading
|
|
{...rest}
|
|
>
|
|
{children}
|
|
</PermissionButton>
|
|
}
|
|
/>
|
|
);
|
|
};
|
|
|
|
export default ResponsiveButton;
|