Changeset - ed0db55f604c
[Not reviewed]
default
0 3 0
drewp@bigasterisk.com - 20 months ago 2023-06-01 21:20:40
drewp@bigasterisk.com
use undefined for 'nothing selected' insetad of null
3 files changed with 12 insertions and 9 deletions:
0 comments (0 inline, 0 general)
light9/fade/Light9FadeUi.ts
Show inline comments
 
@@ -88,15 +88,15 @@ export class Light9EffectFader extends L
 
  }
 

	
 
  graph?: SyncedGraph;
 
  ctx: NamedNode = new NamedNode(showRoot + "/fade");
 
  @property() uri!: NamedNode;
 
  @property() column!: string;
 
  @property() effect: NamedNode | null = null;
 
  @property() effectAttr: NamedNode | null = null;
 
  @state() setting: NamedNode | null = null;
 
  @property() effect?: NamedNode;
 
  @property() effectAttr?: NamedNode
 
  @state() setting?: NamedNode;
 

	
 
  @property() value: number = 0.0;
 

	
 
  constructor() {
 
    super();
 
    getTopGraph().then((g) => {
 
@@ -108,24 +108,24 @@ export class Light9EffectFader extends L
 

	
 
  private compile(graph: SyncedGraph) {
 
    const U = graph.U();
 
    if (!graph.contains(this.uri, U("rdf:type"), U(":Fader"))) {
 
      // not loaded yet, perhaps
 
      this.column = "unset";
 
      this.effect = null;
 
      this.effectAttr = null;
 
      this.effect = undefined;
 
      this.effectAttr = undefined;
 
      return;
 
    }
 
    this.column = graph.stringValue(this.uri, U(":column"));
 
    this.effect = graph.uriValue(this.uri, U(":effect"));
 
    this.setting = graph.uriValue(this.uri, U(":setting"));
 
    if (this.setting !== null) {
 
    if (this.setting !== undefined) {
 
      try {
 
        this.effectAttr = graph.uriValue(this.setting, U(":effectAttr"));
 
      } catch (e) {
 
        this.effectAttr = null;
 
        this.effectAttr = undefined;
 
      }
 
    }
 
  }
 

	
 
  private compileValue(graph: SyncedGraph) {
 
    const U = graph.U();
 
@@ -166,13 +166,13 @@ export class Light9EffectFader extends L
 

	
 
  onEffectAttrChange(ev: CustomEvent) {
 
    if (this.graph === undefined) {
 
      return;
 
    }
 
    const { newValue } = ev.detail;
 
    if (this.setting === null) {
 
    if (this.setting === undefined) {
 
      this.setting = this.graph.nextNumberedResource(this.graph.Uri(":fade_set"));
 
      this.graph.patchObject(this.uri, this.graph.Uri(":setting"), this.setting, this.ctx);
 
    }
 
    this.graph.patchObject(this.setting, this.graph.Uri(":effectAttr"), newValue, this.ctx);
 
  }
 
}
light9/web/ResourceDisplay.ts
Show inline comments
 
@@ -95,14 +95,17 @@ export class ResourceDisplay extends Lit
 
  }
 

	
 
  private onUri() {
 
    if (!this.graph) {
 
      return; /*too soon, but getTopGraph will call us again*/
 
    }
 
    
 
    if (this.uri === undefined) {
 
      this.label = "(unset)";
 
    } else if  (this.uri === null) {
 
      throw 'use undefined please'
 
    } else {
 
      this.graph.runHandler(this.compile.bind(this, this.graph), `label for ${this.uri.id}`);
 
    }
 
  }
 
  private compile(graph: SyncedGraph) {
 
    if (this.uri === undefined) {
tsconfig.json
Show inline comments
 
@@ -24,13 +24,13 @@
 
    // "downlevelIteration": true,                  /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
 
    // "isolatedModules": true,                     /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
 

	
 
    /* Strict Type-Checking Options */
 
    "strict": true,                                 /* Enable all strict type-checking options. */
 
    // "noImplicitAny": true,                       /* Raise error on expressions and declarations with an implied 'any' type. */
 
    // "strictNullChecks": true,                    /* Enable strict null checks. */
 
    "strictNullChecks": true,                    /* Enable strict null checks. */
 
    // "strictFunctionTypes": true,                 /* Enable strict checking of function types. */
 
    // "strictBindCallApply": true,                 /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
 
    // "strictPropertyInitialization": true,        /* Enable strict checking of property initialization in classes. */
 
    // "noImplicitThis": true,                      /* Raise error on 'this' expressions with an implied 'any' type. */
 
    // "alwaysStrict": true,                        /* Parse in strict mode and emit "use strict" for each source file. */
 

	
0 comments (0 inline, 0 general)