@powerhousedao/connect 2.5.0-dev.13 → 2.5.0-dev.14

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.
Files changed (35) hide show
  1. package/dist/.env +1 -1
  2. package/dist/assets/{app-CfLgnxyV.js → app-hPryiyDI.js} +227 -58
  3. package/dist/assets/{app-CfLgnxyV.js.map → app-hPryiyDI.js.map} +1 -1
  4. package/dist/assets/{app-loader-Da3bAkvN.js → app-loader-DS5-Dfwa.js} +9 -8
  5. package/dist/assets/{app-loader-Da3bAkvN.js.map → app-loader-DS5-Dfwa.js.map} +1 -1
  6. package/dist/assets/{ccip-XyzcC2OO.js → ccip-DH547iaJ.js} +4 -4
  7. package/dist/assets/{ccip-XyzcC2OO.js.map → ccip-DH547iaJ.js.map} +1 -1
  8. package/dist/assets/{content-moRQPp_g.js → content-DlN34Bwh.js} +73 -72
  9. package/dist/assets/{content-moRQPp_g.js.map → content-DlN34Bwh.js.map} +1 -1
  10. package/dist/assets/{index-C5pmKsbl.js → index-6q7n6Ivh.js} +19 -12
  11. package/dist/assets/index-6q7n6Ivh.js.map +1 -0
  12. package/dist/assets/{index-BX6L7YIm.js → index-BJmNbekQ.js} +5 -5
  13. package/dist/assets/{index-BX6L7YIm.js.map → index-BJmNbekQ.js.map} +1 -1
  14. package/dist/assets/{index-CS-ArJoi.js → index-BUtFFErf.js} +4 -4
  15. package/dist/assets/{index-CS-ArJoi.js.map → index-BUtFFErf.js.map} +1 -1
  16. package/dist/assets/{index-47_dwZnB.js → index-CDh49cXw.js} +4 -4
  17. package/dist/assets/{index-47_dwZnB.js.map → index-CDh49cXw.js.map} +1 -1
  18. package/dist/assets/{index-DpU1evrL.js → index-CXBJ8Kyq.js} +4 -4
  19. package/dist/assets/{index-DpU1evrL.js.map → index-CXBJ8Kyq.js.map} +1 -1
  20. package/dist/assets/{main.DP5LHvly.js → main.CVpQ9ccT.js} +2 -2
  21. package/dist/assets/{main.DP5LHvly.js.map → main.CVpQ9ccT.js.map} +1 -1
  22. package/dist/assets/{nodefs-DPnN6Ar0.js → nodefs-DIvbXkeC.js} +4 -4
  23. package/dist/assets/{nodefs-DPnN6Ar0.js.map → nodefs-DIvbXkeC.js.map} +1 -1
  24. package/dist/assets/{opfs-ahp-CEfWDHTR.js → opfs-ahp-BsO_Wj5U.js} +4 -4
  25. package/dist/assets/{opfs-ahp-CEfWDHTR.js.map → opfs-ahp-BsO_Wj5U.js.map} +1 -1
  26. package/dist/assets/{reactor-analytics-CC_4d7Yq.js → reactor-analytics-B9_hqZG5.js} +21 -16
  27. package/dist/assets/reactor-analytics-B9_hqZG5.js.map +1 -0
  28. package/dist/assets/{router-CjiZKsCh.js → router-Be6-7U0G.js} +6 -6
  29. package/dist/assets/{router-CjiZKsCh.js.map → router-Be6-7U0G.js.map} +1 -1
  30. package/dist/index.html +2 -2
  31. package/dist/swEnv.js +1 -1
  32. package/dist/vite-envs.sh +3 -3
  33. package/package.json +10 -10
  34. package/dist/assets/index-C5pmKsbl.js.map +0 -1
  35. package/dist/assets/reactor-analytics-CC_4d7Yq.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { aP as BaseError, aQ as getUrl, aR as stringify, aS as decodeErrorResult, aT as isAddressEqual, aU as localBatchGatewayUrl, aV as localBatchGatewayRequest, aW as call, aX as concat, aY as encodeAbiParameters, aZ as HttpRequestError, a_ as isHex } from "./app-CfLgnxyV.js";
