types .model('Group', { name: '', id: types.optional(types.identifier, () => uuid.v4()) }) .actions(self => ({ setName(name) { self.name = name; } }))
types .model('String', { value: types.maybeNull(types.string) }) .actions(self => { return { clear() { self.value = undefined; }, setValue(s) { self.value = s; } }; }) .views(self => ({ get hasValue() { return self.value && self.value.trim() !== ''; } }))
types .model('Actions', { opened: createModel(Boolean) }) .actions(() => ({ runAction: command => { //delay command so the popup selector can be closed properly setTimeout(() => { command(); }, 300); } }))
listOfCommands: types.optional(types.array(types.string), []) }) .actions(self => ({ removeCommand(index) { pullAt(self.listOfCommands, [index]);
types .model('ToggleArray', { items: types.optional(types.array(types.string), []) }) .actions(self => ({ toggle: id => { if (self.items.includes(id)) { self.remove(id); } else { self.add(id); } }, remove: id => { self.items = self.items.filter(i => i !== id); }, add: id => { self.items.push(id); }, reset: () => { self.items = []; } }))
openProjectWhenRunning: types.optional(types.boolean, false) }) .actions(self => ({ setSettingValue: (valueKey, value) => { self[valueKey] = value;
selectedProcess: types.maybeNull(types.safeReference(Process)) }) .actions(self => { let cancelReaction;
chunkedOutput: types.optional(types.array(types.string), []) }) .actions(self => { let proc; let resolve;
types .model('ProjectFilters', { searchText: createModel(String, { value: '' }), hiddenGroups: createModel(ToggleArray), hiddenPrivacyTypes: createModel(ToggleArray), hiddenRepoTypes: createModel(ToggleArray), selectedDependencies: createModel(ToggleArray) }) .actions(self => ({ setSearch: s => { self.searchText = s; }, resetFilters: () => { // self.pickedTags.reset(); // self.pickedDependencies.reset(); } }))
types .model('Boolean', { value: false }) .actions(self => ({ setTrue() { self.value = true; }, setFalse() { self.value = false; }, toggle() { self.value = !self.value; }, setValue(value) { self.value = value; } }))
types .model('Home', { }) .actions(self => ({ }))
model({ allItems: optional(array(string), defaultItemList), newItemName: "" }).actions(self => ({ addItem() { self.allItems.push(self.newItemName); self.newItemName = ""; }, setNewItemName(e) { self.newItemName = e.target.value; }, clear() { self.allItems = []; } }))
model({ allItems: optional(array(string), defaultItemList), newItemName: "" }).actions(self => ({ addItem() { self.allItems.push(self.newItemName) self.newItemName = "" }, setNewItemName(value) { self.newItemName = value }, clear() { self.allItems = [] } }))
types.model('Book', { title: types.string, author: types.string, read: false }) .actions(self => ({ toggleRead() { self.read = !self.read } }))
types.model('Counter', { count: types.number, }) .actions(self => ({ inc(delta = 1) { self.count += delta }, dec(delta = 1) { self.count -= delta } }))