@@ -4,6 +4,7 @@ import { calcTranslateX, calcTranslateY } from '../util/popdown-translate';
4
4
export type CalcPosition = ( triggerPosition : number ) => number ;
5
5
6
6
export const createContentTransformStyleStore = (
7
+ showContent : Readable < boolean > ,
7
8
windowSize : Readable < number [ ] > ,
8
9
scrollParent : Readable < HTMLElement > ,
9
10
trigger : Writable < HTMLElement > ,
@@ -42,41 +43,39 @@ export const createContentTransformStyleStore = (
42
43
) ;
43
44
44
45
return derived (
45
- [ windowSize , trigger , ancestorOffset ] ,
46
+ [ showContent , windowSize , trigger , ancestorOffset ] ,
46
47
// eslint-disable-next-line @typescript-eslint/no-unused-vars
47
- ( [ _windowSize , $trigger , $ancestorOffset ] ) => {
48
+ ( [ $showContent , _windowSize , $trigger , $ancestorOffset ] ) => {
49
+ if ( ! $trigger || ! $showContent ) return '' ;
48
50
let translateX = '' ;
49
51
let translateY = '' ;
50
- if ( $trigger ) {
51
- const {
52
- left : triggerLeft ,
53
- right : triggerRight ,
54
- top : triggerTop ,
55
- bottom : triggerBottom ,
56
- width : triggerWidth ,
57
- height : triggerHeight ,
58
- } = $trigger . getBoundingClientRect ( ) ;
52
+ const {
53
+ left : triggerLeft ,
54
+ right : triggerRight ,
55
+ top : triggerTop ,
56
+ bottom : triggerBottom ,
57
+ width : triggerWidth ,
58
+ height : triggerHeight ,
59
+ } = $trigger . getBoundingClientRect ( ) ;
59
60
60
- const { left : offsetLeft , top : offsetTop } = $ancestorOffset || {
61
- left : 0 ,
62
- top : 0 ,
63
- } ;
64
-
65
- if ( calcLeft ) {
66
- translateX = String ( calcLeft ( triggerLeft ) ) ;
67
- } else {
68
- translateX = calcTranslateX ( position , triggerRight , triggerLeft , offsetLeft , triggerWidth ) ;
69
- }
61
+ const { left : offsetLeft , top : offsetTop } = $ancestorOffset || {
62
+ left : 0 ,
63
+ top : 0 ,
64
+ } ;
70
65
71
- if ( calcTop ) {
72
- translateY = String ( calcTop ( triggerLeft ) ) ;
73
- } else {
74
- translateY = calcTranslateY ( position , triggerTop , offsetTop , triggerBottom , triggerHeight ) ;
75
- }
66
+ if ( calcLeft ) {
67
+ translateX = String ( calcLeft ( triggerLeft ) ) ;
68
+ } else {
69
+ translateX = calcTranslateX ( position , triggerRight , triggerLeft , offsetLeft , triggerWidth ) ;
70
+ }
76
71
77
- return `translate(${ translateX } , ${ translateY } )` ;
72
+ if ( calcTop ) {
73
+ translateY = String ( calcTop ( triggerLeft ) ) ;
74
+ } else {
75
+ translateY = calcTranslateY ( position , triggerTop , offsetTop , triggerBottom , triggerHeight ) ;
78
76
}
79
- return '' ;
77
+
78
+ return `translate(${ translateX } , ${ translateY } )` ;
80
79
} ,
81
80
) ;
82
81
} ;
0 commit comments