@darajs/core 1.8.4 → 1.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"data-variable.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/data-variable.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAqC,MAAM,OAAO,CAAC;AACpF,OAAO,EAAE,aAAa,EAAW,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAKtH,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG1D;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,oBAAoB,CAMhF;AA8BD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,UAAU,GACxB,OAAO,CAAC,SAAS,CAAC,CAOpB;AAED,UAAU,YAAY;IAClB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,IAAI,YAAY,CAEtE;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC1C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,UAAU,GACxB,OAAO,CAAC,SAAS,GAAG,YAAY,GAAG,IAAI,CAAC,CAU1C;AAyBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,YAAY,EACtB,oBAAoB,EAAE,MAAM,GAC7B,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,CAoB3E;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACvC,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,wBAAwB,EAClC,cAAc,EAAE,OAAO,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,GAC3D,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,CA+D3E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAIjE"}
1
+ {"version":3,"file":"data-variable.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/data-variable.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAqC,MAAM,OAAO,CAAC;AACpF,OAAO,EAAE,aAAa,EAAW,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAMtH,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG1D;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,oBAAoB,CAMhF;AA8BD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,UAAU,GACxB,OAAO,CAAC,SAAS,CAAC,CAOpB;AAED,UAAU,YAAY;IAClB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,IAAI,YAAY,CAEtE;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC1C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,UAAU,GACxB,OAAO,CAAC,SAAS,GAAG,YAAY,GAAG,IAAI,CAAC,CAU1C;AAyBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,YAAY,EACtB,oBAAoB,EAAE,MAAM,GAC7B,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,CAwB3E;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACvC,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,wBAAwB,EAClC,cAAc,EAAE,OAAO,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,GAC3D,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,CAqE3E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAIjE"}
@@ -14,6 +14,7 @@ import { HTTP_METHOD, validateResponse } from '@darajs/ui-utils';
14
14
  import { fetchTaskResult, handleAuthErrors } from '../../api';
15
15
  import { request } from '../../api/http';
16
16
  import { useRequestExtras } from '../context';
17
+ import { useEventBus } from '../event-bus/event-bus';
17
18
  import { combineFilters } from './filtering';
18
19
  import { atomRegistry } from './store';
19
20
  /**
@@ -111,16 +112,19 @@ function fetchDataVariableCount(uid, extras, filters, cacheKey) {
111
112
  * @param serverTriggerCounter a counter to force recreation of the callback
112
113
  */
113
114
  export function useFetchDataVariable(variable, serverTriggerCounter) {
115
+ const eventBus = useEventBus();
114
116
  const extras = useRequestExtras();
115
117
  const dataCallback = useCallback((filters, pagination) => __awaiter(this, void 0, void 0, function* () {
116
118
  const mergedFilters = combineFilters('AND', [variable.filters, filters]);
117
119
  const data = yield fetchDataVariable(variable.uid, extras, mergedFilters, pagination);
118
120
  const totalCount = yield fetchDataVariableCount(variable.uid, extras, mergedFilters);
121
+ // publish the event
122
+ eventBus.publish('DATA_VARIABLE_LOADED', { variable, value: { data, totalCount } });
119
123
  return {
120
124
  data,
121
125
  totalCount,
122
126
  };
123
- }), [variable, extras, serverTriggerCounter]);
127
+ }), [variable, extras, serverTriggerCounter, eventBus]);
124
128
  return dataCallback;
125
129
  }
126
130
  /**
@@ -133,6 +137,7 @@ export function useFetchDataVariable(variable, serverTriggerCounter) {
133
137
  * @param dvValuePromise promise representing underlying derived variable state
134
138
  */
