useMap<K, V> function
Flutter state hook that tracks a value of a Map.
Implementation
MapAction<K, V> useMap<K, V>(Map<K, V> initialMap) {
final map = useState(initialMap);
final value = useCallback<Map<K, V> Function()>(() {
return map.value;
}, const []);
final add = useCallback<void Function(K key, V entry)>((key, entry) {
map.value = {
...map.value,
...{key: entry}
};
}, const []);
final addAll = useCallback<void Function(Map<K, V>)>((value) {
map.value = {...map.value, ...value};
}, const []);
final replace = useCallback<void Function(Map<K, V>)>((newMap) {
map.value = newMap;
}, const []);
final remove = useCallback<void Function(K key)>((key) {
final removedMap = {...map.value};
removedMap.remove(key);
map.value = removedMap;
}, const []);
final reset = useCallback<VoidCallback>(() {
map.value = initialMap;
}, const []);
final state =
useRef(MapAction<K, V>(value, add, addAll, replace, remove, reset));
return state.value;
}