Skip to content

Instantly share code, notes, and snippets.

View jamescdavis's full-sized avatar
💭
is typing...your Ember apps

James C. Davis jamescdavis

💭
is typing...your Ember apps
View GitHub Profile
@jamescdavis
jamescdavis / experiences-sdk-error-handling-logging-plan.md
Last active May 1, 2024 21:03
Experiences SDK Error Handling & Logging Plan

Experiences SDK Error Handling & Logging Plan

Original Gist: https://gist.github.com/jamescdavis/9fe1eb5f7b205c5a50d27cba5c183f64

Epic: HD-6754

We will add error handling and logging to the Experiences SDK for the following error states:

  • Network error on published EC HEAD request (as performed in the exists() check)
  • Network error when fetching per-product config
  • Per-product config parse error
import Controller from '@ember/controller';
import UtilClass from '../utils/util-class';
export default class ApplicationController extends Controller {
util = new UtilClass(this);
get message() {
return this.util.message;
}
}
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
export default class extends Component {
@service session;
@tracked searchString;
@tracked selectedLocale = this.allLocales[0];
import Component from '@ember/component';
export default class extends Component {
}
import Controller from '@ember/controller';
import { action } from '@ember/object';
//import { dirtyTagFor } from '@glimmer/validator';
export default class ApplicationController extends Controller {
@action
updateModel() {
this.model = { ...this.model, name: 'bar' };
}
}
@jamescdavis
jamescdavis / components.my-component\.js
Created December 14, 2021 21:45
updating tracked object properties
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { action, set } from '@ember/object';
export default class extends Component {
@tracked foo = { count: 0 };
@action
incrementCount() {
this.foo.count++;
@jamescdavis
jamescdavis / components.my-component\.hbs
Last active November 11, 2021 15:12
Task auto-cancellation
<h2>My Component</h2>
<ol>
<li>Open the console and see the tasks running.</li>
<li>Observe them stop when you hide me.</li>
<li>Try commenting out my willDestroy() hook and see what happens when you hide me!</li>
</ol>
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { action } from '@ember/object';
import { task } from 'ember-concurrency';
export default class extends Component {
@tracked isOpen = true;
get something() {
return this.doSomething.perform(this.args.foo);
@jamescdavis
jamescdavis / controllers.application\.js
Created September 29, 2021 19:11
Route Model Autotracking
import Controller from '@ember/controller';
import { alias } from '@ember/object/computed';
import { action } from '@ember/object';
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle';
@alias('model.foo') bar;
get baz() {
@jamescdavis
jamescdavis / controllers.application\.js
Created September 29, 2021 19:07
Tracked Query Params
import Controller from '@ember/controller';
import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle';
queryParams = ['foo'];
@tracked foo = 'foo';
@action