init
This commit is contained in:
62
uni_modules/nutui-uni/components/notify/use-notify.ts
Normal file
62
uni_modules/nutui-uni/components/notify/use-notify.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
import { provide, ref } from 'vue'
|
||||
import { cloneDeep } from '../_utils'
|
||||
import { notifyDefaultOptions, notifyDefaultOptionsKey } from './notify'
|
||||
import type { NotifyInst, NotifyOptions, NotifyType } from './types'
|
||||
|
||||
export function useNotify(selector = ''): NotifyInst {
|
||||
const notifyOptionsKey = `${notifyDefaultOptionsKey}${selector || ''}`
|
||||
const notifyOptions = ref<NotifyOptions>(cloneDeep(notifyDefaultOptions))
|
||||
|
||||
provide(notifyOptionsKey, notifyOptions)
|
||||
|
||||
function show(type: NotifyType, msg: string, options?: NotifyOptions) {
|
||||
notifyOptions.value = Object.assign({
|
||||
visible: true,
|
||||
type,
|
||||
msg,
|
||||
}, options)
|
||||
}
|
||||
|
||||
function legacyShow(options: NotifyOptions) {
|
||||
show(notifyDefaultOptions.type, options.msg || notifyDefaultOptions.msg, options)
|
||||
}
|
||||
|
||||
function showPrimary(msg: string, options?: NotifyOptions) {
|
||||
show('primary', msg, options)
|
||||
}
|
||||
|
||||
function showSuccess(msg: string, options?: NotifyOptions) {
|
||||
show('success', msg, options)
|
||||
}
|
||||
|
||||
function showDanger(msg: string, options?: NotifyOptions) {
|
||||
show('danger', msg, options)
|
||||
}
|
||||
|
||||
function showWarning(msg: string, options?: NotifyOptions) {
|
||||
show('warning', msg, options)
|
||||
}
|
||||
|
||||
function showCustom(msg: string, options?: NotifyOptions) {
|
||||
show('custom', msg, options)
|
||||
}
|
||||
|
||||
function hide() {
|
||||
notifyOptions.value = Object.assign(cloneDeep(notifyOptions.value), {
|
||||
visible: false,
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
showNotify: legacyShow,
|
||||
hideNotify: hide,
|
||||
|
||||
show,
|
||||
primary: showPrimary,
|
||||
success: showSuccess,
|
||||
danger: showDanger,
|
||||
warning: showWarning,
|
||||
custom: showCustom,
|
||||
hide,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user