Skip to content

Commit ffa304f

Browse files
authored
Merge pull request #35 from github/add-active-getter
add active getter
2 parents 4cf29ad + 593815e commit ffa304f

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ export class Quote {
1212
return startElement.closest(selector)
1313
}
1414

15+
get active(): boolean {
16+
return (this.selection?.rangeCount || 0) > 0
17+
}
18+
1519
get range(): Range {
1620
if (!this.selection || !this.selection.rangeCount) return new Range()
1721
return this.selection.getRangeAt(0)

test/test.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ describe('quote-selection', function () {
4040
changeCount++
4141
})
4242
const quote = new Quote()
43+
assert.ok(quote.active)
4344
assert.ok(quote.closest('[data-quote], [data-nested-quote]'))
4445
quote.insert(textarea)
4546

@@ -57,6 +58,7 @@ describe('quote-selection', function () {
5758
textarea.hidden = false
5859

5960
const quote = new Quote()
61+
assert.ok(quote.active)
6062
assert.ok(quote.closest('[data-quote], [data-nested-quote]'))
6163
quote.insert(textarea)
6264

@@ -71,8 +73,15 @@ describe('quote-selection', function () {
7173

7274
const quote = new Quote()
7375

76+
assert.ok(quote.active)
7477
assert.equal(quote.closest('[data-quote], [data-nested-quote]'), null)
7578
})
79+
80+
it('is not active if nothing is selected', function () {
81+
window.getSelection().removeAllRanges()
82+
const quote = new Quote()
83+
assert.notOk(quote.active)
84+
})
7685
})
7786

7887
describe('with markdown enabled', function () {
@@ -132,6 +141,7 @@ describe('quote-selection', function () {
132141
fragment.querySelector('img[alt]').replaceWith(':emoji:')
133142
})
134143
quote.select(document.querySelector('.comment-body'))
144+
assert.ok(quote.active)
135145
assert.ok(quote.closest('[data-quote]'))
136146

137147
const textarea = document.querySelector('textarea')

0 commit comments

Comments
 (0)