| 123456789101112131415161718192021222324252627282930 |
- import { shallowRef, ref, watchEffect } from 'vue';
- export default function useMaxLevel(keyEntities) {
- var maxLevel = ref(0);
- var levelEntities = shallowRef();
- watchEffect(function () {
- var newLevelEntities = new Map();
- var newMaxLevel = 0;
- var keyEntitiesValue = keyEntities.value || {};
- // Convert entities by level for calculation
- for (var key in keyEntitiesValue) {
- if (Object.prototype.hasOwnProperty.call(keyEntitiesValue, key)) {
- var entity = keyEntitiesValue[key];
- var level = entity.level;
- var levelSet = newLevelEntities.get(level);
- if (!levelSet) {
- levelSet = new Set();
- newLevelEntities.set(level, levelSet);
- }
- levelSet.add(entity);
- newMaxLevel = Math.max(newMaxLevel, level);
- }
- }
- maxLevel.value = newMaxLevel;
- levelEntities.value = newLevelEntities;
- });
- return {
- maxLevel: maxLevel,
- levelEntities: levelEntities
- };
- }
|