Skip to content

Commit

Permalink
fix: remove default value
Browse files Browse the repository at this point in the history
  • Loading branch information
FrankFang committed Jul 10, 2022
1 parent d8e9aa3 commit f53255f
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 40 deletions.
30 changes: 16 additions & 14 deletions packages/math/useMinimum/demo.vue
Original file line number Diff line number Diff line change
@@ -1,31 +1,33 @@
<script setup lang="ts">
import { ref } from 'vue'
import { useMinimum } from '@vueuse/math'
const other = ref(10)
const value = useMinimum(0, other)
const min1 = ref(10)
const min2 = ref(20)
const result = useMinimum(min1, min2)
</script>

<template>
<div>
<div>
other:
<input v-model="other" type="number">
<button @click="other--">
other -= 1
min1:
<input v-model="min1" type="number">
<button @click="min1--">
min1 -= 1
</button>
<button @click="other++">
other += 1
<button @click="min1++">
min1 += 1
</button>
</div>
value:{{ value }}
<div>
<button @click="value--">
value -= 1
min2:
<input v-model="min2" type="number">
<button @click="min2--">
min2 -= 1
</button>
<button @click="value++">
value += 1
<button @click="min2++">
min2 += 1
</button>
</div>
result:{{ result }}
</div>
</template>
10 changes: 7 additions & 3 deletions packages/math/useMinimum/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,17 @@ category: '@Math'

# useMinimum

Reactively get useMinimum of values.
Reactively get minimum of values.

## Usage

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

const other = ref(10)
const value = useMinimum(0, other)
const min1 = ref(10)
const min2 = ref(20)
const result = useMinimum(min1, min2)
// result.value is 10
min2.value = 5
// result.value is 5 now
```
6 changes: 1 addition & 5 deletions packages/math/useMinimum/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,7 @@ describe('useClamp', () => {
const value2 = ref(100)
const value3 = ref(1000)

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

expect(v.value).toBe(10)

v.value = 1001
const v = useMinimum(value1, value2, value3)
expect(v.value).toBe(10)

value1.value = 9
Expand Down
28 changes: 10 additions & 18 deletions packages/math/useMinimum/index.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,18 @@
import type { Ref } from 'vue-demi'
import { computed, ref } from 'vue-demi'
import type { MaybeComputedRef, MaybeRef } from '@vueuse/shared'
import { computed } from 'vue-demi'
import type { MaybeComputedRef } from '@vueuse/shared'
import { resolveUnref } from '@vueuse/shared'

/**
* Reactively get useMinimum of values.
* Reactively get minimum of values.
*
* @see https://vueuse.org/useMinimum
* @param value number
* @param {...number[]} values
*
* @param values
*/
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 function useMinimum(...mins: MaybeComputedRef<number>[]) {
return computed<number>(() =>
Math.min(...mins.map(value => resolveUnref(value))),
)
}

export const useMin = useMinimum
// alias
export { useMinimum as useMin }

0 comments on commit f53255f

Please sign in to comment.