yanzhen-design-vue
Version:
33 lines (32 loc) • 970 B
JavaScript
import { ref, shallowRef, watchEffect } from "vue";
function useMaxLevel(keyEntities) {
const maxLevel = ref(0);
const levelEntities = shallowRef(/* @__PURE__ */ new Map());
watchEffect(() => {
const newLevelEntities = /* @__PURE__ */ new Map();
let newMaxLevel = 0;
const keyEntitiesValue = keyEntities.value || {};
for (const key in keyEntitiesValue) {
if (Object.prototype.hasOwnProperty.call(keyEntitiesValue, key)) {
const entity = keyEntitiesValue[key];
const { level } = entity;
let levelSet = newLevelEntities.get(level);
if (!levelSet) {
levelSet = /* @__PURE__ */ new Set();
newLevelEntities.set(level, levelSet);
}
levelSet.add(entity);
newMaxLevel = Math.max(newMaxLevel, level);
}
}
maxLevel.value = newMaxLevel;
levelEntities.value = newLevelEntities;
});
return {
maxLevel,
levelEntities
};
}
export {
useMaxLevel
};