|
1 | | -import { observable, computed, action, autorun } from 'mobx'; |
| 1 | +import { observable, toJS, action } from 'mobx'; |
2 | 2 | import { storage } from './storage'; |
3 | 3 | import { Project } from './project'; |
4 | | -import { ObjectDef } from './objectdef'; |
| 4 | +import { ObjectDef, editPaths } from './objectdef'; |
| 5 | +import { uuid } from '#util/uuid'; |
| 6 | +import { selectTab } from '#components/layout/model'; |
5 | 7 | import path from 'path'; |
6 | 8 |
|
7 | 9 | const fileState = new ObjectDef(); |
@@ -33,6 +35,25 @@ class Workspace { |
33 | 35 | @action absolutePath = (filepath) => { |
34 | 36 | return path.resolve(path.dirname(this.projectPath), filepath); |
35 | 37 | }; |
| 38 | + |
| 39 | + @action fileToProject = () => { |
| 40 | + if (this.project) { |
| 41 | + const clone = toJS(this.file); |
| 42 | + editPaths(clone, this.relativePath); |
| 43 | + clone.name = 'file object'; |
| 44 | + clone.uuid = uuid(); |
| 45 | + this.project.node = clone.uuid; |
| 46 | + this.project.objects.unshift(clone); |
| 47 | + selectTab('Project'); |
| 48 | + } |
| 49 | + }; |
| 50 | + |
| 51 | + @action projectToFile = (node) => { |
| 52 | + const clone = toJS(node); |
| 53 | + editPaths(clone, this.absolutePath); |
| 54 | + Object.assign(this.file, clone); |
| 55 | + selectTab('File'); |
| 56 | + }; |
36 | 57 | } |
37 | 58 |
|
38 | 59 | const workspace = new Workspace(); |
|
0 commit comments