Skip to content

Instantly share code, notes, and snippets.

import { TrackedWeakMap } from 'tracked-built-ins';
function localCopy(target, key) {
let values = new TrackedWeakMap();
let lastValues = new WeakMap();
return {
get() {
let incoming = this.args[key];
let lastValue = lastValues.get(this);
import { get, notifyPropertyChange } from '@ember/object';
export function inLocalStorage(
target,
propertyKey,
descriptor
) {
const targetName = target.constructor.name;
const { initializer } = descriptor;
import { createTag, dirtyTag, consumeTag } from '@glimmer/tracking/tags';
export function inLocalStorage(
target,
propertyKey,
descriptor
) {
const targetName = target.constructor.name;
const key = `${targetName}-${propertyKey}`;
## Earth and Moon
Terra
Gaia
Luna
## Planets
Mercury
Venus
import Component from '@glimmer/component';
import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
export default class extends Component {
@tracked showDD = false;
@tracked selectedFilters = [];
get unselectedFilters() {
return this.args.options.filter(f => !this.selectedFilters.includes(f));
class FetchTask {
@tracked isLoading = true;
@tracked result;
constructor(url) {
this.run(url);
}
async run(url) {
let response = await fetch(url);
@pzuraq
pzuraq / controllers.application\.js
Created July 1, 2020 21:36
Route Only QP Example
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle';
transitionToQp = () => {
this.router.transitionTo({ queryParams: { foo: 123 } });
}
@pzuraq
pzuraq / components.checkbox-tree\.hbs
Last active August 27, 2020 22:43
Yielded Nested Checkboxes
<input
class="checkbox-item"
id={{@name}}
type="checkbox"
checked={{@checked}}
{{on 'change' (fn this.setChecked (not @checked))}}
name={{@name}}
{{set-indeterminate this.isIndeterminate @checked}}
>
<label for={{@name}}>{{@label}}</label>
import Component from '@glimmer/component';
import { schedule } from '@ember/runloop';
import { action } from '@ember/object';
import { tracked } from 'tracked-built-ins';
import { cached, trackedReset } from 'tracked-toolbox';
export default class extends Component {
@trackedReset('args.checked') children = tracked([]);
constructor() {
@pzuraq
pzuraq / controllers.application\.js
Last active September 25, 2020 22:46
New Twiddle
import Controller from '@ember/controller';
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle';
}