@plasmicapp/loader-react 1.0.153 → 1.0.156

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.
@@ -4,7 +4,7 @@ export { DataCtxReader, DataProvider, PageParamsProvider, PlasmicCanvasContext,
4
4
  import * as PlasmicQuery from '@plasmicapp/query';
5
5
  import { PlasmicQueryDataProvider, PlasmicPrepassContext } from '@plasmicapp/query';
6
6
  export { usePlasmicQueryData } from '@plasmicapp/query';
7
- import { getBundleSubset, Registry, PlasmicModulesFetcher } from '@plasmicapp/loader-core';
7
+ import { getBundleSubset, Registry, PlasmicModulesFetcher, PlasmicTracker } from '@plasmicapp/loader-core';
8
8
  import { getExternalIds, getActiveVariation } from '@plasmicapp/loader-splits';
9
9
  import React__default, { useState, useCallback, useEffect, useRef, useMemo, createElement, memo, useContext, createContext } from 'react';
10
10
  import ReactDOM from 'react-dom';
@@ -1160,6 +1160,11 @@ var ComponentLookup = /*#__PURE__*/function () {
1160
1160
 
1161
1161
  var _proto = ComponentLookup.prototype;
1162
1162
 
1163
+ _proto.getComponentMeta = function getComponentMeta(spec) {
1164
+ var compMeta = getFirstCompMeta(this.bundle.components, spec);
1165
+ return compMeta;
1166
+ };
1167
+
1163
1168
  _proto.getComponent = function getComponent(spec, opts) {
1164
1169
  if (opts === void 0) {
1165
1170
  opts = {};
@@ -1256,6 +1261,16 @@ function getPlasmicCookieValues() {
1256
1261
  function updatePlasmicCookieValue(key, value) {
1257
1262
  document.cookie = "plasmic:" + key + "=" + value;
1258
1263
  }
1264
+ function ensureVariationCookies(variation) {
1265
+ if (variation === void 0) {
1266
+ variation = {};
1267
+ }
1268
+
1269
+ Object.keys(variation).map(function (variationKey) {
1270
+ var sliceId = variation[variationKey];
1271
+ updatePlasmicCookieValue(variationKey, sliceId);
1272
+ });
1273
+ }
1259
1274
  var getGlobalVariantsFromSplits = function getGlobalVariantsFromSplits(splits, variation) {
1260
1275
  var globalVariants = [];
1261
1276
  Object.keys(variation).map(function (variationKey) {
@@ -1347,6 +1362,17 @@ function PlasmicRootProvider(props) {
1347
1362
  return loader.unsubscribePlasmicRoot(watcher);
1348
1363
  };
1349
1364
  }, [watcher, loader]);
1365
+ useEffect(function () {
1366
+ ensureVariationCookies(variation);
1367
+ loader.trackRender({
1368
+ renderCtx: {
1369
+ // We track the provider as a single entity
1370
+ rootComponentId: 'provider',
1371
+ teamIds: loader.getTeamIds()
1372
+ },
1373
+ variation: variation
1374
+ });
1375
+ }, [loader, variation]);
1350
1376
  var value = useMemo(function () {
1351
1377
  return {
1352
1378
  globalVariants: mergeGlobalVariantsSpec(globalVariants != null ? globalVariants : [], getGlobalVariantsFromSplits(splits, variation != null ? variation : {})),
@@ -1496,6 +1522,13 @@ var InternalPlasmicComponentLoader = /*#__PURE__*/function () {
1496
1522
  this.substitutedGlobalVariantHooks = {};
1497
1523
  this.registry = Registry.getInstance();
1498
1524
  this.fetcher = new PlasmicModulesFetcher(opts);
1525
+ this.tracker = new PlasmicTracker({
1526
+ projectIds: opts.projects.map(function (p) {
1527
+ return p.id;
1528
+ }),
1529
+ platform: opts.platform,
1530
+ preview: opts.preview
1531
+ });
1499
1532
  this.registerModules({
1500
1533
  react: React__default,
1501
1534
  'react-dom': ReactDOM,
@@ -1840,6 +1873,14 @@ var InternalPlasmicComponentLoader = /*#__PURE__*/function () {
1840
1873
 
1841
1874
  _proto.getActiveSplits = function getActiveSplits() {
1842
1875
  return this.bundle.activeSplits;
1876
+ };
1877
+
1878
+ _proto.trackConversion = function trackConversion(value) {
1879
+ if (value === void 0) {
1880
+ value = 0;
1881
+ }
1882
+
1883
+ this.tracker.trackConversion(value);
1843
1884
  } // @ts-ignore
1844
1885
  ;
1845
1886
 
@@ -1915,6 +1956,18 @@ var InternalPlasmicComponentLoader = /*#__PURE__*/function () {
1915
1956
  return getActiveVariation$1;
1916
1957
  }();
1917
1958
 
1959
+ _proto.getTeamIds = function getTeamIds() {
1960
+ return this.bundle.projects.map(function (p) {
1961
+ return p.teamId;
1962
+ }).filter(function (x) {
1963
+ return !!x;
1964
+ });
1965
+ };
1966
+
1967
+ _proto.trackRender = function trackRender(opts) {
1968
+ this.tracker.trackRender(opts);
1969
+ };
1970
+
1918
1971
  _proto.fetchAllData = /*#__PURE__*/function () {
1919
1972
  var _fetchAllData = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee8() {
1920
1973
  var bundle;
@@ -1927,13 +1980,14 @@ var InternalPlasmicComponentLoader = /*#__PURE__*/function () {
1927
1980
 
1928
1981
  case 2:
1929
1982
  bundle = _context8.sent;
1983
+ this.tracker.trackFetch();
1930
1984
  this.mergeBundle(bundle);
1931
1985
  this.roots.forEach(function (watcher) {
1932
1986
  return watcher.onDataFetched == null ? void 0 : watcher.onDataFetched();
1933
1987
  });
1934
1988
  return _context8.abrupt("return", bundle);
1935
1989
 
1936
- case 6:
1990
+ case 7:
1937
1991
  case "end":
1938
1992
  return _context8.stop();
1939
1993
  }
@@ -2291,6 +2345,14 @@ var PlasmicComponentLoader = /*#__PURE__*/function () {
2291
2345
  return this.__internal.getActiveSplits();
2292
2346
  };
2293
2347
 
2348
+ _proto2.trackConversion = function trackConversion(value) {
2349
+ if (value === void 0) {
2350
+ value = 0;
2351
+ }
2352
+
2353
+ this.__internal.trackConversion(value);
2354
+ };
2355
+
2294
2356
  _proto2.clearCache = function clearCache() {
2295
2357
  return this.__internal.clearCache();
2296
2358
  };
@@ -2369,13 +2431,35 @@ function PlasmicComponent(props) {
2369
2431
 
2370
2432
  var loader = rootContext.loader,
2371
2433
  globalContextsProps = rootContext.globalContextsProps,
2434
+ variation = rootContext.variation,
2372
2435
  translator = rootContext.translator;
2373
2436
  var Component = usePlasmicComponent({
2374
2437
  name: component,
2375
- projectId: projectId
2438
+ projectId: projectId,
2439
+ isCode: false
2376
2440
  }, {
2377
2441
  forceOriginal: forceOriginal
2378
2442
  });
2443
+ useEffect(function () {
2444
+ if (isRootLoader) {
2445
+ var meta = loader.getLookup().getComponentMeta({
2446
+ name: component,
2447
+ projectId: projectId
2448
+ });
2449
+
2450
+ if (meta) {
2451
+ loader.trackRender({
2452
+ renderCtx: {
2453
+ rootProjectId: meta.projectId,
2454
+ rootComponentId: meta.id,
2455
+ rootComponentName: component,
2456
+ teamIds: loader.getTeamIds()
2457
+ },
2458
+ variation: variation
2459
+ });
2460
+ }
2461
+ }
2462
+ }, [component, projectId, loader, variation]);
2379
2463
  var element = useMemo(function () {
2380
2464
  if (!Component) {
2381
2465
  return null;