1
- import { type Ref , inject , onMounted , onBeforeUnmount , ref } from "vue" ;
1
+ import { type Ref , onMounted , onBeforeUnmount , ref } from "vue" ;
2
2
3
- import type { iPluginOptions } from "@open-xamu-co/ui-common-types" ;
4
3
import { useUtils } from "@open-xamu-co/ui-common-helpers" ;
5
4
6
5
import { useHelpers } from "../composables/utils" ;
@@ -21,44 +20,46 @@ function matchMedia(size?: number) {
21
20
* @composable
22
21
*/
23
22
export default function useBrowser ( ) {
24
- const { mediaQueryPixels } = inject < iPluginOptions > ( "xamu" ) || { } ;
25
- const { isBrowser } = useHelpers ( useUtils ) ;
23
+ return useHelpers ( ( xo ) => {
24
+ const { mediaQueryPixels } = xo ;
25
+ const { isBrowser } = useUtils ( xo ) ;
26
26
27
- // Viewports
28
- const laptopMqRange = ref < boolean > ( false ) ;
29
- const tabletMqRange = ref < boolean > ( false ) ;
30
- const mobileMqRange = ref < boolean > ( false ) ;
31
- // Viewport listeners
32
- const laptopMQHandler = MQHandler ( laptopMqRange ) ;
33
- const tabletMQHandler = MQHandler ( tabletMqRange ) ;
34
- const mobileMQHandler = MQHandler ( mobileMqRange ) ;
27
+ // Viewports
28
+ const laptopMqRange = ref < boolean > ( false ) ;
29
+ const tabletMqRange = ref < boolean > ( false ) ;
30
+ const mobileMqRange = ref < boolean > ( false ) ;
31
+ // Viewport listeners
32
+ const laptopMQHandler = MQHandler ( laptopMqRange ) ;
33
+ const tabletMQHandler = MQHandler ( tabletMqRange ) ;
34
+ const mobileMQHandler = MQHandler ( mobileMqRange ) ;
35
35
36
- // lifecycle, listeners only work on browser
37
- if ( isBrowser ) {
38
- // Define MQlist
39
- const laptopMQList = matchMedia ( mediaQueryPixels ?. laptop ?? 1080 ) ;
40
- const tabletMQList = matchMedia ( mediaQueryPixels ?. tablet ?? 768 ) ;
41
- const mobileMQList = matchMedia ( mediaQueryPixels ?. mobile ?? 576 ) ;
36
+ // lifecycle, listeners only work on browser
37
+ if ( isBrowser ) {
38
+ // Define MQlist
39
+ const laptopMQList = matchMedia ( mediaQueryPixels ?. laptop ?? 1080 ) ;
40
+ const tabletMQList = matchMedia ( mediaQueryPixels ?. tablet ?? 768 ) ;
41
+ const mobileMQList = matchMedia ( mediaQueryPixels ?. mobile ?? 576 ) ;
42
42
43
- onMounted ( ( ) => {
44
- // Mount listeners
45
- laptopMQList . addEventListener ( "change" , laptopMQHandler , true ) ;
46
- tabletMQList . addEventListener ( "change" , tabletMQHandler , true ) ;
47
- mobileMQList . addEventListener ( "change" , mobileMQHandler , true ) ;
43
+ onMounted ( ( ) => {
44
+ // Mount listeners
45
+ laptopMQList . addEventListener ( "change" , laptopMQHandler , true ) ;
46
+ tabletMQList . addEventListener ( "change" , tabletMQHandler , true ) ;
47
+ mobileMQList . addEventListener ( "change" , mobileMQHandler , true ) ;
48
48
49
- // Set initial values
50
- laptopMQHandler ( laptopMQList ) ;
51
- tabletMQHandler ( tabletMQList ) ;
52
- mobileMQHandler ( mobileMQList ) ;
53
- } ) ;
49
+ // Set initial values
50
+ laptopMQHandler ( laptopMQList ) ;
51
+ tabletMQHandler ( tabletMQList ) ;
52
+ mobileMQHandler ( mobileMQList ) ;
53
+ } ) ;
54
54
55
- onBeforeUnmount ( ( ) => {
56
- // Unmount listeners
57
- laptopMQList . removeEventListener ( "change" , laptopMQHandler , true ) ;
58
- tabletMQList . removeEventListener ( "change" , tabletMQHandler , true ) ;
59
- mobileMQList . removeEventListener ( "change" , mobileMQHandler , true ) ;
60
- } ) ;
61
- }
55
+ onBeforeUnmount ( ( ) => {
56
+ // Unmount listeners
57
+ laptopMQList . removeEventListener ( "change" , laptopMQHandler , true ) ;
58
+ tabletMQList . removeEventListener ( "change" , tabletMQHandler , true ) ;
59
+ mobileMQList . removeEventListener ( "change" , mobileMQHandler , true ) ;
60
+ } ) ;
61
+ }
62
62
63
- return { laptopMqRange, tabletMqRange, mobileMqRange } ;
63
+ return { laptopMqRange, tabletMqRange, mobileMqRange } ;
64
+ } ) ;
64
65
}
0 commit comments