2
- import "./main.DP5LHvly.js";
1
+ import { aP as BaseError, aQ as getUrl, aR as stringify, aS as decodeErrorResult, aT as isAddressEqual, aU as localBatchGatewayUrl, aV as localBatchGatewayRequest, aW as call, aX as concat, aY as encodeAbiParameters, aZ as HttpRequestError, a_ as isHex } from "./app-hPryiyDI.js";
2
+ import "./main.CVpQ9ccT.js";
3
3
  import "react/jsx-runtime";
4
4
  import "react";
5
- import "./app-loader-Da3bAkvN.js";
5
+ import "./app-loader-DS5-Dfwa.js";
6
6
  import "react-dom";
7
7
  class OffchainLookupError extends BaseError {
8
8
  constructor({ callbackSelector, cause, data, extraData, sender, urls }) {
@@ -165,4 +165,4 @@ export {
165
165
  offchainLookupAbiItem,
166
166
  offchainLookupSignature
167
167
  };
168
- //# sourceMappingURL=ccip-XyzcC2OO.js.map
168
+ //# sourceMappingURL=ccip-DH547iaJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ccip-XyzcC2OO.js","sources":["../../../../node_modules/.pnpm/viem@2.30.1_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.28/node_modules/viem/_esm/errors/ccip.js","../../../../node_modules/.pnpm/viem@2.30.1_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.28/node_modules/viem/_esm/utils/ccip.js"],"sourcesContent":["import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class OffchainLookupError extends BaseError {\n constructor({ callbackSelector, cause, data, extraData, sender, urls, }) {\n super(cause.shortMessage ||\n 'An error occurred while fetching for an offchain result.', {\n cause,\n metaMessages: [\n ...(cause.metaMessages || []),\n cause.metaMessages?.length ? '' : [],\n 'Offchain Gateway Call:',\n urls && [\n ' Gateway URL(s):',\n ...urls.map((url) => ` ${getUrl(url)}`),\n ],\n ` Sender: ${sender}`,\n ` Data: ${data}`,\n ` Callback selector: ${callbackSelector}`,\n ` Extra data: ${extraData}`,\n ].flat(),\n name: 'OffchainLookupError',\n });\n }\n}\nexport class OffchainLookupResponseMalformedError extends BaseError {\n constructor({ result, url }) {\n super('Offchain gateway response is malformed. Response data must be a hex value.', {\n metaMessages: [\n `Gateway URL: ${getUrl(url)}`,\n `Response: ${stringify(result)}`,\n ],\n name: 'OffchainLookupResponseMalformedError',\n });\n }\n}\nexport class OffchainLookupSenderMismatchError extends BaseError {\n constructor({ sender, to }) {\n super('Reverted sender address does not match target contract address (`to`).', {\n metaMessages: [\n `Contract address: ${to}`,\n `OffchainLookup sender address: ${sender}`,\n ],\n name: 'OffchainLookupSenderMismatchError',\n });\n }\n}\n//# sourceMappingURL=ccip.js.map","import { call } from '../actions/public/call.js';\nimport { OffchainLookupError, OffchainLookupResponseMalformedError, OffchainLookupSenderMismatchError, } from '../errors/ccip.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { decodeErrorResult } from './abi/decodeErrorResult.js';\nimport { encodeAbiParameters } from './abi/encodeAbiParameters.js';\nimport { isAddressEqual } from './address/isAddressEqual.js';\nimport { concat } from './data/concat.js';\nimport { isHex } from './data/isHex.js';\nimport { localBatchGatewayRequest, localBatchGatewayUrl, } from './ens/localBatchGatewayRequest.js';\nimport { stringify } from './stringify.js';\nexport const offchainLookupSignature = '0x556f1830';\nexport const offchainLookupAbiItem = {\n name: 'OffchainLookup',\n type: 'error',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'urls',\n type: 'string[]',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n {\n name: 'callbackFunction',\n type: 'bytes4',\n },\n {\n name: 'extraData',\n type: 'bytes',\n },\n ],\n};\nexport async function offchainLookup(client, { blockNumber, blockTag, data, to, }) {\n const { args } = decodeErrorResult({\n data,\n abi: [offchainLookupAbiItem],\n });\n const [sender, urls, callData, callbackSelector, extraData] = args;\n const { ccipRead } = client;\n const ccipRequest_ = ccipRead && typeof ccipRead?.request === 'function'\n ? ccipRead.request\n : ccipRequest;\n try {\n if (!isAddressEqual(to, sender))\n throw new OffchainLookupSenderMismatchError({ sender, to });\n const result = urls.includes(localBatchGatewayUrl)\n ? await localBatchGatewayRequest({\n data: callData,\n ccipRequest: ccipRequest_,\n })\n : await ccipRequest_({ data: callData, sender, urls });\n const { data: data_ } = await call(client, {\n blockNumber,\n blockTag,\n data: concat([\n callbackSelector,\n encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [result, extraData]),\n ]),\n to,\n });\n return data_;\n }\n catch (err) {\n throw new OffchainLookupError({\n callbackSelector,\n cause: err,\n data,\n extraData,\n sender,\n urls,\n });\n }\n}\nexport async function ccipRequest({ data, sender, urls, }) {\n let error = new Error('An unknown error occurred.');\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n const method = url.includes('{data}') ? 'GET' : 'POST';\n const body = method === 'POST' ? { data, sender } : undefined;\n const headers = method === 'POST' ? { 'Content-Type': 'application/json' } : {};\n try {\n const response = await fetch(url.replace('{sender}', sender.toLowerCase()).replace('{data}', data), {\n body: JSON.stringify(body),\n headers,\n method,\n });\n let result;\n if (response.headers.get('Content-Type')?.startsWith('application/json')) {\n result = (await response.json()).data;\n }\n else {\n result = (await response.text());\n }\n if (!response.ok) {\n error = new HttpRequestError({\n body,\n details: result?.error\n ? stringify(result.error)\n : response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n continue;\n }\n if (!isHex(result)) {\n error = new OffchainLookupResponseMalformedError({\n result,\n url,\n });\n continue;\n }\n return result;\n }\n catch (err) {\n error = new HttpRequestError({\n body,\n details: err.message,\n url,\n });\n }\n }\n throw error;\n}\n//# sourceMappingURL=ccip.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"ccip-DH547iaJ.js","sources":["../../../../node_modules/.pnpm/viem@2.30.1_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.28/node_modules/viem/_esm/errors/ccip.js","../../../../node_modules/.pnpm/viem@2.30.1_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.28/node_modules/viem/_esm/utils/ccip.js"],"sourcesContent":["import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class OffchainLookupError extends BaseError {\n constructor({ callbackSelector, cause, data, extraData, sender, urls, }) {\n super(cause.shortMessage ||\n 'An error occurred while fetching for an offchain result.', {\n cause,\n metaMessages: [\n ...(cause.metaMessages || []),\n cause.metaMessages?.length ? '' : [],\n 'Offchain Gateway Call:',\n urls && [\n ' Gateway URL(s):',\n ...urls.map((url) => ` ${getUrl(url)}`),\n ],\n ` Sender: ${sender}`,\n ` Data: ${data}`,\n ` Callback selector: ${callbackSelector}`,\n ` Extra data: ${extraData}`,\n ].flat(),\n name: 'OffchainLookupError',\n });\n }\n}\nexport class OffchainLookupResponseMalformedError extends BaseError {\n constructor({ result, url }) {\n super('Offchain gateway response is malformed. Response data must be a hex value.', {\n metaMessages: [\n `Gateway URL: ${getUrl(url)}`,\n `Response: ${stringify(result)}`,\n ],\n name: 'OffchainLookupResponseMalformedError',\n });\n }\n}\nexport class OffchainLookupSenderMismatchError extends BaseError {\n constructor({ sender, to }) {\n super('Reverted sender address does not match target contract address (`to`).', {\n metaMessages: [\n `Contract address: ${to}`,\n `OffchainLookup sender address: ${sender}`,\n ],\n name: 'OffchainLookupSenderMismatchError',\n });\n }\n}\n//# sourceMappingURL=ccip.js.map","import { call } from '../actions/public/call.js';\nimport { OffchainLookupError, OffchainLookupResponseMalformedError, OffchainLookupSenderMismatchError, } from '../errors/ccip.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { decodeErrorResult } from './abi/decodeErrorResult.js';\nimport { encodeAbiParameters } from './abi/encodeAbiParameters.js';\nimport { isAddressEqual } from './address/isAddressEqual.js';\nimport { concat } from './data/concat.js';\nimport { isHex } from './data/isHex.js';\nimport { localBatchGatewayRequest, localBatchGatewayUrl, } from './ens/localBatchGatewayRequest.js';\nimport { stringify } from './stringify.js';\nexport const offchainLookupSignature = '0x556f1830';\nexport const offchainLookupAbiItem = {\n name: 'OffchainLookup',\n type: 'error',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'urls',\n type: 'string[]',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n {\n name: 'callbackFunction',\n type: 'bytes4',\n },\n {\n name: 'extraData',\n type: 'bytes',\n },\n ],\n};\nexport async function offchainLookup(client, { blockNumber, blockTag, data, to, }) {\n const { args } = decodeErrorResult({\n data,\n abi: [offchainLookupAbiItem],\n });\n const [sender, urls, callData, callbackSelector, extraData] = args;\n const { ccipRead } = client;\n const ccipRequest_ = ccipRead && typeof ccipRead?.request === 'function'\n ? ccipRead.request\n : ccipRequest;\n try {\n if (!isAddressEqual(to, sender))\n throw new OffchainLookupSenderMismatchError({ sender, to });\n const result = urls.includes(localBatchGatewayUrl)\n ? await localBatchGatewayRequest({\n data: callData,\n ccipRequest: ccipRequest_,\n })\n : await ccipRequest_({ data: callData, sender, urls });\n const { data: data_ } = await call(client, {\n blockNumber,\n blockTag,\n data: concat([\n callbackSelector,\n encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [result, extraData]),\n ]),\n to,\n });\n return data_;\n }\n catch (err) {\n throw new OffchainLookupError({\n callbackSelector,\n cause: err,\n data,\n extraData,\n sender,\n urls,\n });\n }\n}\nexport async function ccipRequest({ data, sender, urls, }) {\n let error = new Error('An unknown error occurred.');\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n const method = url.includes('{data}') ? 'GET' : 'POST';\n const body = method === 'POST' ? { data, sender } : undefined;\n const headers = method === 'POST' ? { 'Content-Type': 'application/json' } : {};\n try {\n const response = await fetch(url.replace('{sender}', sender.toLowerCase()).replace('{data}', data), {\n body: JSON.stringify(body),\n headers,\n method,\n });\n let result;\n if (response.headers.get('Content-Type')?.startsWith('application/json')) {\n result = (await response.json()).data;\n }\n else {\n result = (await response.text());\n }\n if (!response.ok) {\n error = new HttpRequestError({\n body,\n details: result?.error\n ? stringify(result.error)\n : response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n continue;\n }\n if (!isHex(result)) {\n error = new OffchainLookupResponseMalformedError({\n result,\n url,\n });\n continue;\n }\n return result;\n }\n catch (err) {\n error = new HttpRequestError({\n body,\n details: err.message,\n url,\n });\n }\n }\n throw error;\n}\n//# sourceMappingURL=ccip.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,11 +1,11 @@
1
1
  import { jsx, jsxs, Fragment as Fragment$1 } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import React__default, { useState, useCallback, useMemo, useEffect, Fragment, useRef, useLayoutEffect, memo as memo$1, createElement, useSyncExternalStore, Suspense } from "react";
4
- import { t as twMerge, B as Button, a$ as mergeClassNameProps, I as Icon, b0 as getDimensions, b1 as useDocumentDrives, h as useUiNodesContext, b2 as useDriveContext, b3 as FILE, H as ERROR, b4 as MISSING, G as CONFLICT, S as SUCCESS, b5 as SYNCING, b6 as INITIAL_SYNC, b7 as READ, b8 as nodeOptionsMap, b9 as defaultFileOptions, ba as ConnectDropdownMenu, bb as DELETE, bc as RENAME, bd as WRITE, be as DUPLICATE, bf as defaultFolderOptions, bg as useOnClickOutside, bh as useEventListener, bi as useCopyToClipboard, bj as Select, bk as Provider, bl as Root3, bm as Trigger, bn as Portal, bo as Content2, bp as UI_NODE, D as DRIVE, F as FILE$1, bq as validateInitialState, br as validateStateSchemaName, bs as validateModules, e as useDocumentDriveServer, k as useUnwrappedReactor, bt as useConnectDid, bu as useConnectCrypto, x as useTranslation, f as useModal, bv as useAtomValue, bw as themeAtom, bx as useUser, by as useUserPermissions$1, bz as useFileNodeDocument, bA as useGetDocumentModelModule, bB as exportFile, bC as addActionContext$1, bD as signOperation$1, bE as useHotkeys, bF as FOLDER, bG as DriveLayout, bH as DriveContextProvider, bI as SearchBar, V as useAnalyticsStore, bJ as useQueryClient, u as useQuery, bK as AnalyticsPath, bL as useAnalyticsEngine, bM as DateTime, bN as AnalyticsGranularity, bO as useGetEditor, bP as isSameDocument, w as useNavigate, A as useAsyncReactor, bQ as useFilteredDocumentModels, bR as useDriveEditor, K as useParams, y as useDocumentDrives$1 } from "./app-CfLgnxyV.js";
5
- import { ad as buildSignedOperation, an as generateId$1, ax as isFolderNode, aB as generateNodesCopy, aC as copyNode, aA as moveNode, az as updateNode, ay as deleteNode, as as generateAddNodeAction, at as isFileNode, aw as addFolder, bV as garbageCollect, bW as sortOperations, bX as undo, bY as redo, $ as logger, bZ as openUrl, b_ as useDocumentDispatch$1, ak as module, ag as connectConfig } from "./app-loader-Da3bAkvN.js";
6
- import { E as ENSAvatar, u as useSwitchboard, a as ErrorBoundary, t as toast } from "./router-CjiZKsCh.js";
4
+ import { t as twMerge, B as Button, a$ as mergeClassNameProps, I as Icon, b0 as getDimensions, b1 as useDocumentDrives, h as useUiNodesContext, b2 as useDriveContext, b3 as FILE, H as ERROR, b4 as MISSING, G as CONFLICT, S as SUCCESS, b5 as SYNCING, b6 as INITIAL_SYNC, b7 as READ, b8 as nodeOptionsMap, b9 as defaultFileOptions, ba as ConnectDropdownMenu, bb as DELETE, bc as RENAME, bd as WRITE, be as DUPLICATE, bf as defaultFolderOptions, bg as useOnClickOutside, bh as useEventListener, bi as useCopyToClipboard, bj as Select, bk as Provider, bl as Root3, bm as Trigger, bn as Portal, bo as Content2, bp as UI_NODE, D as DRIVE, F as FILE$1, bq as validateInitialState, br as validateStateSchemaName, bs as validateModules, e as useDocumentDriveServer, k as useUnwrappedReactor, bt as useConnectDid, bu as useConnectCrypto, x as useTranslation, f as useModal, bv as useAtomValue, bw as themeAtom, bx as useUser, by as useUserPermissions$1, bz as useFileNodeDocument, bA as useGetDocumentModelModule, bB as exportFile, bC as addActionContext$1, bD as signOperation$1, bE as useHotkeys, bF as FOLDER, bG as DriveLayout, bH as DriveContextProvider, bI as SearchBar, V as useAnalyticsStoreAsync, bJ as useQueryClient, u as useQuery, bK as AnalyticsPath, bL as useAnalyticsEngineAsync, bM as DateTime, bN as AnalyticsGranularity, bO as useGetEditor, bP as isSameDocument, w as useNavigate, A as useAsyncReactor, bQ as useFilteredDocumentModels, bR as useDriveEditor, K as useParams, y as useDocumentDrives$1 } from "./app-hPryiyDI.js";
5
+ import { ad as buildSignedOperation, an as generateId$1, ax as isFolderNode, aB as generateNodesCopy, aC as copyNode, aA as moveNode, az as updateNode, ay as deleteNode, as as generateAddNodeAction, at as isFileNode, aw as addFolder, bV as garbageCollect, bW as sortOperations, bX as undo, bY as redo, $ as logger, bZ as openUrl, b_ as useDocumentDispatch$1, ak as module, ag as connectConfig } from "./app-loader-DS5-Dfwa.js";
6
+ import { E as ENSAvatar, u as useSwitchboard, a as ErrorBoundary, t as toast } from "./router-Be6-7U0G.js";
7
7
  import { flushSync } from "react-dom";
8
- import "./main.DP5LHvly.js";
8
+ import "./main.CVpQ9ccT.js";
9
9
  const PaginationButton = ({ active = false, ...props }) => {
10
10
  const className = twMerge("h-8 min-w-8 border border-solid border-gray-300 bg-white px-3 py-1 text-xs text-gray-900 hover:bg-gray-100", !active && "border-0");
11
11
  return jsx(Button, { color: "light", size: "small", ...mergeClassNameProps(props, className), children: props.children });
@@ -4214,20 +4214,22 @@ const GenericDriveExplorer = {
4214
4214
  };
4215
4215
  function useAnalyticsQueryWrapper(options) {
4216
4216
  const { queryFn, ...queryOptions } = options;
4217
- const store = useAnalyticsStore();
4218
- const engine = useAnalyticsEngine();
4217
+ const { data: store } = useAnalyticsStoreAsync();
4218
+ const { data: engine } = useAnalyticsEngineAsync();
4219
+ const enabled = ("enabled" in queryOptions ? queryOptions.enabled : true) && !!store && !!engine;
4219
4220
  return useQuery({
4220
4221
  ...queryOptions,
4221
- queryFn: () => {
4222
+ enabled,
4223
+ queryFn: async () => {
4222
4224
  if (!store || !engine) {
4223
4225
  throw new Error("No analytics store available. Use within an AnalyticsProvider.");
4224
4226
  }
4225
- return queryFn({ store, engine });
4227
+ return await queryFn({ store, engine });
4226
4228
  }
4227
4229
  });
4228
4230
  }
4229
4231
  function useAnalyticsQuery(query, options) {
4230
- const store = useAnalyticsStore();
4232
+ const { data: store } = useAnalyticsStoreAsync();
4231
4233
  const { data: querySources } = useQuerySources(query);
4232
4234
  const queryClient = useQueryClient();
4233
4235
  const subscriptions = useRef([]);
@@ -4291,9 +4293,67 @@ const getBarSize = (value) => {
4291
4293
  return 3;
4292
4294
  return 4;
4293
4295
  };
4296
+ function addItemsDividers(items) {
4297
+ if (!items.length)
4298
+ return [];
4299
+ const result = [];
4300
+ items.forEach((item, index) => {
4301
+ result.push(item);
4302
+ if (index < items.length - 1) {
4303
+ const currentDate = new Date(item.startDate);
4304
+ const nextDate = new Date(items[index + 1].startDate);
4305
+ const currentHour = currentDate.getHours();
4306
+ const nextHour = nextDate.getHours();
4307
+ const currentDay = currentDate.toDateString();
4308
+ const nextDay = nextDate.toDateString();
4309
+ if (currentDay !== nextDay || currentDay === nextDay && Math.abs(nextHour - currentHour) > 1) {
4310
+ result.push({
4311
+ id: `divider-${item.id}-${items[index + 1].id}`,
4312
+ type: "divider",
4313
+ revision: 0
4314
+ });
4315
+ }
4316
+ }
4317
+ });
4318
+ return result;
4319
+ }
4320
+ function metricsToItems(metrics) {
4321
+ if (!metrics)
4322
+ return [];
4323
+ const items = metrics.sort((a, b) => {
4324
+ const aDate = new Date(a.start);
4325
+ const bDate = new Date(b.start);
4326
+ return aDate.getTime() - bDate.getTime();
4327
+ }).filter((result) => {
4328
+ return result.rows.every((row) => row.value > 0);
4329
+ }).map((result) => {
4330
+ const { additions, deletions } = result.rows.reduce((acc, row) => {
4331
+ if (row.dimensions.changes.path === "changes/add") {
4332
+ acc.additions += row.value;
4333
+ } else if (row.dimensions.changes.path === "changes/remove") {
4334
+ acc.deletions += row.value;
4335
+ }
4336
+ return acc;
4337
+ }, { additions: 0, deletions: 0 });
4338
+ const startDate = new Date(result.start);
4339
+ return {
4340
+ id: startDate.toISOString(),
4341
+ type: "bar",
4342
+ addSize: getBarSize(additions),
4343
+ delSize: getBarSize(deletions),
4344
+ additions,
4345
+ deletions,
4346
+ timestamp: startDate.toISOString(),
4347
+ startDate,
4348
+ endDate: new Date(result.end),
4349
+ revision: 0
4350
+ };
4351
+ });
4352
+ return addItemsDividers(items);
4353
+ }
4294
4354
  const useTimelineItems = (documentId, startTimestamp) => {
4295
4355
  const start = startTimestamp ? DateTime.fromISO(startTimestamp) : DateTime.now().startOf("day");
4296
- const { data: diffResult, isLoading } = useAnalyticsQuery({
4356
+ return useAnalyticsQuery({
4297
4357
  start,
4298
4358
  end: DateTime.now().endOf("day"),
4299
4359
  granularity: AnalyticsGranularity.Hourly,
@@ -4305,68 +4365,9 @@ const useTimelineItems = (documentId, startTimestamp) => {
4305
4365
  lod: {
4306
4366
  changes: 2
4307
4367
  }
4368
+ }, {
4369
+ select: metricsToItems
4308
4370
  });
4309
- const mappedResult = useMemo(() => {
4310
- if (!diffResult)
4311
- return [];
4312
- return diffResult.sort((a, b) => {
4313
- const aDate = new Date(a.start);
4314
- const bDate = new Date(b.start);
4315
- return aDate.getTime() - bDate.getTime();
4316
- }).filter((result) => {
4317
- return result.rows.every((row) => row.value > 0);
4318
- }).map((result) => {
4319
- const { additions, deletions } = result.rows.reduce((acc, row) => {
4320
- if (row.dimensions.changes.path === "changes/add") {
4321
- acc.additions += row.value;
4322
- } else if (row.dimensions.changes.path === "changes/remove") {
4323
- acc.deletions += row.value;
4324
- }
4325
- return acc;
4326
- }, { additions: 0, deletions: 0 });
4327
- const startDate = new Date(result.start);
4328
- return {
4329
- id: startDate.toISOString(),
4330
- type: "bar",
4331
- addSize: getBarSize(additions),
4332
- delSize: getBarSize(deletions),
4333
- additions,
4334
- deletions,
4335
- timestamp: startDate.toISOString(),
4336
- startDate,
4337
- endDate: new Date(result.end),
4338
- revision: 0
4339
- };
4340
- });
4341
- }, [diffResult]);
4342
- const resultWithDividers = useMemo(() => {
4343
- if (!mappedResult.length)
4344
- return [];
4345
- const result = [];
4346
- mappedResult.forEach((item, index) => {
4347
- result.push(item);
4348
- if (index < mappedResult.length - 1) {
4349
- const currentDate = new Date(item.startDate);
4350
- const nextDate = new Date(mappedResult[index + 1].startDate);
4351
- const currentHour = currentDate.getHours();
4352
- const nextHour = nextDate.getHours();
4353
- const currentDay = currentDate.toDateString();
4354
- const nextDay = nextDate.toDateString();
4355
- if (currentDay !== nextDay || currentDay === nextDay && Math.abs(nextHour - currentHour) > 1) {
4356
- result.push({
4357
- id: `divider-${item.id}-${mappedResult[index + 1].id}`,
4358
- type: "divider",
4359
- revision: 0
4360
- });
4361
- }
4362
- }
4363
- });
4364
- return result;
4365
- }, [mappedResult]);
4366
- return {
4367
- isLoading,
4368
- data: resultWithDividers
4369
- };
4370
4371
  };
4371
4372
  const getRevisionFromDate = (startDate, endDate, operations = []) => {
4372
4373
  if (!startDate || !endDate)
@@ -5111,4 +5112,4 @@ function Content() {
5111
5112
  export {
5112
5113
  Content as default
5113
5114
  };
5114
- //# sourceMappingURL=content-moRQPp_g.js.map
5115
+ //# sourceMappingURL=content-DlN34Bwh.js.map