label-studio
Version:
Data Labeling Tool that is backend agnostic and can be embedded into your applications
44 lines (35 loc) • 956 B
JavaScript
import { types, getParent, getEnv } from "mobx-state-tree";
import { AllRegionsType } from "../regions";
export default types
.model("RegionStore", {
regions: types.array(types.safeReference(AllRegionsType)),
})
.actions(self => ({
addRegion(region) {
self.regions.push(region);
getEnv(self).onEntityCreate(region);
},
findRegion(pid) {
return self.regions.find(r => r.pid === pid);
},
/**
* Delete region
* @param {obj} region
*/
deleteRegion(region) {
const arr = self.regions;
for (let i = 0; i < arr.length; i++) {
if (arr[i] === region) {
arr.splice(i, 1);
}
}
getEnv(self).onEntityDelete(region);
},
unselectAll() {
self.regions.forEach(r => r.unselectRegion());
getParent(self).setHighlightedNode(null);
},
unhighlightAll() {
self.regions.forEach(r => r.setHighlight(false));
},
}));