open-nomad/ui/app/components/image-file.js
2023-04-10 15:36:59 +00:00

44 lines
905 B
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import Component from '@ember/component';
import { computed } from '@ember/object';
import {
classNames,
tagName,
attributeBindings,
} from '@ember-decorators/component';
import classic from 'ember-classic-decorator';
@classic
@tagName('figure')
@classNames('image-file')
@attributeBindings('data-test-image-file')
export default class ImageFile extends Component {
'data-test-image-file' = true;
src = null;
alt = null;
size = null;
// Set by updateImageMeta
width = 0;
height = 0;
@computed('src')
get fileName() {
if (!this.src) return undefined;
return this.src.includes('/') ? this.src.match(/^.*\/(.*)$/)[1] : this.src;
}
updateImageMeta(event) {
const img = event.target;
this.setProperties({
width: img.naturalWidth,
height: img.naturalHeight,
});
}
}