Source: view/save/addLoadConfigText.js

  1. /** @module */
  2. import addUpload from './addUpload.js'
  3. /**
  4. * Add buttons to layout for undo and redo, and connect them to commander for functionality.
  5. * @param {Layout} layout
  6. * @param {Commander} commander
  7. */
  8. export default function addLoadConfigText(layout, commander, nameInput) {
  9. const button = document.createElement('button')
  10. button.className = 'button2'
  11. button.innerText = 'Load Pasted Config'
  12. const text = document.createElement('textarea')
  13. button.onclick = () => {
  14. if (text.value === '') return
  15. const config = JSON.parse(text.value)
  16. commander.loadConfig(config)
  17. }
  18. const upload = addUpload(uploadCallback, nameInput)
  19. function uploadCallback(event) {
  20. const { result } = event.target
  21. const config = JSON.parse(result)
  22. commander.loadConfig(config)
  23. }
  24. const clearDiv = document.createElement('div')
  25. const div = document.createElement('div')
  26. div.appendChild(button)
  27. div.appendChild(upload)
  28. div.appendChild(clearDiv)
  29. div.appendChild(text)
  30. layout.newElement('loadConfigText', div)
  31. }