Skip to content

Instantly share code, notes, and snippets.

@tehmaestro
Created January 18, 2021 17:42
Show Gist options
  • Save tehmaestro/f2db9edad8179dc8b9ccf226085b03be to your computer and use it in GitHub Desktop.
Save tehmaestro/f2db9edad8179dc8b9ccf226085b03be to your computer and use it in GitHub Desktop.
New Twiddle
import Component from '@glimmer/component';
import { action, computed } from '@ember/object';
import { inject as service } from '@ember/service';
export default class extends Component {
@service alarms;
get currentAlarmsKey1() {
console.log('computed key 1');
return this.alarms.alarms['key1'];
}
get currentAlarmsKey2() {
console.log('computed key 2');
return this.alarms.alarms['key2'];
}
@action
add(key) {
this.alarms.add(key);
}
}
import Controller from '@ember/controller';
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle';
}
import Service from '@ember/service';
import { tracked } from '@glimmer/tracking'
export default class AlarmsService extends Service {
alarms = {'key1': [{set: true}], 'key2': []};
add(key) {
console.log('adding ' + key);
this.alarms[key] = this.alarms[key] || [];
this.alarms[key].pushObject({set: true});
}
}
body {
margin: 12px 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
}
.box {
border: 1px solid red;
}
a {
color: blue;
}
<h1>Welcome to {{this.appName}}</h1>
<br>
<br>
{{outlet}}
<Calendar-day />
<br>
<br>
<div class="box">
<h5>Alarms for key 1</h5>
<ul>
{{#each currentAlarmsKey1 as |alarm index|}}
<li>Alarm {{index}}</li>
{{/each}}
</ul>
<a {{on 'click' (fn this.add 'key1')}}>Add to key 1</a>
</div>
<div class="box">
<h5>Alarms for key 2</h5>
<ul>
{{#each currentAlarmsKey2 as |alarm index|}}
<li>Alarm {{index}}</li>
{{/each}}
</ul>
<a {{on 'click' (fn this.add 'key2')}}>Add to key 2</a>
</div>
{
"version": "0.17.1",
"EmberENV": {
"FEATURES": {},
"_TEMPLATE_ONLY_GLIMMER_COMPONENTS": false,
"_APPLICATION_TEMPLATE_WRAPPER": true,
"_JQUERY_INTEGRATION": true
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js",
"ember": "3.18.1",
"ember-template-compiler": "3.18.1",
"ember-testing": "3.18.1"
},
"addons": {
"@glimmer/component": "1.0.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment