import Component from '@glimmer/component';
import { triggerSmartAction, deleteRecords } from 'client/utils/smart-view-utils';
import { action, computed } from '@ember/object';
import { tracked } from '@glimmer/tracking';
export default class GalleryView extends Component {
@tracked allSelected = false;
constructor(...args) {
super(...args);
this.pictureField = this.args.collection.fields.find((f) => {
return f.fieldName === 'imagesSF'
});
}
@action
triggerSmartAction(...args) {
return triggerSmartAction(this, ...args);
}
@action
deleteRecords(...args) {
return deleteRecords(this, ...args);
}
@computed('args.records', 'args.records.@each._selected')
get formatedRecords() {
if (!this.args.records) return [];
return this.args.records.map((r) => { r._selected = r._selected || false; return r; })
}
@action
selectRecord(selected) {
if (!selected) {
this.allSelected = false;
}
if (selected && !this.formatedRecords.find((r) => !r._selected)) {
this.allSelected = true;
}
}
@action
selectAll(selected) {
this.formatedRecords.forEach((r) => { r.set('_selected', selected);})
}
@computed('formatedRecords')
get selectedRecords() {
return this.formatedRecords.filter((r) => r._selected);
}
@computed('selectedRecords')
get disableButtons() {
return !this.selectedRecords.length;
}
willDestroy() {
this.args.records.forEach((r) => delete r._selected);
}
}