Skip to content

Commit

Permalink
refactor: rename useMax to useMinimum
Browse files Browse the repository at this point in the history
  • Loading branch information
FrankFang committed Jul 10, 2022
1 parent a54dbff commit fd433aa
Show file tree
Hide file tree
Showing 9 changed files with 124 additions and 93 deletions.
4 changes: 4 additions & 0 deletions packages/math/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
export * from './logicAnd'
export * from './logicNot'
export * from './logicOr'
export * from './useCeil'
export * from './useClamp'
export * from './useFloor'
export * from './useMinimum'
export * from './useProjection'
export * from './useRound'
23 changes: 0 additions & 23 deletions packages/math/useMax/demo.vue

This file was deleted.

16 changes: 0 additions & 16 deletions packages/math/useMax/index.md

This file was deleted.

31 changes: 0 additions & 31 deletions packages/math/useMax/index.test.ts

This file was deleted.

23 changes: 0 additions & 23 deletions packages/math/useMax/index.ts

This file was deleted.

31 changes: 31 additions & 0 deletions packages/math/useMinimum/demo.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<script setup lang="ts">
import { ref } from 'vue'
import { useMinimum } from '@vueuse/math'
const other = ref(10)
const value = useMinimum(0, other)
</script>

<template>
<div>
<div>
other:
<input v-model="other" type="number">
<button @click="other--">
other -= 1
</button>
<button @click="other++">
other += 1
</button>
</div>
value:{{ value }}
<div>
<button @click="value--">
value -= 1
</button>
<button @click="value++">
value += 1
</button>
</div>
</div>
</template>
16 changes: 16 additions & 0 deletions packages/math/useMinimum/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
category: '@Math'
---

# useMinimum

Reactively access a value no greater than max.

## Usage

```ts
import { useMinimum } from '@vueuse/math'

const other = ref(10)
const value = useMinimum(0, other)
```
48 changes: 48 additions & 0 deletions packages/math/useMinimum/index.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { ref } from 'vue-demi'
import { useMin, useMinimum } from '.'

describe('useClamp', () => {
it('should be defined', () => {
expect(useMin).toBeDefined()
expect(useMinimum).toBeDefined()
})

it('should accept numbers', () => {
const v = useMinimum(0, 100)
expect(v.value).toBe(100)
})

it('should accept refs', () => {
const value1 = ref(10)
const value2 = ref(100)
const value3 = ref(1000)

const v = useMinimum(0, value1, value2, value3)

expect(v.value).toBe(10)

v.value = 1001
expect(v.value).toBe(10)

value1.value = 9
expect(v.value).toBe(9)

value2.value = 8
expect(v.value).toBe(8)

value3.value = 7
expect(v.value).toBe(7)
})

it('should accept numbers and refs', () => {
const value1 = 10
const value2 = ref(100)

const v = useMinimum(0, value1, value2)

expect(v.value).toBe(10)

value2.value = 9
expect(v.value).toBe(9)
})
})
25 changes: 25 additions & 0 deletions packages/math/useMinimum/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import type { Ref } from 'vue-demi'
import { computed, ref } from 'vue-demi'
import type { MaybeComputedRef, MaybeRef } from '@vueuse/shared'
import { resolveUnref } from '@vueuse/shared'

/**
* Reactively access a value no greater than max.
*
* @see https://vueuse.org/useMinimum
* @param value1
* @param value2
*/
export function useMinimum(defaultValue: MaybeRef<number>, ...mins: MaybeComputedRef<number>[]): Ref<number> {
const _value = ref(defaultValue)
return computed<number>({
get() {
return _value.value = Math.min(_value.value, ...mins.map(value => resolveUnref(value)))
},
set(value) {
_value.value = Math.min(value, ...mins.map(value => resolveUnref(value)))
},
})
}

export const useMin = useMinimum

0 comments on commit fd433aa

Please sign in to comment.