Skip to content

Instantly share code, notes, and snippets.

@deepflame
Last active August 29, 2019 15:53
Show Gist options
  • Select an option

  • Save deepflame/7cfecd6b7dc80cede294e220adc626ff to your computer and use it in GitHub Desktop.

Select an option

Save deepflame/7cfecd6b7dc80cede294e220adc626ff to your computer and use it in GitHub Desktop.

Revisions

  1. deepflame revised this gist Aug 29, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion components.my-countdown.js
    Original file line number Diff line number Diff line change
    @@ -13,7 +13,7 @@ export default Ember.Component.extend({
    },

    countdownTask: task(function * () {
    while (! this.get('countdownFinished')) {
    while (! this.get('countdownFinished')) {
    this.decrementProperty('currentValue');
    yield timeout(1000);
    }
  2. deepflame revised this gist Aug 28, 2019. 2 changed files with 2 additions and 11 deletions.
    5 changes: 0 additions & 5 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -1,5 +0,0 @@
    import Ember from 'ember';

    export default Ember.Controller.extend({
    appName: 'Ember Twiddle'
    });
    8 changes: 2 additions & 6 deletions templates.application.hbs
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,2 @@
    <h1>Welcome to {{appName}}</h1>
    <br>
    <br>
    {{my-countdown}}
    <br>
    <br>

    {{my-countdown}}
  3. deepflame created this gist Aug 28, 2019.
    26 changes: 26 additions & 0 deletions components.my-countdown.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    import Ember from 'ember';
    import { computed } from '@ember/object';
    import { task, timeout } from 'ember-concurrency';

    export default Ember.Component.extend({

    startValue: 10,
    currentValue: null,

    init() {
    this._super(...arguments);
    this.set('currentValue', this.get('startValue'));
    },

    countdownTask: task(function * () {
    while (! this.get('countdownFinished')) {
    this.decrementProperty('currentValue');
    yield timeout(1000);
    }
    }),

    countdownFinished: computed('currentValue', function () {
    return this.get('currentValue') <= 0;
    }),

    });
    5 changes: 5 additions & 0 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,5 @@
    import Ember from 'ember';

    export default Ember.Controller.extend({
    appName: 'Ember Twiddle'
    });
    6 changes: 6 additions & 0 deletions templates.application.hbs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,6 @@
    <h1>Welcome to {{appName}}</h1>
    <br>
    <br>
    {{my-countdown}}
    <br>
    <br>
    8 changes: 8 additions & 0 deletions templates.components.my-countdown.hbs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,8 @@

    <h2>Countdown: {{this.currentValue}}</h2>

    {{#if this.countdownTask.isIdle}}
    <button onclick={{action (perform this.countdownTask)}}>Start</button>
    {{else}}
    <button onclick={{action (cancel-all this.countdownTask)}}>Stop</button>
    {{/if}}
    20 changes: 20 additions & 0 deletions twiddle.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,20 @@
    {
    "version": "0.15.1",
    "EmberENV": {
    "FEATURES": {}
    },
    "options": {
    "use_pods": false,
    "enable-testing": false
    },
    "dependencies": {
    "jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js",
    "ember": "3.4.3",
    "ember-template-compiler": "3.4.3",
    "ember-testing": "3.4.3"
    },
    "addons": {
    "ember-concurrency": "1.0.0",
    "ember-data": "3.4.2"
    }
    }