135
139
  export function useFetchDerivedDataVariable(variable, taskContext, wsClient, dvValuePromise) {
140
+ const eventBus = useEventBus();
136
141
  const extras = useRequestExtras();
137
142
  const previousResult = useRef({ data: null, totalCount: 0 });
138
143
  const dataCallback = useCallback((filters, pagination) => __awaiter(this, void 0, void 0, function* () {
@@ -152,6 +157,7 @@ export function useFetchDerivedDataVariable(variable, taskContext, wsClient, dvV
152
157
  yield wsClient.waitForTask(taskId);
153
158
  }
154
159
  catch (_a) {
160
+ eventBus.publish('DERIVED_DATA_VARIABLE_LOADED', { variable, value: null });
155
161
  // If an error occurred (i.e. task was cancelled) return the previous result.
156
162
  // This would also cause the callback's identity to change so if the consuming component is
157
163
  // honouring the contract, it should execute the callback again
@@ -170,11 +176,13 @@ export function useFetchDerivedDataVariable(variable, taskContext, wsClient, dvV
170
176
  // As the total count could have changed because of the underlying DV changing
171
177
  const totalCount = yield fetchDataVariableCount(variable.uid, extras, mergedFilters, dvValue.cache_key);
172
178
  previousResult.current = { data, totalCount };
179
+ // publish the event
180
+ eventBus.publish('DERIVED_DATA_VARIABLE_LOADED', { variable, value: { data, totalCount } });
173
181
  return {
174
182
  data,
175
183
  totalCount,
176
184
  };
177
- }), [variable, extras, dvValuePromise]);
185
+ }), [variable, extras, dvValuePromise, eventBus]);
178
186
  return dataCallback;
179
187
  }
180
188
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"data-variable.js","sourceRoot":"","sources":["../../../js/shared/interactivity/data-variable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-variable.js","sourceRoot":"","sources":["../../../js/shared/interactivity/data-variable.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,gDAAgD;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAA4B,eAAe,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACpF,OAAO,EAAiB,OAAO,EAAE,MAAM,YAAY,CAAC;AAIpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAsB;IACtD,OAAO;QACH,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,QAAQ,CAAC,GAAG;KACpB,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,IAAY,EAAE,UAAuB;IACxD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAElD,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAAE,CAAC;QACpB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,EAAE,CAAC;QACrB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,CAAC;QACnB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAAE,CAAC;QACpB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAgB,iBAAiB,CACnC,GAAW,EACX,MAAqB,EACrB,OAAqB,EACrB,UAAuB;;QAEvB,MAAM,GAAG,GAAG,aAAa,CAAC,2BAA2B,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAExE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7G,MAAM,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,gBAAgB,CAAC,QAAQ,EAAE,+BAA+B,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;CAAA;AAWD,MAAM,UAAU,cAAc,CAAC,QAAa;IACxC,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,CAAC;AAC1F,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAgB,wBAAwB,CAC1C,GAAW,EACX,MAAqB,EACrB,QAAgB,EAChB,SAAiB,EACjB,OAAqB,EACrB,UAAuB;;QAEvB,MAAM,GAAG,GAAG,aAAa,CAAC,2BAA2B,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC1B,GAAG,EACH,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,EAC3G,MAAM,CACT,CAAC;QACF,MAAM,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,gBAAgB,CAAC,QAAQ,EAAE,+BAA+B,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;CAAA;AAED;;;;;;GAMG;AACH,SAAe,sBAAsB,CACjC,GAAW,EACX,MAAqB,EACrB,OAAqB,EACrB,QAAiB;;QAEjB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC1B,2BAA2B,GAAG,QAAQ,EACtC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,EACpF,MAAM,CACT,CAAC;QACF,MAAM,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,gBAAgB,CAAC,QAAQ,EAAE,2CAA2C,CAAC,CAAC;QAC9E,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAChC,QAAsB,EACtB,oBAA4B;IAE5B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAElC,MAAM,YAAY,GAAG,WAAW,CAC5B,CAAO,OAAqB,EAAE,UAAuB,EAAE,EAAE;QACrD,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAEzE,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;QAEtF,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAErF,oBAAoB;QACpB,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAEpF,OAAO;YACH,IAAI;YACJ,UAAU;SACb,CAAC;IACN,CAAC,CAAA,EACD,CAAC,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CACrD,CAAC;IAEF,OAAO,YAAY,CAAC;AACxB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACvC,QAA6B,EAC7B,WAA8B,EAC9B,QAAkC,EAClC,cAA0D;IAE1D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,cAAc,GAAG,MAAM,CAAe,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,WAAW,CAC5B,CAAO,OAAqB,EAAE,UAAuB,EAAE,EAAE;QACrD,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;QAErC,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAC3C,QAAQ,CAAC,GAAG,EACZ,MAAM,EACN,OAAO,CAAC,SAAS,EACjB,MAAM,QAAQ,CAAC,UAAU,EAAE,EAC3B,aAAa,EACb,UAAU,CACb,CAAC;QAEF,IAAI,IAAI,GAAG,IAAI,CAAC;QAEhB,MAAM,cAAc,GAAG,GAAG,QAAQ,CAAC,GAAG,SAAS,CAAC;QAEhD,yCAAyC;QACzC,WAAW,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAEhD,sEAAsE;QACtE,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;YAEhC,sCAAsC;YACtC,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAE9C,IAAI,CAAC;gBACD,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;YAAC,WAAM,CAAC;gBACL,QAAQ,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE5E,6EAA6E;gBAC7E,2FAA2F;gBAC3F,+DAA+D;gBAC/D,OAAO,cAAc,CAAC,OAAO,CAAC;YAClC,CAAC;oBAAS,CAAC;gBACP,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,GAAG,MAAM,eAAe,CAAY,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACJ,kCAAkC;YAClC,IAAI,GAAG,QAA4B,CAAC;QACxC,CAAC;QAED,oHAAoH;QACpH,8EAA8E;QAC9E,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAExG,cAAc,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAE9C,oBAAoB;QACpB,QAAQ,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAE5F,OAAO;YACH,IAAI;YACJ,UAAU;SACb,CAAC;IACN,CAAC,CAAA,EACD,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAC/C,CAAC;IAEF,OAAO,YAAY,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAsB;IACvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;AACL,CAAC"}
@@ -16,10 +16,10 @@ import { registerDataVariable, useDerivedVariable, useFetchDataVariable, useFetc
16
16
  */
17
17
  export function useDataVariable(variable) {
18
18
  const extras = useRequestExtras();
19
- const { client: WsClient } = useContext(WebSocketCtx);
19
+ const { client: wsClient } = useContext(WebSocketCtx);
20
20
  if (isDataVariable(variable)) {
21
21
  registerDataVariable(variable);
22
- const serverTriggers$ = useMemo(() => WsClient.serverTriggers$(variable.uid), []);
22
+ const serverTriggers$ = useMemo(() => wsClient.serverTriggers$(variable.uid), []);
23
23
  const [serverTriggerCounter, setServerTriggerCounter] = useState(0);
24
24
  useEffect(() => {
25
25
  const sub = serverTriggers$.subscribe(() => setServerTriggerCounter((c) => c + 1));
@@ -37,7 +37,7 @@ export function useDataVariable(variable) {
37
37
  };
38
38
  }, []);
39
39
  const taskContext = useTaskContext();
40
- const dvSelector = useDerivedVariable(variable, WsClient, taskContext, extras);
40
+ const dvSelector = useDerivedVariable(variable, wsClient, taskContext, extras);
41
41
  const dvLoadable = useRecoilValueLoadable(dvSelector);
42
42
  // We can't directly use the loadable as the callback's dependency because the loadable identity
43
43
  // changes whenever it also changes state; we only want to update it when there is a new value
@@ -48,7 +48,7 @@ export function useDataVariable(variable) {
48
48
  setDvValue(dvLoadable.toPromise());
49
49
  }
50
50
  }, [dvLoadable]);
51
- const fetchDerivedDataVariable = useFetchDerivedDataVariable(variable, taskContext, WsClient, dvValue);
51
+ const fetchDerivedDataVariable = useFetchDerivedDataVariable(variable, taskContext, wsClient, dvValue);
52
52
  return fetchDerivedDataVariable;
53
53
  }
54
54
  //# sourceMappingURL=use-data-variable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-variable.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/use-variable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAmC,MAAM,OAAO,CAAC;AAKlF,OAAO,EAAE,QAAQ,EAAuF,MAAM,SAAS,CAAC;AAmBxH;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAwDzG"}
1
+ {"version":3,"file":"use-variable.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/use-variable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAmC,MAAM,OAAO,CAAC;AAKlF,OAAO,EAAE,QAAQ,EAAuF,MAAM,SAAS,CAAC;AAmBxH;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAyDzG"}
@@ -49,8 +49,8 @@ export function useVariable(variable) {
49
49
  const selector = useDerivedVariable(variable, WsClient, taskContext, extras);
50
50
  const selectorLoadable = useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE(selector);
51
51
  useEffect(() => {
52
- if (selectorLoadable.state === 'hasValue') {
53
- bus.publish('DERIVED_VARIABLE_LOADED', { variable, value: selectorLoadable.contents.value });
52
+ if (selectorLoadable.state !== 'loading') {
53
+ bus.publish('DERIVED_VARIABLE_LOADED', { variable, value: selectorLoadable.contents });
54
54
  }
55
55
  }, [selectorLoadable]);
56
56
  const deferred = useDeferLoadable(selectorLoadable);
@@ -63,7 +63,8 @@ export function useVariable(variable) {
63
63
  const [loadable, setLoadable] = useRecoilStateLoadable(recoilState);
64
64
  const deferred = useDeferLoadable(loadable);
65
65
  useEffect(() => {
66
- if (loadable.state === 'hasValue') {
66
+ // when loadable resolves to a value/error
67
+ if (loadable.state !== 'loading') {
67
68
  bus.publish('PLAIN_VARIABLE_LOADED', { variable, value: loadable.contents });
68
69
  }
69
70
  }, [loadable]);
@@ -1 +1 @@
1
- {"version":3,"file":"use-variable.js","sourceRoot":"","sources":["../../../js/shared/interactivity/use-variable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-variable.js","sourceRoot":"","sources":["../../../js/shared/interactivity/use-variable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,kDAAkD,EAAE,MAAM,QAAQ,CAAC;AAEpG,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAY,cAAc,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAExH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5F,mIAAmI;AACnI,+CAA+C;AAC/C,kFAAkF;AAClF,4DAA4D;AAC5D,gDAAgD;AAEhD;;GAEG;AACH,SAAS,wBAAwB;IAC7B,sCAAsC;IACtC,OAAO,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;AACjH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAI,QAAyB;IACpD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAElC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,gBAAgB,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAE1B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,2EAA2E;IAC3E,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACrD,SAAS,CAAC,GAAG,EAAE;QACX,OAAO,GAAG,EAAE;YACR,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5D,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,wEAAwE;IACxE,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,mCAAoC,QAAgB,CAAC,UAAoB,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC7E,MAAM,gBAAgB,GAAG,kDAAkD,CAAC,QAAQ,CAAC,CAAC;QAEtF,SAAS,CAAC,GAAG,EAAE;YACX,IAAI,gBAAgB,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvC,GAAG,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3F,CAAC;QACL,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEvB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QAEpD,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,WAAW,GAAG,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACxF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACX,0CAA0C;QAC1C,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjF,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ComponentInstance, DerivedVariable, Variable } from './core';
1
+ import { ComponentInstance, DataVariable, DerivedDataVariable, DerivedVariable, Variable } from './core';
2
2
  /**
3
3
  * Map of available global events,
4
4
  * format: {eventName: eventData}
@@ -17,6 +17,14 @@ export interface DaraEventMap {
17
17
  variable: Variable<any>;
18
18
  value: any;
19
19
  };
20
+ DATA_VARIABLE_LOADED: {
21
+ variable: DataVariable;
22
+ value: any;
23
+ };
24
+ DERIVED_DATA_VARIABLE_LOADED: {
25
+ variable: DerivedDataVariable;
26
+ value: any;
27
+ };
20
28
  }
21
29
  /**
22
30
  * Event type
@@ -1 +1 @@
1
- {"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../js/types/event-types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,uBAAuB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,iBAAiB,CAAA;KAAE,CAAC;IACjF,uBAAuB,EAAE;QAAE,QAAQ,EAAE,eAAe,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC;IACnE,qBAAqB,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC;CAClE;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC;AAE/C,kDAAkD;AAClD,MAAM,MAAM,SAAS,GAAG;KACnB,CAAC,IAAI,aAAa,GAAG;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;KAAE;CAC3D,CAAC,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../js/types/event-types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEzG;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,uBAAuB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,iBAAiB,CAAA;KAAE,CAAC;IACjF,uBAAuB,EAAE;QAAE,QAAQ,EAAE,eAAe,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC;IACnE,qBAAqB,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC;IAC/D,oBAAoB,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC;IAC7D,4BAA4B,EAAE;QAAE,QAAQ,EAAE,mBAAmB,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC;CAC/E;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC;AAE/C,kDAAkD;AAClD,MAAM,MAAM,SAAS,GAAG;KACnB,CAAC,IAAI,aAAa,GAAG;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;KAAE;CAC3D,CAAC,aAAa,CAAC,CAAC"}
@@ -56085,6 +56085,38 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
56085
56085
  function useUrlVariable(variable) {
56086
56086
  return Recoil_index_22(getOrRegisterUrlVariable(variable));
56087
56087
  }
56088
+ class EventBus {
56089
+ constructor(parentBus) {
56090
+ __privateAdd(this, _events$, new Subject());
56091
+ __privateAdd(this, _parentBus, null);
56092
+ __privateSet(this, _parentBus, parentBus != null ? parentBus : null);
56093
+ }
56094
+ publish(type, data) {
56095
+ __privateGet(this, _events$).next({ type, data });
56096
+ if (__privateGet(this, _parentBus)) {
56097
+ __privateGet(this, _parentBus).publish(type, data);
56098
+ }
56099
+ }
56100
+ subscribe(callback) {
56101
+ const sub = __privateGet(this, _events$).pipe().subscribe(callback);
56102
+ return () => sub.unsubscribe();
56103
+ }
56104
+ }
56105
+ _events$ = new WeakMap();
56106
+ _parentBus = new WeakMap();
56107
+ const DEFAULT_BUS = new EventBus();
56108
+ const EventBusContext = React__namespace.createContext(DEFAULT_BUS);
56109
+ function useEventBus() {
56110
+ return React__namespace.useContext(EventBusContext);
56111
+ }
56112
+ function EventCapturer({ children, onEvent }) {
56113
+ const parentBus = useEventBus();
56114
+ const bus = React__namespace.useMemo(() => new EventBus(parentBus), [parentBus]);
56115
+ React__namespace.useEffect(() => {
56116
+ return bus.subscribe(onEvent);
56117
+ }, [bus, onEvent]);
56118
+ return /* @__PURE__ */ React__namespace.createElement(EventBusContext.Provider, { value: bus }, children);
56119
+ }
56088
56120
  function combineFilters(combinator, queries) {
56089
56121
  const validQueries = queries.filter(Boolean);
56090
56122
  if (validQueries.length === 0) {
@@ -56150,22 +56182,25 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
56150
56182
  return response.json();
56151
56183
  }
56152
56184
  function useFetchDataVariable(variable, serverTriggerCounter) {
56185
+ const eventBus = useEventBus();
56153
56186
  const extras = useRequestExtras();
56154
56187
  const dataCallback = React.useCallback(
56155
56188
  async (filters, pagination) => {
56156
56189
  const mergedFilters = combineFilters("AND", [variable.filters, filters]);
56157
56190
  const data = await fetchDataVariable(variable.uid, extras, mergedFilters, pagination);
56158
56191
  const totalCount = await fetchDataVariableCount(variable.uid, extras, mergedFilters);
56192
+ eventBus.publish("DATA_VARIABLE_LOADED", { variable, value: { data, totalCount } });
56159
56193
  return {
56160
56194
  data,
56161
56195
  totalCount
56162
56196
  };
56163
56197
  },
56164
- [variable, extras, serverTriggerCounter]
56198
+ [variable, extras, serverTriggerCounter, eventBus]
56165
56199
  );
56166
56200
  return dataCallback;
56167
56201
  }
56168
56202
  function useFetchDerivedDataVariable(variable, taskContext, wsClient, dvValuePromise) {
56203
+ const eventBus = useEventBus();
56169
56204
  const extras = useRequestExtras();
56170
56205
  const previousResult = React.useRef({ data: null, totalCount: 0 });
56171
56206
  const dataCallback = React.useCallback(
@@ -56189,6 +56224,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
56189
56224
  try {
56190
56225
  await wsClient.waitForTask(taskId);
56191
56226
  } catch {
56227
+ eventBus.publish("DERIVED_DATA_VARIABLE_LOADED", { variable, value: null });
56192
56228
  return previousResult.current;
56193
56229
  } finally {
56194
56230
  taskContext.endTask(taskId);
@@ -56199,12 +56235,13 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
56199
56235
  }
56200
56236
  const totalCount = await fetchDataVariableCount(variable.uid, extras, mergedFilters, dvValue.cache_key);
56201
56237
  previousResult.current = { data, totalCount };
56238
+ eventBus.publish("DERIVED_DATA_VARIABLE_LOADED", { variable, value: { data, totalCount } });
56202
56239
  return {
56203
56240
  data,
56204
56241
  totalCount
56205
56242
  };
56206
56243
  },
56207
- [variable, extras, dvValuePromise]
56244
+ [variable, extras, dvValuePromise, eventBus]
56208
56245
  );
56209
56246
  return dataCallback;
56210
56247
  }
@@ -57632,38 +57669,6 @@ Inferred class string: "${iconClasses}."`
57632
57669
  const [styles2, css2] = parseRawCss((_a = props.config) == null ? void 0 : _a.raw_css);
57633
57670
  return /* @__PURE__ */ React__default.default.createElement(ErrorDisplayWrapper, { $rawCss: css2, style: styles2 }, /* @__PURE__ */ React__default.default.createElement(ContentWrapper, null, /* @__PURE__ */ React__default.default.createElement(ErrorContent, null, /* @__PURE__ */ React__default.default.createElement(ErrorTitle$1, null, /* @__PURE__ */ React__default.default.createElement(IconWrapper, null, /* @__PURE__ */ React__default.default.createElement(ErrorIcon, { "aria-hidden": true, className: "fa-solid fa-circle-xmark fa-lg" })), (_c = (_b = props == null ? void 0 : props.config) == null ? void 0 : _b.title) != null ? _c : "Error"), /* @__PURE__ */ React__default.default.createElement(ErrorText$1, null, (_e2 = (_d = props == null ? void 0 : props.config) == null ? void 0 : _d.description) != null ? _e2 : "Try again or contact the application owner."))), props.resetErrorBoundary && /* @__PURE__ */ React__default.default.createElement(RetryButton, { onClick: () => props.resetErrorBoundary(props.error), type: "button" }, /* @__PURE__ */ React__default.default.createElement("i", { "aria-hidden": true, className: "fa-solid fa-rotate fa-xl" })));
57634
57671
  }
57635
- class EventBus {
57636
- constructor(parentBus) {
57637
- __privateAdd(this, _events$, new Subject());
57638
- __privateAdd(this, _parentBus, null);
57639
- __privateSet(this, _parentBus, parentBus != null ? parentBus : null);
57640
- }
57641
- publish(type, data) {
57642
- __privateGet(this, _events$).next({ type, data });
57643
- if (__privateGet(this, _parentBus)) {
57644
- __privateGet(this, _parentBus).publish(type, data);
57645
- }
57646
- }
57647
- subscribe(callback) {
57648
- const sub = __privateGet(this, _events$).pipe().subscribe(callback);
57649
- return () => sub.unsubscribe();
57650
- }
57651
- }
57652
- _events$ = new WeakMap();
57653
- _parentBus = new WeakMap();
57654
- const DEFAULT_BUS = new EventBus();
57655
- const EventBusContext = React__namespace.createContext(DEFAULT_BUS);
57656
- function useEventBus() {
57657
- return React__namespace.useContext(EventBusContext);
57658
- }
57659
- function EventCapturer({ children, onEvent }) {
57660
- const parentBus = useEventBus();
57661
- const bus = React__namespace.useMemo(() => new EventBus(parentBus), [parentBus]);
57662
- React__namespace.useEffect(() => {
57663
- return bus.subscribe(onEvent);
57664
- }, [bus, onEvent]);
57665
- return /* @__PURE__ */ React__namespace.createElement(EventBusContext.Provider, { value: bus }, children);
57666
- }
57667
57672
  function warnUpdateOnDerivedState() {
57668
57673
  console.warn("You tried to call update on variable with derived state, this is a noop and will be ignored.");
57669
57674
  }
@@ -57689,8 +57694,8 @@ Inferred class string: "${iconClasses}."`
57689
57694
  const selector2 = useDerivedVariable(variable, WsClient, taskContext, extras);
57690
57695
  const selectorLoadable = Recoil_index_28(selector2);
57691
57696
  React.useEffect(() => {
57692
- if (selectorLoadable.state === "hasValue") {
57693
- bus.publish("DERIVED_VARIABLE_LOADED", { variable, value: selectorLoadable.contents.value });
57697
+ if (selectorLoadable.state !== "loading") {
57698
+ bus.publish("DERIVED_VARIABLE_LOADED", { variable, value: selectorLoadable.contents });
57694
57699
  }
57695
57700
  }, [selectorLoadable]);
57696
57701
  const deferred2 = useDeferLoadable(selectorLoadable);
@@ -57703,7 +57708,7 @@ Inferred class string: "${iconClasses}."`
57703
57708
  const [loadable, setLoadable] = Recoil_index_23(recoilState);
57704
57709
  const deferred = useDeferLoadable(loadable);
57705
57710
  React.useEffect(() => {
57706
- if (loadable.state === "hasValue") {
57711
+ if (loadable.state !== "loading") {
57707
57712
  bus.publish("PLAIN_VARIABLE_LOADED", { variable, value: loadable.contents });
57708
57713
  }
57709
57714
  }, [loadable]);
@@ -57711,10 +57716,10 @@ Inferred class string: "${iconClasses}."`
57711
57716
  }
57712
57717
  function useDataVariable(variable) {
57713
57718
  const extras = useRequestExtras();
57714
- const { client: WsClient } = React.useContext(websocketCtx);
57719
+ const { client: wsClient } = React.useContext(websocketCtx);
57715
57720
  if (isDataVariable(variable)) {
57716
57721
  registerDataVariable(variable);
57717
- const serverTriggers$ = React.useMemo(() => WsClient.serverTriggers$(variable.uid), []);
57722
+ const serverTriggers$ = React.useMemo(() => wsClient.serverTriggers$(variable.uid), []);
57718
57723
  const [serverTriggerCounter, setServerTriggerCounter] = React.useState(0);
57719
57724
  React.useEffect(() => {
57720
57725
  const sub = serverTriggers$.subscribe(() => setServerTriggerCounter((c2) => c2 + 1));
@@ -57731,7 +57736,7 @@ Inferred class string: "${iconClasses}."`
57731
57736
  };
57732
57737
  }, []);
57733
57738
  const taskContext = useTaskContext();
57734
- const dvSelector = useDerivedVariable(variable, WsClient, taskContext, extras);
57739
+ const dvSelector = useDerivedVariable(variable, wsClient, taskContext, extras);
57735
57740
  const dvLoadable = Recoil_index_21(dvSelector);
57736
57741
  const [dvValue, setDvValue] = React.useState(dvLoadable.toPromise());
57737
57742
  React.useEffect(() => {
@@ -57739,7 +57744,7 @@ Inferred class string: "${iconClasses}."`
57739
57744
  setDvValue(dvLoadable.toPromise());
57740
57745
  }
57741
57746
  }, [dvLoadable]);
57742
- const fetchDerivedDataVariable2 = useFetchDerivedDataVariable(variable, taskContext, WsClient, dvValue);
57747
+ const fetchDerivedDataVariable2 = useFetchDerivedDataVariable(variable, taskContext, wsClient, dvValue);
57743
57748
  return fetchDerivedDataVariable2;
57744
57749
  }
57745
57750
  function useAnyVariable(variable) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darajs/core",
3
- "version": "1.8.4",
3
+ "version": "1.8.5",
4
4
  "description": "Dara Framework core",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -118,5 +118,5 @@
118
118
  "publishConfig": {
119
119
  "access": "public"
120
120
  },
121
- "gitHead": "66bffedb91adcdeef06b3722d3b57aa4730d1555"
121
+ "gitHead": "f4c1285e26248fd773de207552542e357fe66553"
122
122
  }