Skip to content

Instantly share code, notes, and snippets.

View gregtap's full-sized avatar
🐬

Gregory TAPPERO gregtap

🐬
  • Paris
View GitHub Profile
export default Ember.Route.extend({
model: function() {
return Ember.RSVP.hash({
messages: this.store.findAll('chat-message'),
});
},
});
import Ember from 'ember';
export default Ember.Component.extend({
scrollToBottom: function() {
console.log('DID INSERT ELEMENT NOW');
}.on('didInsertElement'),
});
<div class="input-container">
{{content-editable value=message
placeholder="Type a message"
type="text"
maxlength=500
on-paste="paste"
on-input="input"
spellcheck=false}}
</div>
import Ember from 'ember';
export default Ember.Component.extend({
tagName: 'div',
classNames: ['image-wrap'],
classNameBindings: ['isPortrait:portrait:landscape', 'isLoaded:loaded'],
attributeBindings: ['width', 'height'],
isLoaded: false,
isPortrait: false,
_startHeartBeats() {
var _this = this;
var interval = setInterval(function() {
Ember.run.schedule('backgroundSocket', _this, function() {
_this._send(heartBeatMessage);
});
}, 5000);
},
import Ember from 'ember';
import User from 'online-mobile/models/user';
export default Ember.Service.extend({
store: Ember.inject.service('store'),
// websocket status.
isConnected: false,
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
loading(transition, originRoute) {
console.log('XXXXX Loading! XXXXX');
},
},
});
// The other user we are chatting with.
otherUser: function() {
console.log('HELLO WORLD');
return this.get('store').peekRecord('user', 'other');
}.property(),
export default Component.extend({
tagName: 'time',
tick: function() {
this.nextTick = run.later(this, function() {
this.notifyPropertyChange('timeago');
this.tick();
}, 1000);
}.on('init'),
import Ember from 'ember';
const { Service, inject, run } = Ember;
const TWO_HOURS = 2 * 60 * 60 * 1000;
const TWO_DAYS = 2 * 24 * 60 * 60 * 1000;
/**
* Ticking clock service.
* We use this service to sync all our momentjs udpates every second