overleaf/services/web/frontend/js/ide/binary-files/BinaryFilesManager.js
Tim Down 13f246a85e Merge pull request #15342 from overleaf/td-remove-file-tree-manager-in-react
Remove use of FileTreeManager in React code

GitOrigin-RevId: f15bc9b4f84e0f65709b9850ed8cc5d3637efa7f
2023-10-27 08:03:10 +00:00

73 lines
1.8 KiB
JavaScript

/* eslint-disable
max-len,
no-unused-vars,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
let BinaryFilesManager
export default BinaryFilesManager = class BinaryFilesManager {
constructor(ide, $scope) {
this.ide = ide
this.$scope = $scope
this.$scope.$on('entity:selected', (event, entity) => {
if (this.$scope.ui.view !== 'track-changes' && entity.type === 'file') {
return this.openFile(entity)
} else if (entity.type === 'doc') {
return this.closeFile()
}
})
}
openFile(file) {
if (this.$scope.ui.view === 'editor') {
// store position before switching to binary view
this.$scope.$broadcast('store-doc-position')
}
this.ide.fileTreeManager.selectEntity(file)
if (this.$scope.ui.view !== 'history') {
this.$scope.ui.view = 'file'
}
this.$scope.openFile = null
this.$scope.$apply()
return window.setTimeout(
() => {
this.$scope.openFile = file
this.$scope.$apply()
this.$scope.$broadcast('file-view:file-opened')
window.dispatchEvent(new Event('file-view:file-opened'))
},
0,
this
)
}
openFileWithId(id) {
const entity = this.ide.fileTreeManager.findEntityById(id)
if (entity?.type === 'file') {
this.openFile(entity)
}
}
closeFile() {
return window.setTimeout(
() => {
this.$scope.openFile = null
if (this.$scope.ui.view !== 'history') {
this.$scope.ui.view = 'editor'
}
this.$scope.$apply()
},
0,
this
)
}
}