« get me outta code hell

use ESM module syntax & minor cleanups - tui-lib - Pure Node.js library for making visual command-line programs (ala vim, ncdu)
about summary refs log tree commit diff
path: root/ui/tools/OpenFileDialog.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-05-12 17:42:09 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-05-13 12:48:36 -0300
commit6ea74c268a12325296a1d2e7fc31b02030ddb8bc (patch)
tree5da94d93acb64e7ab650d240d6cb23c659ad02ca /ui/tools/OpenFileDialog.js
parente783bcf8522fa68e6b221afd18469c3c265b1bb7 (diff)
use ESM module syntax & minor cleanups
The biggest change here is moving various element classes under
more scope-specific directories, which helps to avoid circular
dependencies and is just cleaner to navigate and expand in the
future.

Otherwise this is a largely uncritical port to ESM module syntax!
There are probably a number of changes and other cleanups that
remain much needed.

Whenever I make changes to tui-lib it's hard to believe it's
already been <INSERT COUNTING NUMBER HERE> years since the
previous time. First commits are from January 2017, and the
code originates a month earlier in KAaRMNoD!
Diffstat (limited to 'ui/tools/OpenFileDialog.js')
-rw-r--r--ui/tools/OpenFileDialog.js110
1 files changed, 0 insertions, 110 deletions
diff --git a/ui/tools/OpenFileDialog.js b/ui/tools/OpenFileDialog.js
deleted file mode 100644
index 43f2638..0000000
--- a/ui/tools/OpenFileDialog.js
+++ /dev/null
@@ -1,110 +0,0 @@
-const path = require('path')
-
-const Button = require('../form/Button')
-const Dialog = require('../Dialog')
-const FilePickerForm = require('./FilePickerForm')
-const Form = require('../form/Form')
-const Label = require('../Label')
-const TextInput = require('../form/TextInput')
-
-module.exports = class OpenFileDialog extends Dialog {
-  constructor() {
-    super()
-
-    this.visible = false
-
-    this.form = new Form()
-    this.pane.addChild(this.form)
-
-    this.filePathLabel = new Label('Enter file path:')
-    this.filePathInput = new TextInput()
-    this.openButton = new Button('Open')
-    this.cancelButton = new Button('Cancel')
-
-    this.filePickerForm = new FilePickerForm()
-    this.filePickerForm.captureTab = false
-
-    this.form.addChild(this.filePathLabel)
-    this.form.addInput(this.filePathInput)
-    this.form.addInput(this.filePickerForm)
-    this.form.addInput(this.openButton)
-    this.form.addInput(this.cancelButton)
-
-    this._resolve = null
-
-    this.openButton.on('pressed', () => {
-      this._resolve(this.filePathInput.value)
-    })
-
-    this.filePathInput.on('value', () => {
-      this._resolve(this.filePathInput.value)
-    })
-
-    {
-      const cb = append => p => {
-        this.filePathInput.setValue((path.relative(__dirname, p) || '.') + append)
-      }
-
-      this.filePickerForm.on('selected', cb(''))
-      this.filePickerForm.on('browsingDirectory', cb('/'))
-    }
-
-    this.cancelButton.on('pressed', () => {
-      this._resolve(null)
-    })
-
-    const dir = (this.lastFilePath
-      ? path.relative(__dirname, path.dirname(this.lastFilePath)) + '/'
-      : './')
-
-    this.filePathInput.setValue(dir)
-    this.filePickerForm.fillItems(dir)
-  }
-
-  fixLayout() {
-    super.fixLayout()
-
-    this.pane.w = Math.min(this.contentW, 40)
-    this.pane.h = Math.min(this.contentH, 20)
-    this.pane.centerInParent()
-
-    this.form.w = this.pane.contentW
-    this.form.h = this.pane.contentH
-
-    this.filePathLabel.x = 0
-    this.filePathLabel.y = 0
-
-    this.filePathInput.x = this.filePathLabel.right + 2
-    this.filePathInput.y = this.filePathLabel.y
-    this.filePathInput.w = this.form.contentW - this.filePathInput.x
-
-    this.filePickerForm.x = 0
-    this.filePickerForm.y = this.filePathInput.y + 2
-    this.filePickerForm.w = this.form.contentW
-    this.filePickerForm.h = this.form.contentH - this.filePickerForm.y - 2
-
-    this.openButton.x = 0
-    this.openButton.y = this.form.contentH - 1
-
-    this.cancelButton.x = this.openButton.right + 2
-    this.cancelButton.y = this.openButton.y
-  }
-
-  selected() {
-    this.form.firstInput()
-  }
-
-  go() {
-    this.visible = true
-    this.root.select(this)
-
-    return new Promise(resolve => {
-      this._resolve = resolve
-    }).then(filePath => {
-      this.visible = false
-      this.lastFilePath = filePath
-      return filePath
-    })
-  }
-}
-