diff --git a/packages/math/useCeil/index.md b/packages/math/useCeil/index.md new file mode 100644 index 00000000000..ec1d51b2a05 --- /dev/null +++ b/packages/math/useCeil/index.md @@ -0,0 +1,16 @@ +--- +category: '@Math' +--- + +# useCeil + +Reactively Math.ceil(value). + +## Usage + +```ts +import { useCeil } from '@vueuse/math' + +const value = ref(0.95) +const result = useCeil(value) +``` diff --git a/packages/math/useCeil/index.test.ts b/packages/math/useCeil/index.test.ts new file mode 100644 index 00000000000..50c89fa7a94 --- /dev/null +++ b/packages/math/useCeil/index.test.ts @@ -0,0 +1,15 @@ +import { ref } from 'vue-demi' +import { useCeil } from '.' + +describe('useCeil', () => { + it('should be defined', () => { + expect(useCeil).toBeDefined() + }) + it('should work', () => { + const base = ref(0.95) + const result = useCeil(base) + expect(result.value).toBe(1) + base.value = -7.004 + expect(result.value).toBe(-7) + }) +}) diff --git a/packages/math/useCeil/index.ts b/packages/math/useCeil/index.ts new file mode 100644 index 00000000000..dbdad1d4539 --- /dev/null +++ b/packages/math/useCeil/index.ts @@ -0,0 +1,15 @@ +import type { ComputedRef } from 'vue-demi' +import { computed } from 'vue-demi' +import type { MaybeComputedRef } from '@vueuse/shared' +import { resolveUnref } from '@vueuse/shared' + +/** + * Reactively Math.ceil(value). + * + * @see https://vueuse.org/useCeil + * @param base + * @param exponent + */ +export function useCeil(value: MaybeComputedRef): ComputedRef { + return computed(() => Math.ceil(resolveUnref(value))) +}