28 lines
844 B
TypeScript
28 lines
844 B
TypeScript
|
import type { CSSObject } from '../../_util/cssinjs';
|
||
|
import type { FullToken, GenerateStyle } from '../../theme/internal';
|
||
|
import { genComponentStyleHook, mergeToken } from '../../theme/internal';
|
||
|
|
||
|
interface AffixToken extends FullToken<'Affix'> {
|
||
|
zIndexPopup: number;
|
||
|
}
|
||
|
|
||
|
// ============================== Shared ==============================
|
||
|
const genSharedAffixStyle: GenerateStyle<AffixToken> = (token): CSSObject => {
|
||
|
const { componentCls } = token;
|
||
|
|
||
|
return {
|
||
|
[componentCls]: {
|
||
|
position: 'fixed',
|
||
|
zIndex: token.zIndexPopup,
|
||
|
},
|
||
|
};
|
||
|
};
|
||
|
|
||
|
// ============================== Export ==============================
|
||
|
export default genComponentStyleHook('Affix', token => {
|
||
|
const affixToken = mergeToken<AffixToken>(token, {
|
||
|
zIndexPopup: token.zIndexBase + 10,
|
||
|
});
|
||
|
return [genSharedAffixStyle(affixToken)];
|
||
|
});
|