Skip to content

Commit 68f94f3

Browse files
committed
fix: use-map-reset
1 parent d73a413 commit 68f94f3

File tree

1 file changed

+31
-30
lines changed

1 file changed

+31
-30
lines changed

packages/hooks/src/useMap/index.ts

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,41 @@ import { ref, Ref, markRaw } from 'vue'
33
type MapValue<K, T> = Iterable<readonly [K, T]>
44

55
type Actions<K, T> = {
6-
set: (key: K, value: T) => void
7-
get: (key: K) => T | undefined
8-
remove: (key: K) => void
9-
has: (key: K) => boolean
10-
clear: () => void
11-
setAll: (newMap: MapValue<K, T>) => void
12-
reset: () => void
6+
set: (key: K, value: T) => void
7+
get: (key: K) => T | undefined
8+
remove: (key: K) => void
9+
has: (key: K) => boolean
10+
clear: () => void
11+
setAll: (newMap: MapValue<K, T>) => void
12+
reset: () => void
1313
}
1414

15-
function useMap<K, T>(
16-
initialValue?: MapValue<K, T>
17-
): [Ref<Map<K, T>>, Actions<K, T>] {
18-
const initialMap = initialValue ? new Map(initialValue) : new Map()
19-
const state = ref(initialMap) as Ref<Map<K, T>>
15+
function useMap<K, T>(initialValue?: MapValue<K, T>): [Ref<Map<K, T>>, Actions<K, T>] {
16+
const getInitValue = () => {
17+
return initialValue ? new Map(initialValue) : new Map()
18+
}
2019

21-
const actions: Actions<K, T> = {
22-
set: (key, value) => {
23-
state.value.set(key, value)
24-
},
25-
get: (key) => {
26-
return state.value.get(key)
27-
},
28-
remove: (key) => {
29-
state.value.delete(key)
30-
},
31-
has: (key) => state.value.has(key),
32-
clear: () => state.value.clear(),
33-
setAll: (newMap) => {
34-
state.value = new Map(newMap)
35-
},
36-
reset: () => (state.value = initialMap),
37-
}
20+
const state = ref(getInitValue()) as Ref<Map<K, T>>
3821

39-
return [state, markRaw(actions)]
22+
const actions: Actions<K, T> = {
23+
set: (key, value) => {
24+
state.value.set(key, value)
25+
},
26+
get: key => {
27+
return state.value.get(key)
28+
},
29+
remove: key => {
30+
state.value.delete(key)
31+
},
32+
has: key => state.value.has(key),
33+
clear: () => state.value.clear(),
34+
setAll: newMap => {
35+
state.value = new Map(newMap)
36+
},
37+
reset: () => (state.value = getInitValue()),
38+
}
39+
40+
return [state, markRaw(actions)]
4041
}
4142

4243
export default useMap

0 commit comments

Comments
 (0)