isSelected per file-table-item
This commit is contained in:
parent
a26469efc9
commit
a654423557
5 changed files with 26 additions and 2 deletions
|
@ -1,7 +1,14 @@
|
|||
import Component from '@ember/component';
|
||||
import { computed } from '@ember/object';
|
||||
|
||||
const defaultFile = {};
|
||||
const defaultSelectedFilePaths = [];
|
||||
|
||||
export default Component.extend({
|
||||
file: defaultFile,
|
||||
selectedFilePaths: defaultSelectedFilePaths,
|
||||
|
||||
isSelected: computed('file.path', 'selectedFilePaths', function() {
|
||||
return this.selectedFilePaths.includes(this.file.path);
|
||||
}),
|
||||
});
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
import Component from '@ember/component';
|
||||
|
||||
const defaultFiles = [];
|
||||
const defaultSelectedFilePaths = [];
|
||||
|
||||
export default Component.extend({
|
||||
files: defaultFiles,
|
||||
selectedFilePaths: defaultSelectedFilePaths,
|
||||
});
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<tr data-test-id="file-table-item">
|
||||
<td data-test-id="file-table-item-selected">
|
||||
|
||||
{{if isSelected "Selected"}}
|
||||
</td>
|
||||
<td data-test-id="file-table-item-name">
|
||||
{{file.name}}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
</thead>
|
||||
<tbody>
|
||||
{{#each files as | file |}}
|
||||
{{file-table-item file=file selected=selected}}
|
||||
{{file-table-item file=file selectedFilePaths=selectedFilePaths}}
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
|
@ -44,4 +44,18 @@ module('Integration | Component | file-table-item', function(hooks) {
|
|||
assert.equal(find('[data-test-id=file-table-item-status]').textContent.trim(), 'available', 'Renders correct status text');
|
||||
assert.equal(find('[data-test-id=file-table-status-icon]').classList.contains('file-table-item-status-available'), true, 'Status icon has expected class');
|
||||
});
|
||||
|
||||
test('it handles toggling selected status based on incoming selectedFilePaths', async function(assert) {
|
||||
this.set('file', genericFile());
|
||||
this.set('selectedFilePaths', []);
|
||||
await render(hbs`{{file-table-item file=file selectedFilePaths=selectedFilePaths}}`);
|
||||
|
||||
assert.equal(find('[data-test-id=file-table-item-selected]').textContent.trim(), '', 'Not selected by default');
|
||||
|
||||
this.set('selectedFilePaths', [this.file.path]);
|
||||
assert.equal(find('[data-test-id=file-table-item-selected]').textContent.trim(), 'Selected', 'Not selected by default');
|
||||
|
||||
this.set('selectedFilePaths', []);
|
||||
assert.equal(find('[data-test-id=file-table-item-selected]').textContent.trim(), '', 'No longer selected');
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue