Skip to content

Instantly share code, notes, and snippets.

@mariechatfield
mariechatfield / controllers.application.js
Last active August 26, 2017 01:33
Parent Event Stops Propagation of Child Action
import Ember from 'ember';
export default Ember.Controller.extend({
logs: [],
actions: {
log(line) {
this.get('logs').pushObject(line);
},
import Ember from 'ember';
import links from '../config/links';
export default Ember.Component.extend({
links
});
@mariechatfield
mariechatfield / templates.application.hbs
Created January 4, 2018 00:43
directory hyphens count for component names
Component just needs a hyphen somewhere, but that counts if directory has a hyphen. (This is Ember 1.13)
{{some-directory/component}}
@mariechatfield
mariechatfield / controllers.application.js
Created February 13, 2018 01:04
POC: Promise never resolves
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
logs: [],
returnsAPromise(shouldResolve) {
return new Ember.RSVP.Promise(resolve => {
const promise = shouldResolve ? Ember.RSVP.resolve('yay! 🎉') : Ember.RSVP.reject('boo 😬');
@mariechatfield
mariechatfield / ember_events_api_types_chart_description.txt
Created March 16, 2018 17:39
Caption for Chart: How to Attach Event Listeners in Ember
Header Row: Code Sample, API, Access to Event?
Row 1:
+ Code Sample:
```
didInsertElement() {
this.$().on('click', this.handleClick);
}
```
+ API: Native DOM
import Ember from 'ember';
export default Ember.Component.extend({
});
@mariechatfield
mariechatfield / components.timeline-block.js
Last active May 22, 2018 18:01
Timeline with Fixed Sidebars
import Ember from 'ember';
const START_MINUTE = 480; // 8:00am
const PIXELS_PER_MINUTE = 1;
function timeToPixels(minutes) {
const leftOffset = START_MINUTE * PIXELS_PER_MINUTE;
return (minutes * PIXELS_PER_MINUTE) - leftOffset;
}
@mariechatfield
mariechatfield / server-side-rendered.txt
Created December 11, 2018 05:47
Sequence Diagram Plain Text Descriptions
Sequence diagram of a user interacting with a server-side rendered site.
Three columns titled: User, Browser, Server.
First set of actions:
1. User opens /index.html
2. Browser gets /index.html
3. Server finds template at views/index.pug
4. Server fetches data for all emojis

Marie Chatfield Rivas

Phone available on request Austin, TX mariechatfield.com github.com/mariechatfield

EXPERIENCE

Pingboard

Austin, TX

import Ember from 'ember';
export default Ember.Component.extend({
actions: {
stopPropagationAndLog(event) {
// This action has access to the DOM event and can call
// stopPropagation on it to prevent the event from bubbling.
event.stopPropagation();
this.get('log')(`clickAttribute w/ stopPropagation of ${this.get('parentName')}`);
}