forked from quasarframework/quasar
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQInnerLoading.js
More file actions
82 lines (66 loc) · 1.91 KB
/
QInnerLoading.js
File metadata and controls
82 lines (66 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import { h, computed, Transition, getCurrentInstance } from 'vue'
import QSpinner from '../spinner/QSpinner.js'
import { createComponent } from '../../utils/private/create.js'
import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
import useTransition, { useTransitionProps } from '../../composables/private/use-transition.js'
export default createComponent({
name: 'QInnerLoading',
props: {
...useDarkProps,
...useTransitionProps,
showing: Boolean,
color: String,
size: {
type: [ String, Number ],
default: 42
},
label: String,
labelClass: String,
labelStyle: [ String, Array, Object ]
},
setup (props, { slots }) {
const vm = getCurrentInstance()
const isDark = useDark(props, vm.proxy.$q)
const { transition, transitionStyle } = useTransition(props, computed(() => props.showing))
const classes = computed(() =>
'q-inner-loading absolute-full column flex-center'
+ (isDark.value === true ? ' q-inner-loading--dark' : '')
)
const labelClass = computed(() =>
'q-inner-loading__label'
+ (props.labelClass !== void 0 ? ` ${ props.labelClass }` : '')
)
function getInner () {
const child = [
h(QSpinner, {
size: props.size,
color: props.color
})
]
if (props.label !== void 0) {
child.push(
h('div', {
class: labelClass.value,
style: props.labelStyle
}, [ props.label ])
)
}
return child
}
function getContent () {
return props.showing === true
? h(
'div',
{ class: classes.value, style: transitionStyle.value },
slots.default !== void 0
? slots.default()
: getInner()
)
: null
}
return () => h(Transition, {
name: transition.value,
appear: true
}, getContent)
}
})