Skip to content

Commit

Permalink
Merge pull request #4735 from nextcloud/bugfix/lists
Browse files Browse the repository at this point in the history
  • Loading branch information
juliusknorr authored Sep 5, 2023
2 parents 9fe22e4 + fafb9fc commit ff8c2d0
Show file tree
Hide file tree
Showing 17 changed files with 57 additions and 25 deletions.
29 changes: 29 additions & 0 deletions cypress/e2e/viewer.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,4 +94,33 @@ describe('Open test.md in viewer', function() {
cy.get('#viewer .modal-header button.header-close').click()
cy.get('#viewer').should('not.exist')
})

it('Can use tab keys for list in the viewer', function() {
// This used to break with the focus trap that the viewer modal has
cy.openFile('empty.md')

cy.getContent()
.type('- test{enter}')

// Cypress does not have native tab key support, though this seems to work
// for triggering the key handler of tiptap
// https://github.com/cypress-io/cypress/issues/311
cy.getContent()
.trigger('keydown', { keyCode: 9 })
cy.getContent()
.trigger('keyup', { keyCode: 9 })
cy.getContent()
.type('Nested list')

cy.getContent().find('ul li').should('contain', 'test')
cy.getContent().find('ul li ul li').should('contain', 'Nested list')

cy.getContent()
.trigger('keydown', { keyCode: 9, shiftKey: true })
cy.getContent()
.trigger('keyup', { keyCode: 9, shiftKey: true })

cy.getContent().find('ul li').eq(0).should('contain', 'test')
cy.getContent().find('ul li').eq(1).should('contain', 'Nested list')
})
})
4 changes: 2 additions & 2 deletions js/editor.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/editor.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/files-modal.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion js/files-modal.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions js/text-editors.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-editors.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-files.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-files.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-public.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-public.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-text.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-text.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions js/text-viewer.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/text-viewer.js.map

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions src/components/Editor.vue
Original file line number Diff line number Diff line change
Expand Up @@ -635,9 +635,16 @@ export default {
onFocus() {
this.emit('focus')
// Make sure that the focus trap doesn't catch tab keys while being in the contenteditable
window._nc_focus_trap?.[0]?.pause()
},
onBlur() {
this.emit('blur')
// Hand back focus to the previous trap
window._nc_focus_trap?.[0]?.unpause()
this.$el.focus()
},
onAddImageNode() {
Expand Down
Loading

0 comments on commit ff8c2d0

Please sign in to comment.