Skip to content

Commit a947f7d

Browse files
committed
Attempt to set up until it works
1 parent aed6e57 commit a947f7d

File tree

4 files changed

+15
-12
lines changed

4 files changed

+15
-12
lines changed

.tool-versions

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nodejs 22.3.0

custom-elements.json

+3
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,9 @@
437437
"kind": "field",
438438
"name": "#tabList",
439439
"privacy": "private",
440+
"type": {
441+
"text": "HTMLElement"
442+
},
440443
"readonly": true
441444
},
442445
{

src/tab-container-element.ts

+8-7
Original file line numberDiff line numberDiff line change
@@ -220,14 +220,13 @@ export class TabContainerElement extends HTMLElement {
220220
this.addEventListener('keydown', this)
221221
this.addEventListener('click', this)
222222

223-
if (this.#tabs.length > 0) {
224-
this.selectTab(-1)
225-
this.#setupComplete = true
226-
} else {
223+
this.selectTab(-1)
224+
225+
if (!this.#setupComplete) {
227226
const mutationObserver = new MutationObserver(() => {
228-
if (this.#tabs.length > 0) {
229-
this.selectTab(-1)
230-
this.#setupComplete = true
227+
this.selectTab(-1)
228+
229+
if (this.#setupComplete) {
231230
mutationObserver.disconnect()
232231
}
233232
})
@@ -413,5 +412,7 @@ export class TabContainerElement extends HTMLElement {
413412
}),
414413
)
415414
}
415+
416+
this.#setupComplete = true
416417
}
417418
}

test/test.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -339,11 +339,9 @@ describe('tab-container', function () {
339339
})
340340

341341
it('result in noop, when selectTab receives out of bounds index', function () {
342-
assert.throws(() => tabContainer.selectTab(3), 'Index "3" out of bounds')
343-
344-
tabContainer.selectTab(2)
345-
assert.deepStrictEqual(tabs.map(isSelected), [false, false, true], 'Third tab is selected')
346-
assert.deepStrictEqual(panels.map(isHidden), [true, true, false], 'Third panel is visible')
342+
tabContainer.selectTab(3)
343+
assert.deepStrictEqual(tabs.map(isSelected), [true, false, false], 'First tab is selected')
344+
assert.deepStrictEqual(panels.map(isHidden), [false, true, true], 'First panel is visible')
347345
})
348346
})
349347

0 commit comments

Comments
 (0)