ui/lib/shared/addon/components/copy-inline/component.js

56 lines
1.3 KiB
JavaScript

import { later } from '@ember/runloop';
import Component from '@ember/component';
import { isSafari } from 'ui/utils/platform';
import layout from './template';
const DELAY = 1000;
const DEFAULT_TEXT = 'copyToClipboard.tooltip';
export default Component.extend({
layout,
tagName : 'span',
model : null,
/*Component Params*/
buttonText : null,
tooltipText : null,
status : null,
size : null,
target : null,
clipboardText : null,
textChangedEvent : null,
defaultText : DEFAULT_TEXT,
init() {
this._super(...arguments);
this.set('model', new Object({tooltipText: this.get('defaultText')}));
},
mouseEnter() {
this.set('model', new Object({tooltipText: this.get('defaultText')}));
},
isSupported: function() {
return this.get('clipboardText.length') && (!isSafari || document.queryCommandSupported('copy'));
}.property('clipboardText'),
actions: {
alertSuccess: function() {
let orig = this.get('model.tooltipText');
this.setProperties({
status: 'success',
model: {tooltipText: 'copyToClipboard.copied'}
});
later(() =>{
this.setProperties({
status: null,
model: {tooltipText: orig}
});
}, DELAY);
},
},
});