element-plus/packages/hooks/use-deprecated/index.ts
jeremywu dbb00ef4b6
fix(components): [el-popper] append to body compatability (#5755)
* fix(components): [el-popper] append to body compatability

- Add a new hook for deprecation warning
- Add deprecation warnings for previous used `append-to-body` API
- Add test for the API.

* Address PR comments

* Update documentations for deprecated

* Fix formatting issue
2022-02-04 14:59:58 +08:00

35 lines
701 B
TypeScript

import { unref, watch } from 'vue'
import { debugWarn } from '@element-plus/utils/error'
import type { MaybeRef } from '@vueuse/core'
type DeprecationParam = {
from: string
replacement: string
scope: string
version: string
ref: string
}
export const useDeprecated = (
{ from, replacement, scope, version, ref }: DeprecationParam,
condition: MaybeRef<boolean>
) => {
watch(
() => unref(condition),
(val) => {
if (val) {
debugWarn(
scope,
`API ${from} is about to be deprecated in version ${version}, please use ${replacement} instead.
For more detail, please visit: ${ref}
`
)
}
},
{
immediate: true,
}
)
}