Files
lijianan 0c5557d1c2 refactor: [v6] use rc-component/resize-observer (#52578)
* refactor: [v6] use rc-component/resize-observer

* chore: mock of ResizeObserver

* test: update snap

* fix: fix

* chore: update dep

* test: back of snapshot

* fix: fix

* chore: update deps

* chore: update

* chore: update @rc-component/motion

---------

Signed-off-by: lijianan <574980606@qq.com>
Co-authored-by: 二货机器人 <smith3816@gmail.com>
2025-02-18 16:01:16 +08:00

85 lines
1.7 KiB
TypeScript

import type * as React from 'react';
import type { CSSMotionProps } from '@rc-component/motion';
import type { NotificationConfig as CPNotificationConfig } from '../config-provider/context';
import type { NotificationConfig, NotificationPlacement } from './interface';
export function getPlacementStyle(placement: NotificationPlacement, top: number, bottom: number) {
let style: React.CSSProperties;
switch (placement) {
case 'top':
style = {
left: '50%',
transform: 'translateX(-50%)',
right: 'auto',
top,
bottom: 'auto',
};
break;
case 'topLeft':
style = {
left: 0,
top,
bottom: 'auto',
};
break;
case 'topRight':
style = {
right: 0,
top,
bottom: 'auto',
};
break;
case 'bottom':
style = {
left: '50%',
transform: 'translateX(-50%)',
right: 'auto',
top: 'auto',
bottom,
};
break;
case 'bottomLeft':
style = {
left: 0,
top: 'auto',
bottom,
};
break;
default:
style = {
right: 0,
top: 'auto',
bottom,
};
break;
}
return style;
}
export function getMotion(prefixCls: string): CSSMotionProps {
return {
motionName: `${prefixCls}-fade`,
};
}
export function getCloseIconConfig(
closeIcon: React.ReactNode,
notificationConfig?: NotificationConfig,
notification?: CPNotificationConfig,
) {
if (typeof closeIcon !== 'undefined') {
return closeIcon;
}
if (typeof notificationConfig?.closeIcon !== 'undefined') {
return notificationConfig.closeIcon;
}
return notification?.closeIcon;
}