Skip to content

Commit 74864aa

Browse files
committed
Core - Add zIndex to GlobalLoaderOptions, add onBeforeUnmount, cleanup some stuff, refactor related tests
1 parent b0f681b commit 74864aa

File tree

5 files changed

+34
-26
lines changed

5 files changed

+34
-26
lines changed

packages/vue-global-loader/components/GlobalLoaderImpl.vue

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
<script>
2-
import { defineComponent, ref, computed, reactive, nextTick, useCssModule } from 'vue'
2+
import {
3+
defineComponent,
4+
ref,
5+
computed,
6+
reactive,
7+
nextTick,
8+
useCssModule,
9+
onBeforeUnmount,
10+
} from 'vue'
311
import { useGlobalLoader } from '../dist'
412
513
export default defineComponent({
@@ -28,6 +36,7 @@ export default defineComponent({
2836
'--v-gl-bg-opacity': options.backgroundOpacity,
2937
'--v-gl-bg-blur': options.backgroundBlur + 'px',
3038
'--v-gl-t-dur': options.transitionDuration + 'ms',
39+
'--v-gl-z': options.zIndex,
3140
}))
3241
3342
/** @type {import('vue').ComputedRef<import('vue').TransitionProps>} */
@@ -109,10 +118,7 @@ export default defineComponent({
109118
})
110119
}
111120
112-
function onCancel() {
113-
console.log('onEnterCancelled')
114-
onAfterLeave()
115-
}
121+
onBeforeUnmount(onAfterLeave)
116122
117123
return {
118124
transitionStyles,
@@ -122,7 +128,6 @@ export default defineComponent({
122128
style,
123129
onEnter,
124130
onAfterLeave,
125-
onCancel,
126131
}
127132
},
128133
})
@@ -135,8 +140,8 @@ export default defineComponent({
135140
v-bind="transitionStyles"
136141
@enter="onEnter"
137142
@afterLeave="onAfterLeave"
138-
@enterCancelled="onCancel"
139-
@leaveCancelled="onCancel"
143+
@enterCancelled="onAfterLeave"
144+
@leaveCancelled="onAfterLeave"
140145
>
141146
<div
142147
v-bind="$props.__attrs"
@@ -163,7 +168,7 @@ export default defineComponent({
163168
position: fixed;
164169
height: 100vh;
165170
height: 100svh;
166-
z-index: 2147483647;
171+
z-index: var(--v-gl-z);
167172
display: flex;
168173
justify-content: center;
169174
align-items: center;

packages/vue-global-loader/core/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ export const DEFAULT_OPTIONS: GlobalLoaderOptions = {
77
backgroundColor: '#fff',
88
backgroundOpacity: 1,
99
backgroundBlur: 0,
10+
zIndex: 2147483647,
1011
}

packages/vue-global-loader/core/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export interface GlobalLoaderOptions {
88
backgroundColor: string
99
backgroundOpacity: number
1010
backgroundBlur: number
11+
zIndex: number
1112
}
1213

1314
export interface GlobalLoaderCSSVars extends CSSProperties {
@@ -16,6 +17,7 @@ export interface GlobalLoaderCSSVars extends CSSProperties {
1617
'--v-gl-bg-opacity': number
1718
'--v-gl-bg-blur': string
1819
'--v-gl-t-dur': string
20+
'--v-gl-z': number
1921
}
2022

2123
export type { GlobalLoaderStore }

packages/vue-global-loader/nuxt/module.mjs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ const module = defineNuxtModule({
3131
3232
export default defineNuxtPlugin(({ vueApp }) => {
3333
const options = useRuntimeConfig().public?.globalLoader || {}
34-
console.log(options) // TODO: Remove
35-
34+
3635
vueApp.use(globalLoader, options)
3736
})
3837
`

tests/config.cy.tsx

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
import { defineComponent as c, onMounted } from 'vue'
2-
import { useGlobalLoader, DEFAULT_OPTIONS as DEF } from 'vue-global-loader'
3-
4-
import App from '@/App.vue'
2+
import {
3+
GlobalLoader,
4+
CircleSpinner,
5+
useGlobalLoader,
6+
DEFAULT_OPTIONS as DEF,
7+
} from 'vue-global-loader'
58

69
describe('Config', () => {
7-
const Home = c({
10+
const app = c({
811
setup() {
912
const { displayLoader } = useGlobalLoader()
1013
onMounted(displayLoader)
1114

12-
return null
15+
return () => (
16+
<GlobalLoader data-cy-loader>
17+
<CircleSpinner />
18+
</GlobalLoader>
19+
)
1320
},
1421
})
1522

16-
const routes = [
17-
{
18-
path: '/',
19-
component: Home,
20-
},
21-
]
22-
2323
it('Default config is injected', () => {
24-
cy.mountApp(App, {}, routes)
24+
cy.mountApp(app)
2525
.getRoot()
2626
.checkCssVars(DEF)
2727

@@ -37,9 +37,10 @@ describe('Config', () => {
3737
foregroundColor: 'blue',
3838
transitionDuration: 1000,
3939
screenReaderMessage: 'Custom message',
40+
zIndex: 1000,
4041
}
4142

42-
cy.mountApp(App, customConf, routes)
43+
cy.mountApp(app, customConf)
4344
.getRoot()
4445
.checkCssVars(customConf)
4546

@@ -54,7 +55,7 @@ describe('Config', () => {
5455
backgroundBlur: 10,
5556
} as const
5657

57-
cy.mountApp(App, customConf2, routes)
58+
cy.mountApp(app, customConf2)
5859
.getRoot()
5960
.checkCssVars({ ...DEF, ...customConf2 })
6061

0 commit comments

Comments
 (0)