&
HeaderElement;
function Header(props: HeaderProps) {
const {
icon,
title,
onMouseDown,
headerRightElement,
headerLeftElement,
...otherProps
} = props;
if (title == null) {
return null;
}
return (
{headerLeftElement}
{title}
{headerRightElement}
);
}
function calculateTransform(
placement: DialogPlacement,
option: {
dialogRect: DOMRect;
parentContainerRect: DOMRect;
},
): { transformX: number; transformY: number } {
let transformX = 0;
let transformY = 0;
const { parentContainerRect, dialogRect } = option;
switch (placement) {
case 'top':
transformX = (parentContainerRect.width - dialogRect.width) / 2;
transformY = 0;
break;
case 'bottom':
transformX = (parentContainerRect.width - dialogRect.width) / 2;
transformY = parentContainerRect.height - dialogRect.height;
break;
case 'center':
transformX = (parentContainerRect.width - dialogRect.width) / 2;
transformY = (parentContainerRect.height - dialogRect.height) / 2;
break;
case 'top-left':
transformX = 0;
transformY = 0;
break;
case 'top-right':
transformX = parentContainerRect.width - dialogRect.width;
transformY = 0;
break;
case 'bottom-left':
transformX = 0;
transformY = parentContainerRect.height - dialogRect.height;
break;
case 'bottom-right':
transformX = parentContainerRect.width - dialogRect.width;
transformY = parentContainerRect.height - dialogRect.height;
break;
case 'center-left':
transformX = 0;
transformY = (parentContainerRect.height - dialogRect.height) / 2;
break;
case 'center-right':
transformX = parentContainerRect.width - dialogRect.width;
transformY = (parentContainerRect.height - dialogRect.height) / 2;
break;
default:
break;
}
return { transformX, transformY };
}