import { Controller } from '@hotwired/stimulus' export default class extends Controller { static targets = [ 'renameNotebookForm', 'notebookName', 'cell', ]; connect() { document.addEventListener('keyup', this.executeSelectedCell.bind(this)) } disconnect() { document.removeEventListener('keyup', this.executeSelectedCell.bind(this)) } renameNotebook(event) { this.renameNotebookFormTarget.classList.remove('hidden') this.notebookNameTarget.classList.add('hidden') } selectCell(event) { this.cellTargets.forEach(target => { target.classList.remove('selected') }) if (event.currentTarget.classList.contains('sql') || event.currentTarget.querySelector('.notebook-cell-edit')) { event.currentTarget.classList.add('selected') } } executeSelectedCell(event) { if (event.shiftKey) { if (event.key === 'Enter' && event.keyCode === 13) { const selectedCellPlay = document.querySelector('.selected form[data-action="notebook-cell#play"]') if (selectedCellPlay) { selectedCellPlay.requestSubmit() } } } } }