eclipsesource / eclipsesource/tabris-js

Tab "disappear" not fired when TabFolder disposed

Open
#1,742 2 comments 0 reactions 0 assignees View on GitHub
bug js
Dominant language
JavaScript
Stars
1.4k
Forks
171
PR merge metrics
No merged PRs in 30d

Description

### Problem description

When a TabFolder is disposed, its Tabs don't receive a "disappear" event.

### Expected behavior

"disappear" should be fired on the Tabs before they fire "dispose".

### Environment

- Tabris.js version: 2.6.1

### Code snippet
Tapping on the Cart tab disposes the tab, but its "disappear" listeners are not triggered.
```javascript
const {Tab, TabFolder, TextView, ui} = require('tabris');

// Create a swipe enabled tab folder with 3 tabs

let tabFolder = new TabFolder({
left: 0, top: 0, right: 0, bottom: 0,
paging: true // enables swiping. To still be able to open the developer console in iOS, swipe from the bottom right.
}).appendTo(ui.contentView);

createTab('Cart', 'resources/cart.png', 'resources/cart-filled.png').on({
tap: () => tabFolder.dispose()
});
createTab('Pay', 'resources/card.png', 'resources/card-filled.png');
createTab('Statistic', 'resources/chart.png', 'resources/chart-filled.png');

tabFolder.on('selectionChanged', ({value: tab}) => console.log(`selection changed to ${tab.title}`));

function createTab(title, image, seletedImage) {
let tab = new Tab({
title: title, // converted to upper-case on Android
image: {src: image, scale: 2},
selectedImage: {src: seletedImage, scale: 2}
}).on({
appear: ({target}) => console.log(`${target.title} appeared`),
disappear: ({target}) => console.log(`${target.title} disappeared`),
dispose: ({target}) => console.log(`${target.title} disposed`)
}).appendTo(tabFolder);
new TextView({
centerX: 0, centerY: 0,
text: 'Content of Tab ' + title
}).appendTo(tab);
return tab;
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.