Reload wallet assets after a physical delivery request.

The kashkool balance updates with the same assets refresh as the other user apps.
This commit is contained in:
2026-09-29 20:20:28 +03:30
parent 9cb0979606
commit da68f0a582
13 changed files with 2975 additions and 1773 deletions
+1 -4
View File
@@ -3,11 +3,8 @@
"1": "ref_utils",
"2": "index.vue",
"3": "productPrice.ts",
"4": "forceReconnect",
"5": "api/products.ts",
"6": "priceSocket.ts",
"7": "connect",
"8": "useProductsPageData.ts",
"9": "AuthPriceStream",
"10": "initPriceRealtimeChannel"
"9": "AuthPriceStream"
}
+1 -1
View File
@@ -1 +1 @@
{"0": "187959bf2bb0e291", "1": "67d1701e4c6cea74", "2": "8c1cce4bcfe8159d", "3": "58d20669e0f3fce4", "4": "0a1bda70e7876267", "5": "8d51306eb7d0daf2", "6": "39d9344d2c9d4ced", "7": "34e9bd652058d950", "8": "b58481dcf0930fd3", "9": "08b88f1fc8c91c56", "10": "e498d0b00a604ad7"}
{"0": "ffa7d5a5ae1f1cb0", "1": "67d1701e4c6cea74", "2": "517e2bd803b5bf98", "3": "18bc618fd6f328bb", "5": "8d51306eb7d0daf2", "6": "cd6583f8b1bf3877", "8": "004ed482633014da", "9": "08b88f1fc8c91c56"}
@@ -7,7 +7,7 @@
"5": "api/products.ts",
"6": "priceSocket.ts",
"7": "connect",
"8": "runFallbackPoll",
"8": "useProductsPageData.ts",
"9": "AuthPriceStream",
"10": "initPriceRealtimeChannel"
}
+30 -94
View File
@@ -1,17 +1,17 @@
# Graph Report - ghatreh_user (2026-09-27)
# Graph Report - ghatreh_user (2026-09-28)
## Corpus Check
- 598 files · ~506,859 words
- 598 files · ~506,942 words
- Verdict: corpus is large enough that graph structure adds value.
- Unclassified: 51 file(s) not represented in the graph (top: .less 25, .eot 6, .ttf 6)
## Summary
- 159 nodes · 338 edges · 11 communities (10 shown, 1 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 24 edges (avg confidence: 0.85)
- 196 nodes · 413 edges · 11 communities (10 shown, 1 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 27 edges (avg confidence: 0.85)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `bc64ff47`
- Built from commit: `1ac50951`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -24,21 +24,21 @@
- api/products.ts
- priceSocket.ts
- connect
- runFallbackPoll
- useProductsPageData.ts
- AuthPriceStream
- initPriceRealtimeChannel
## God Nodes (most connected - your core abstractions)
1. `useTvMonitorPage()` - 26 edges
1. `useTvMonitorPage()` - 28 edges
2. `connect()` - 15 edges
3. `getProductBaseBuyPrice()` - 10 edges
4. `touchStreamActivity()` - 9 edges
5. `bindStreamEvents()` - 9 edges
6. `forceReconnect()` - 9 edges
7. `runFallbackPoll()` - 8 edges
5. `runFallbackPoll()` - 9 edges
6. `bindStreamEvents()` - 9 edges
7. `forceReconnect()` - 9 edges
8. `maybeShowNetworkAlert()` - 8 edges
9. `disconnect()` - 8 edges
10. `handleStreamLost()` - 7 edges
10. `applyProductsList()` - 8 edges
## Surprising Connections (you probably didn't know these)
- `connect()` --calls--> `AuthPriceStream` [EXTRACTED]
@@ -50,7 +50,7 @@
- `connect()` --calls--> `touchStreamActivity()` [EXTRACTED]
src/utils/priceSocket.ts → src/utils/priceSocket.ts _Bridges community 1 → community 7_
- `connect()` --calls--> `stopFallbackPolling()` [EXTRACTED]
src/utils/priceSocket.ts → src/utils/priceSocket.ts _Bridges community 8 → community 7_
src/utils/priceSocket.ts → src/utils/priceSocket.ts _Bridges community 6 → community 7_
## Import Cycles
- None detected.
@@ -59,15 +59,15 @@
### Community 0 - "useTvMonitorPage"
Cohesion: 0.09
Nodes (32): ref_api, ref_assets, ref_moment, ref_moment_jalaali, ref_vue, ref_vueuse_core, bankCoinRank(), floorTvToman() (+24 more)
Nodes (33): ref_api, ref_assets, ref_moment, ref_moment_jalaali, ref_vueuse_core, bankCoinRank(), floorTvToman(), formatTvPrice() (+25 more)
### Community 1 - "ref_utils"
Cohesion: 0.23
Nodes (15): ref_composables, ref_store, ref_utils, applyAppNotificationFromStream(), applyLastFromStream(), applySettingsFromStream(), applyUnreadCountFromStreamPayload(), bindStreamEvents() (+7 more)
### Community 2 - "index.vue"
Cohesion: 0.21
Nodes (14): ref_components, coinColumns, extraTickerLoop, loopNews(), loopTicker(), marqueeCopies(), newsDuration(), newsTickerDuration (+6 more)
Cohesion: 0.19
Nodes (15): ref_components, ref_vue, coinColumns, extraTickerLoop, loopNews(), loopTicker(), marqueeCopies(), newsDuration() (+7 more)
### Community 3 - "productPrice.ts"
Cohesion: 0.19
@@ -82,102 +82,38 @@ Cohesion: 0.15
Nodes (5): ref_models, TvServerTime, CountPInventory, PInventory, Product
### Community 6 - "priceSocket.ts"
Cohesion: 0.22
Nodes (4): ref_ant_design_vue, getPriceSourceStaleMs(), isMobileDevice(), isRealPriceOutage()
Cohesion: 0.16
Nodes (12): ref_ant_design_vue, ref_views, clearFallbackPollTimer(), clearPriceNetworkAlert(), getPriceSourceStaleMs(), isMobileDevice(), isRealPriceOutage(), onTvBoard() (+4 more)
### Community 7 - "connect"
Cohesion: 0.36
Nodes (10): clearConnectingLifecycle(), clearReconnectTimer(), connect(), disconnect(), disconnectSourceOnly(), handleStreamLost(), markConnectingLifecycle(), scheduleReconnect() (+2 more)
### Community 8 - "runFallbackPoll"
Cohesion: 0.38
Nodes (7): ref_views, clearFallbackPollTimer(), clearPriceNetworkAlert(), runFallbackPoll(), scheduleFallbackPoll(), startFallbackPolling(), stopFallbackPolling()
### Community 8 - "useProductsPageData.ts"
Cohesion: 0.12
Nodes (31): applyProductsList(), applyProductsListFromSocket(), applySocketProductList(), changeProductsTab(), flagOff(), flagOn(), initialized, initProductsPageData() (+23 more)
### Community 10 - "initPriceRealtimeChannel"
Cohesion: 0.60
Nodes (5): initPriceRealtimeChannel(), isPriceWebSocketEnabled(), isTruthySetting(), resolveStreamPath(), resolveStreamUrl()
## Knowledge Gaps
- **7 isolated node(s):** `TvServerTime`, `{ theme, themeVars, toggleTheme }`, `{
rootEl,
brandName,
brandLogo,
nowLabel,
dateLabel,
parsianCoins,
bankCoins,
hasCoinBoard,
hasBoardContent,
tickerProducts,
tickerTitle,
extraTickerProducts,
extraTickerTitle,
tvNewsItems,
newsTickerTitle,
statusBanner,
showMainQuote,
mainQuoteReady,
mainQuoteReady,
liveBuy,
liveSell,
isLive,
isFullscreen,
cursorHidden,
loading,
productWeightLabel,
tickerItemLabel,
isProductTvInactive,
productBuyLabel,
productSellLabel,
liveQuoteLabel,
toggleFullscreen,
}`, `{ setColListRef, pauseColAuto, resumeColAuto }`, `CountPInventory` (+2 more)
These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 29 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
- **13 isolated node(s):** `initialized`, `productsActiveKey`, `productsTypeItems`, `productsFirstItems`, `productsItems` (+8 more)
These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 37 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
- **1 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `AuthPriceStream` connect `AuthPriceStream` to `priceSocket.ts`, `connect`?**
_High betweenness centrality (0.043) - this node is a cross-community bridge._
- **Why does `runFallbackPoll()` connect `runFallbackPoll` to `ref_utils`, `forceReconnect`, `priceSocket.ts`?**
_High betweenness centrality (0.020) - this node is a cross-community bridge._
_High betweenness centrality (0.035) - this node is a cross-community bridge._
- **Why does `runFallbackPoll()` connect `priceSocket.ts` to `ref_utils`, `forceReconnect`?**
_High betweenness centrality (0.019) - this node is a cross-community bridge._
- **Are the 13 inferred relationships involving `useTvMonitorPage()` (e.g. with `isBankCoin()` and `isGoldBar()`) actually correct?**
_`useTvMonitorPage()` has 13 INFERRED edges - model-reasoned connections that need verification._
- **What connects `TvServerTime`, `{ theme, themeVars, toggleTheme }`, `{
rootEl,
brandName,
brandLogo,
nowLabel,
dateLabel,
parsianCoins,
bankCoins,
hasCoinBoard,
hasBoardContent,
tickerProducts,
tickerTitle,
extraTickerProducts,
extraTickerTitle,
tvNewsItems,
newsTickerTitle,
statusBanner,
showMainQuote,
mainQuoteReady,
mainQuoteReady,
liveBuy,
liveSell,
isLive,
isFullscreen,
cursorHidden,
loading,
productWeightLabel,
tickerItemLabel,
isProductTvInactive,
productBuyLabel,
productSellLabel,
liveQuoteLabel,
toggleFullscreen,
}` to the rest of the system?**
_7 weakly-connected nodes found - possible documentation gaps or missing edges._
- **What connects `initialized`, `productsActiveKey`, `productsTypeItems` to the rest of the system?**
_13 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `useTvMonitorPage` be split into smaller, more focused modules?**
_Cohesion score 0.09365079365079365 - nodes in this community are weakly interconnected._
_Cohesion score 0.09309309309309309 - nodes in this community are weakly interconnected._
- **Should `useProductsPageData.ts` be split into smaller, more focused modules?**
_Cohesion score 0.11931818181818182 - nodes in this community are weakly interconnected._
File diff suppressed because it is too large Load Diff
+155 -155
View File
@@ -204,14 +204,14 @@
"semantic_hash": ""
},
"src/api/wallet.ts": {
"mtime": 1790488930.0248902,
"seen": 1790532739.4895825,
"mtime": 1790581289.7798402,
"seen": 1790592151.6513388,
"ast_hash": "78c93a3a9055ceefc7b0a2c6883d4341",
"semantic_hash": ""
},
"src/app/authBoot.ts": {
"mtime": 1790488930.010941,
"seen": 1790532739.4895833,
"mtime": 1790581289.7716439,
"seen": 1790592151.6513402,
"ast_hash": "5143360a44d1a3675e352bd13580133b",
"semantic_hash": ""
},
@@ -222,8 +222,8 @@
"semantic_hash": ""
},
"src/app/createApp.ts": {
"mtime": 1790488929.9939096,
"seen": 1790532739.4895852,
"mtime": 1790581289.7476532,
"seen": 1790592151.6513422,
"ast_hash": "2170b02775f908ea986af21e3ead814e",
"semantic_hash": ""
},
@@ -1578,8 +1578,8 @@
"semantic_hash": ""
},
"src/components/BasicPacks/BasicButton.vue": {
"mtime": 1790488930.0166593,
"seen": 1790532739.48975,
"mtime": 1790581289.7722647,
"seen": 1790592151.6515193,
"ast_hash": "c46f62acd13fb0ca2e4d055910fa4969",
"semantic_hash": ""
},
@@ -1728,8 +1728,8 @@
"semantic_hash": ""
},
"src/components/SupportMessengerBrandIcon.vue": {
"mtime": 1790488929.9816308,
"seen": 1790532739.4897692,
"mtime": 1790581289.7035408,
"seen": 1790592151.65154,
"ast_hash": "6b0d86e46c3df17689b545171b89b784",
"semantic_hash": ""
},
@@ -1818,8 +1818,8 @@
"semantic_hash": ""
},
"src/composables/useWalletAssets.ts": {
"mtime": 1790488929.9856076,
"seen": 1790532739.4897802,
"mtime": 1790581289.7169514,
"seen": 1790592151.651552,
"ast_hash": "80ec09208dfe3ded4e7e34c15db05882",
"semantic_hash": ""
},
@@ -1872,20 +1872,20 @@
"semantic_hash": ""
},
"src/layouts/AppLayoutShell.vue": {
"mtime": 1790488930.0200727,
"seen": 1790532739.4897892,
"mtime": 1790581289.775759,
"seen": 1790592151.6515596,
"ast_hash": "7edd95777060c51491d915efbe82ee0a",
"semantic_hash": ""
},
"src/layouts/components/DesktopPageFrame.vue": {
"mtime": 1790488930.0187147,
"seen": 1790532739.48979,
"mtime": 1790581289.772935,
"seen": 1790592151.6515605,
"ast_hash": "9435d3eb35c7590f51e7c7460770212c",
"semantic_hash": ""
},
"src/layouts/components/DesktopPageTopbar.vue": {
"mtime": 1790488929.988801,
"seen": 1790532739.4897904,
"mtime": 1790581289.7320335,
"seen": 1790592151.6515613,
"ast_hash": "e104470a0d3cbfa151f83223550e406d",
"semantic_hash": ""
},
@@ -1896,14 +1896,14 @@
"semantic_hash": ""
},
"src/layouts/components/ResponsiveViewPair.vue": {
"mtime": 1790488930.0249462,
"seen": 1790532739.489792,
"mtime": 1790581289.780348,
"seen": 1790592151.6515627,
"ast_hash": "c92fdcfe9260844a5ee46c58ef08b644",
"semantic_hash": ""
},
"src/layouts/composables/useAppLayout.ts": {
"mtime": 1790488930.0074983,
"seen": 1790532739.4897928,
"mtime": 1790581289.7644093,
"seen": 1790592151.6515634,
"ast_hash": "16578294b760d8b7230c7db348bb8678",
"semantic_hash": ""
},
@@ -1920,32 +1920,32 @@
"semantic_hash": ""
},
"src/layouts/composables/useResponsiveLayout.ts": {
"mtime": 1790488930.0211453,
"seen": 1790532739.4897945,
"mtime": 1790581289.7767413,
"seen": 1790592151.651566,
"ast_hash": "a2d706cfc025a4ad30d17b1a1b9753cc",
"semantic_hash": ""
},
"src/layouts/config/navigation.ts": {
"mtime": 1790488930.0011525,
"seen": 1790532739.4897954,
"mtime": 1790581289.7630057,
"seen": 1790592151.6515667,
"ast_hash": "545dee96d9a4b8a43cb8c5275ea6b715",
"semantic_hash": ""
},
"src/layouts/constants.ts": {
"mtime": 1790488930.0248137,
"seen": 1790532739.4897962,
"mtime": 1790581289.7804513,
"seen": 1790592151.6515675,
"ast_hash": "fc26385df5a8777e06af9c045c0d1bb3",
"semantic_hash": ""
},
"src/layouts/desktop/DesktopAppLayout.vue": {
"mtime": 1790488929.9874814,
"seen": 1790532739.4897969,
"mtime": 1790581289.7193491,
"seen": 1790592151.6515682,
"ast_hash": "0761a7b05d06ed2eeee10ac8589ac7e7",
"semantic_hash": ""
},
"src/layouts/desktop/DesktopNavItem.vue": {
"mtime": 1790488930.0076032,
"seen": 1790532739.4897974,
"mtime": 1790581289.7648094,
"seen": 1790592151.6515691,
"ast_hash": "7081bfee87412acc4e72064ec84ad573",
"semantic_hash": ""
},
@@ -1962,8 +1962,8 @@
"semantic_hash": ""
},
"src/layouts/mobile/MobileBottomNav.vue": {
"mtime": 1790488929.992406,
"seen": 1790532739.4897995,
"mtime": 1790581289.7444942,
"seen": 1790592151.6515715,
"ast_hash": "5d5f76f8189548a41cdb3208ad5bb513",
"semantic_hash": ""
},
@@ -1974,8 +1974,8 @@
"semantic_hash": ""
},
"src/layouts/types.ts": {
"mtime": 1790488930.0056584,
"seen": 1790532739.489801,
"mtime": 1790581289.756836,
"seen": 1790592151.651573,
"ast_hash": "517dba1e664ab5b9ee856e77c4325b3b",
"semantic_hash": ""
},
@@ -2106,8 +2106,8 @@
"semantic_hash": ""
},
"src/models/walletAssets.ts": {
"mtime": 1790488929.979231,
"seen": 1790532739.4898183,
"mtime": 1790581289.7039738,
"seen": 1790592151.6515915,
"ast_hash": "49c824cc0b624dc38f934edb019f712f",
"semantic_hash": ""
},
@@ -2142,8 +2142,8 @@
"semantic_hash": ""
},
"src/modules/version/VersionUpdateModal.vue": {
"mtime": 1790488929.9872174,
"seen": 1790532739.489824,
"mtime": 1790581289.7192545,
"seen": 1790592151.651596,
"ast_hash": "1530423bd93ce29354df7c5732a4d9ee",
"semantic_hash": ""
},
@@ -2154,8 +2154,8 @@
"semantic_hash": ""
},
"src/store/cartStore.ts": {
"mtime": 1790488930.007568,
"seen": 1790532739.4898252,
"mtime": 1790581289.765109,
"seen": 1790592151.6515977,
"ast_hash": "92732c083a228a7245f248418c256ea4",
"semantic_hash": ""
},
@@ -2286,9 +2286,9 @@
"semantic_hash": ""
},
"src/utils/priceSocket.ts": {
"mtime": 1790534970.7322235,
"seen": 1790535468.5304115,
"ast_hash": "7a31f88528bdc6aa7434368d8d945d96",
"mtime": 1790588834.8620162,
"seen": 1790592151.6516151,
"ast_hash": "f8e8f941dffbf5350f360f2ae57a86d8",
"semantic_hash": ""
},
"src/utils/priceSocketState.ts": {
@@ -2340,8 +2340,8 @@
"semantic_hash": ""
},
"src/utils/productStreamBridge.ts": {
"mtime": 1790488930.0249293,
"seen": 1790532739.489846,
"mtime": 1790581289.7799215,
"seen": 1790592151.6516228,
"ast_hash": "689a3db557fa4677e227087f229f1ee6",
"semantic_hash": ""
},
@@ -2418,8 +2418,8 @@
"semantic_hash": ""
},
"src/utils/useDraggableFloatingButton.ts": {
"mtime": 1790488930.0008807,
"seen": 1790532739.4898548,
"mtime": 1790581289.757719,
"seen": 1790592151.6516328,
"ast_hash": "e568fb90a5b30b8697d8483f57427c0e",
"semantic_hash": ""
},
@@ -2478,14 +2478,14 @@
"semantic_hash": ""
},
"src/views/base/about/components/AboutSectionsContent.vue": {
"mtime": 1790488930.0061884,
"seen": 1790532739.489863,
"mtime": 1790581289.7652397,
"seen": 1790592151.6516407,
"ast_hash": "fd892a2bfd6d3b1c4a6acf7234422689",
"semantic_hash": ""
},
"src/views/base/about/components/AboutSupportActions.vue": {
"mtime": 1790488929.9983454,
"seen": 1790532739.4898639,
"mtime": 1790581289.755555,
"seen": 1790592151.6516414,
"ast_hash": "373d0a9c5d87ad62946879b759426020",
"semantic_hash": ""
},
@@ -2502,8 +2502,8 @@
"semantic_hash": ""
},
"src/views/base/about/index.vue": {
"mtime": 1790488929.990093,
"seen": 1790532739.4898672,
"mtime": 1790581289.735072,
"seen": 1790592151.6516438,
"ast_hash": "a3e23a3cf00336d85280ee32af176780",
"semantic_hash": ""
},
@@ -2568,26 +2568,26 @@
"semantic_hash": ""
},
"src/views/base/cart/composables/useCartPage.ts": {
"mtime": 1790488930.022246,
"seen": 1790532739.4898744,
"mtime": 1790581289.7767942,
"seen": 1790592151.651652,
"ast_hash": "c88965e44509d5a2465a78072a9120fe",
"semantic_hash": ""
},
"src/views/base/cart/desktop/DesktopCartView.vue": {
"mtime": 1790488930.0007527,
"seen": 1790532739.4898753,
"mtime": 1790581289.7597075,
"seen": 1790592151.6516528,
"ast_hash": "8bb39140d9da0493c1d5e4bfa8dfad32",
"semantic_hash": ""
},
"src/views/base/cart/index.vue": {
"mtime": 1790488929.9873154,
"seen": 1790532739.4898758,
"mtime": 1790581289.7191577,
"seen": 1790592151.6516535,
"ast_hash": "2af9e4fb3c242abfed4812bc22a1bf34",
"semantic_hash": ""
},
"src/views/base/cart/mobile/MobileCartView.vue": {
"mtime": 1790488929.9890091,
"seen": 1790532739.4898765,
"mtime": 1790581289.7343495,
"seen": 1790592151.6516542,
"ast_hash": "3cbfb0474bfdf2847cc4ad51bc4cfa8e",
"semantic_hash": ""
},
@@ -2604,50 +2604,50 @@
"semantic_hash": ""
},
"src/views/base/earnMoney/composables/useEarnMoneyPage.ts": {
"mtime": 1790488929.9950302,
"seen": 1790532739.4898782,
"mtime": 1790581289.7502456,
"seen": 1790592151.6516564,
"ast_hash": "43e942d8725ae3d6fc773670a26db39c",
"semantic_hash": ""
},
"src/views/base/earnMoney/desktop/DesktopEarnMoneyView.vue": {
"mtime": 1790488930.0255585,
"seen": 1790532739.4898791,
"mtime": 1790581289.7792299,
"seen": 1790592151.651657,
"ast_hash": "3bf36eaa1a0038845436558b2c230ea4",
"semantic_hash": ""
},
"src/views/base/earnMoney/index.vue": {
"mtime": 1790488930.018706,
"seen": 1790532739.4898798,
"mtime": 1790581289.7743354,
"seen": 1790592151.6516583,
"ast_hash": "da19bfb8ad6f304d11af40f9252e4fcf",
"semantic_hash": ""
},
"src/views/base/earnMoney/mobile/MobileEarnMoneyView.vue": {
"mtime": 1790488929.9780529,
"seen": 1790532739.4898803,
"mtime": 1790581289.7039165,
"seen": 1790592151.651659,
"ast_hash": "31d5d12a394aad5de1d66f88b6392313",
"semantic_hash": ""
},
"src/views/base/fund/components/Item.vue": {
"mtime": 1790488929.9873588,
"seen": 1790532739.489881,
"mtime": 1790581289.7175026,
"seen": 1790592151.6516597,
"ast_hash": "7b771e46def53e5a67625f1e72ee6e84",
"semantic_hash": ""
},
"src/views/base/fund/composables/useFundPage.ts": {
"mtime": 1790488930.0009263,
"seen": 1790532739.4898818,
"mtime": 1790581289.7640991,
"seen": 1790592151.6516604,
"ast_hash": "f5b09c131de6f2b38f79a4075bd4fd30",
"semantic_hash": ""
},
"src/views/base/fund/desktop/DesktopFundView.vue": {
"mtime": 1790488929.9889839,
"seen": 1790532739.4898825,
"mtime": 1790581289.7320585,
"seen": 1790592151.6516614,
"ast_hash": "ef7497d1e0fe0f4edc23f652cf7bf982",
"semantic_hash": ""
},
"src/views/base/fund/index.vue": {
"mtime": 1790488929.9881291,
"seen": 1790532739.4898832,
"mtime": 1790581289.7203767,
"seen": 1790592151.651662,
"ast_hash": "dbe505f7de335697d520a5cb2b90e5e7",
"semantic_hash": ""
},
@@ -2664,32 +2664,32 @@
"semantic_hash": ""
},
"src/views/base/fund/info/composables/useFundInfoPage.ts": {
"mtime": 1790488930.0006797,
"seen": 1790532739.4898849,
"mtime": 1790581289.7566793,
"seen": 1790592151.6516645,
"ast_hash": "aeb2ce91efedaa7b02b24eac5a3e6246",
"semantic_hash": ""
},
"src/views/base/fund/info/desktop/DesktopFundInfoView.vue": {
"mtime": 1790488930.00091,
"seen": 1790532739.4898858,
"mtime": 1790581289.7581055,
"seen": 1790592151.6516652,
"ast_hash": "7043b3599bc2954f5e1f1dfe465835ef",
"semantic_hash": ""
},
"src/views/base/fund/info/index.vue": {
"mtime": 1790488929.9946215,
"seen": 1790532739.4898863,
"mtime": 1790581289.7498908,
"seen": 1790592151.651666,
"ast_hash": "cd54caa6e61b16493547e7cb031ac2dd",
"semantic_hash": ""
},
"src/views/base/fund/info/mobile/MobileFundInfoView.vue": {
"mtime": 1790488930.010924,
"seen": 1790532739.489887,
"mtime": 1790581289.7658176,
"seen": 1790592151.6516666,
"ast_hash": "63333279f3765972b66789ee439ddfca",
"semantic_hash": ""
},
"src/views/base/fund/mobile/MobileFundView.vue": {
"mtime": 1790488929.9872084,
"seen": 1790532739.4898875,
"mtime": 1790581289.718552,
"seen": 1790592151.6516676,
"ast_hash": "1fb480e32178b7cba27e275ab34221ec",
"semantic_hash": ""
},
@@ -2700,32 +2700,32 @@
"semantic_hash": ""
},
"src/views/base/giftCard/components/GiftCardForm.vue": {
"mtime": 1790488930.0141487,
"seen": 1790532739.489889,
"mtime": 1790581289.772232,
"seen": 1790592151.6516695,
"ast_hash": "8f9f270377a5e40094934b0a5283d9ca",
"semantic_hash": ""
},
"src/views/base/giftCard/composables/useGiftCardPage.ts": {
"mtime": 1790488929.994659,
"seen": 1790532739.48989,
"mtime": 1790581289.7498488,
"seen": 1790592151.65167,
"ast_hash": "acf910b3e2381af7887662b40fb5f2f2",
"semantic_hash": ""
},
"src/views/base/giftCard/desktop/DesktopGiftCardView.vue": {
"mtime": 1790488929.9817097,
"seen": 1790532739.4898913,
"mtime": 1790581289.7043967,
"seen": 1790592151.6516707,
"ast_hash": "8e7aef94f550b31ab83f57257d33ca64",
"semantic_hash": ""
},
"src/views/base/giftCard/index.vue": {
"mtime": 1790488930.0062797,
"seen": 1790532739.4898927,
"mtime": 1790581289.7638223,
"seen": 1790592151.6516716,
"ast_hash": "c31c5825812c7f8bd641d3fcf3fec4f7",
"semantic_hash": ""
},
"src/views/base/giftCard/mobile/MobileGiftCardView.vue": {
"mtime": 1790488929.9984052,
"seen": 1790532739.4898937,
"mtime": 1790581289.753045,
"seen": 1790592151.6516724,
"ast_hash": "c598fb854b50d209346259c6e1eace01",
"semantic_hash": ""
},
@@ -2754,8 +2754,8 @@
"semantic_hash": ""
},
"src/views/base/home/components/HomeSkeleton.vue": {
"mtime": 1790488929.9982529,
"seen": 1790532739.4898992,
"mtime": 1790581289.7506878,
"seen": 1790592151.6516764,
"ast_hash": "e7e81d45943658b86dfcab3d948f0b36",
"semantic_hash": ""
},
@@ -2946,8 +2946,8 @@
"semantic_hash": ""
},
"src/views/base/home/indexgolak.vue": {
"mtime": 1790488930.024869,
"seen": 1790532739.4899242,
"mtime": 1790581289.7769225,
"seen": 1790592151.651702,
"ast_hash": "e7c91c9c4496b64f4b5cd37d2e424be0",
"semantic_hash": ""
},
@@ -2970,8 +2970,8 @@
"semantic_hash": ""
},
"src/views/base/index.vue": {
"mtime": 1790488930.0079956,
"seen": 1790532739.4899266,
"mtime": 1790581289.7656732,
"seen": 1790592151.6517053,
"ast_hash": "5dbef116be09aef0adb7c2cdea432ea8",
"semantic_hash": ""
},
@@ -3036,8 +3036,8 @@
"semantic_hash": ""
},
"src/views/base/physicalReceive/desktop/DesktopPhysicalReceiveListView.vue": {
"mtime": 1790488930.0201166,
"seen": 1790532739.4899378,
"mtime": 1790581289.7742436,
"seen": 1790592151.6517146,
"ast_hash": "c5d5ced9f804bd57dc0535a4d4de8914",
"semantic_hash": ""
},
@@ -3150,9 +3150,9 @@
"semantic_hash": ""
},
"src/views/base/products/composables/useProductsPageData.ts": {
"mtime": 1789894238.1755702,
"seen": 1790532739.4899507,
"ast_hash": "3d78585650014c2fa16cbe7ccbfbe8f4",
"mtime": 1790588828.5575576,
"seen": 1790592151.6517296,
"ast_hash": "980cf0bd33ba2f6de986ee968ece8bc8",
"semantic_hash": ""
},
"src/views/base/products/index.vue": {
@@ -3168,8 +3168,8 @@
"semantic_hash": ""
},
"src/views/base/products/product/[id].vue": {
"mtime": 1790488929.9864128,
"seen": 1790532739.4899528,
"mtime": 1790581289.7178955,
"seen": 1790592151.6517322,
"ast_hash": "4d5dbffa7f108e296ff6872f6d97f888",
"semantic_hash": ""
},
@@ -3222,38 +3222,38 @@
"semantic_hash": ""
},
"src/views/base/rules/components/RulesContentPanel.vue": {
"mtime": 1790488930.0003037,
"seen": 1790532739.489959,
"mtime": 1790581289.756601,
"seen": 1790592151.6517394,
"ast_hash": "0397b2d938550301e1a371b02399accc",
"semantic_hash": ""
},
"src/views/base/rules/components/RulesSupportActions.vue": {
"mtime": 1790488929.9796658,
"seen": 1790532739.4899604,
"mtime": 1790581289.7043483,
"seen": 1790592151.65174,
"ast_hash": "dfcb04410887030a4100a500a22d4f5e",
"semantic_hash": ""
},
"src/views/base/rules/composables/useRulesPage.ts": {
"mtime": 1790488929.9868293,
"seen": 1790532739.4899614,
"mtime": 1790581289.7178285,
"seen": 1790592151.651741,
"ast_hash": "67e9a8ea5f5c75382d82d90d71e41b81",
"semantic_hash": ""
},
"src/views/base/rules/desktop/DesktopRulesView.vue": {
"mtime": 1790488929.9981706,
"seen": 1790532739.4899626,
"mtime": 1790581289.753291,
"seen": 1790592151.6517417,
"ast_hash": "eac93a3ad3870f9cb71f538a60912f95",
"semantic_hash": ""
},
"src/views/base/rules/index.vue": {
"mtime": 1790488929.9855256,
"seen": 1790532739.4899635,
"mtime": 1790581289.7107584,
"seen": 1790592151.6517422,
"ast_hash": "6c03a46bb3bff411c5098f55d34d94e5",
"semantic_hash": ""
},
"src/views/base/rules/mobile/MobileRulesView.vue": {
"mtime": 1790488929.9905279,
"seen": 1790532739.4899645,
"mtime": 1790581289.7456188,
"seen": 1790592151.651743,
"ast_hash": "8379fb3f36a470b2692a8ef5be8f70a8",
"semantic_hash": ""
},
@@ -3264,14 +3264,14 @@
"semantic_hash": ""
},
"src/views/base/rules/rulesContent.ts": {
"mtime": 1790488929.9874346,
"seen": 1790532739.4899666,
"mtime": 1790581289.7184877,
"seen": 1790592151.6517446,
"ast_hash": "e4eedce0363cf670da9865d26e9a96ab",
"semantic_hash": ""
},
"src/views/base/transactions/components/Item.vue": {
"mtime": 1790488930.0220048,
"seen": 1790532739.4899676,
"mtime": 1790581289.7771592,
"seen": 1790592151.6517453,
"ast_hash": "54ac7d17ec562d7dbe43497131ddddb0",
"semantic_hash": ""
},
@@ -3282,26 +3282,26 @@
"semantic_hash": ""
},
"src/views/base/transactions/composables/useTransactionsPage.ts": {
"mtime": 1790488930.0001752,
"seen": 1790532739.48997,
"mtime": 1790581289.7564578,
"seen": 1790592151.6517467,
"ast_hash": "c3f311baff2920528772a3fc72c5492c",
"semantic_hash": ""
},
"src/views/base/transactions/desktop/DesktopDefaultTransactionsView.vue": {
"mtime": 1790488929.9901419,
"seen": 1790532739.4899712,
"mtime": 1790581289.7458122,
"seen": 1790592151.6517475,
"ast_hash": "95aefd29cc97851ac06bb09652127202",
"semantic_hash": ""
},
"src/views/base/transactions/index.vue": {
"mtime": 1790488930.0027282,
"seen": 1790532739.4899726,
"mtime": 1790581289.7642682,
"seen": 1790592151.6517484,
"ast_hash": "90e227da4097bbcb4b352bb531cac43b",
"semantic_hash": ""
},
"src/views/base/transactions/mobile/MobileTransactionsView.vue": {
"mtime": 1790488929.9796379,
"seen": 1790532739.4899738,
"mtime": 1790581289.7041333,
"seen": 1790592151.651749,
"ast_hash": "c930d0557e4ca8962a2d43aef10a8f0f",
"semantic_hash": ""
},
@@ -3324,14 +3324,14 @@
"semantic_hash": ""
},
"src/views/base/user/components/UserPasswordForm.vue": {
"mtime": 1790488930.0212986,
"seen": 1790532739.489978,
"mtime": 1790581289.7750266,
"seen": 1790592151.6517522,
"ast_hash": "9686bcb583ad891f11b2cec9d910721c",
"semantic_hash": ""
},
"src/views/base/user/components/UserProfileForm.vue": {
"mtime": 1790488929.982445,
"seen": 1790532739.4899797,
"mtime": 1790581289.7041698,
"seen": 1790592151.6517527,
"ast_hash": "7f3c664c7154ecc4cfca4daed9063310",
"semantic_hash": ""
},
@@ -3342,8 +3342,8 @@
"semantic_hash": ""
},
"src/views/base/user/desktop/DesktopUserView.vue": {
"mtime": 1790488930.0108485,
"seen": 1790532739.4899821,
"mtime": 1790581289.7662172,
"seen": 1790592151.6517541,
"ast_hash": "e862a78b1710d68c88a5f25ac28cce2f",
"semantic_hash": ""
},
@@ -3420,14 +3420,14 @@
"semantic_hash": ""
},
"src/views/base/wallet/desktop/DesktopWalletView.vue": {
"mtime": 1790488929.9982712,
"seen": 1790532739.489998,
"mtime": 1790581289.7505662,
"seen": 1790592151.651765,
"ast_hash": "d4de65f275cfde91982dfb20fc8eea2f",
"semantic_hash": ""
},
"src/views/base/wallet/index.vue": {
"mtime": 1790488930.0202227,
"seen": 1790532739.4899995,
"mtime": 1790581289.7778225,
"seen": 1790592151.6517658,
"ast_hash": "4d09ded1dca5233463275270edaf2781",
"semantic_hash": ""
},
@@ -3486,8 +3486,8 @@
"semantic_hash": ""
},
"src/views/support/components/SupportChatHeader.vue": {
"mtime": 1790488930.0247834,
"seen": 1790532739.490012,
"mtime": 1790581289.7797737,
"seen": 1790592151.6517744,
"ast_hash": "ed62c182838b1a9acb9e4ad4715db061",
"semantic_hash": ""
},
@@ -3498,8 +3498,8 @@
"semantic_hash": ""
},
"src/views/support/index.vue": {
"mtime": 1790488929.9794376,
"seen": 1790532739.4900143,
"mtime": 1790581289.7042654,
"seen": 1790592151.651776,
"ast_hash": "38596d0cb6e4b74c300bbc32d2caee73",
"semantic_hash": ""
},
@@ -3510,9 +3510,9 @@
"semantic_hash": ""
},
"src/views/tv/composables/useTvMonitorPage.ts": {
"mtime": 1790535002.599565,
"seen": 1790535468.5307162,
"ast_hash": "c65d56f0d321b76a9f524f34ce0ef8f9",
"mtime": 1790588406.8287122,
"seen": 1790592151.6517775,
"ast_hash": "05316a937007fa2ac55dda7ff1878fe0",
"semantic_hash": ""
},
"src/views/tv/composables/useTvTheme.ts": {
@@ -3534,8 +3534,8 @@
"semantic_hash": ""
},
"src/vite-env.d.ts": {
"mtime": 1790488930.0108652,
"seen": 1790532739.4900215,
"mtime": 1790581289.7662013,
"seen": 1790592151.6517808,
"ast_hash": "870ea76d31cfb7145c73307deca819a3",
"semantic_hash": ""
},
+33 -52
View File
@@ -1,17 +1,17 @@
# Graph Report - ghatreh_user (2026-09-28)
## Corpus Check
- 598 files · ~506,942 words
- 598 files · ~506,836 words
- Verdict: corpus is large enough that graph structure adds value.
- Unclassified: 51 file(s) not represented in the graph (top: .less 25, .eot 6, .ttf 6)
## Summary
- 196 nodes · 413 edges · 11 communities (10 shown, 1 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 27 edges (avg confidence: 0.85)
- 198 nodes · 409 edges · 8 communities (7 shown, 1 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 28 edges (avg confidence: 0.85)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `1ac50951`
- Built from commit: `9cb09796`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -20,100 +20,81 @@
- ref_utils
- index.vue
- productPrice.ts
- forceReconnect
- api/products.ts
- priceSocket.ts
- connect
- useProductsPageData.ts
- AuthPriceStream
- initPriceRealtimeChannel
## God Nodes (most connected - your core abstractions)
1. `useTvMonitorPage()` - 28 edges
1. `useTvMonitorPage()` - 25 edges
2. `connect()` - 15 edges
3. `getProductBaseBuyPrice()` - 10 edges
4. `touchStreamActivity()` - 9 edges
5. `runFallbackPoll()` - 9 edges
6. `bindStreamEvents()` - 9 edges
7. `forceReconnect()` - 9 edges
5. `bindStreamEvents()` - 9 edges
6. `forceReconnect()` - 9 edges
7. `runFallbackPoll()` - 8 edges
8. `maybeShowNetworkAlert()` - 8 edges
9. `disconnect()` - 8 edges
10. `applyProductsList()` - 8 edges
## Surprising Connections (you probably didn't know these)
- `connect()` --calls--> `AuthPriceStream` [EXTRACTED]
src/utils/priceSocket.ts → src/utils/priceSocket.ts _Bridges community 9 → community 7_
- `connect()` --calls--> `resolveStreamUrl()` [EXTRACTED]
src/utils/priceSocket.ts → src/utils/priceSocket.ts _Bridges community 10 → community 7_
- `forceReconnect()` --calls--> `clearReconnectTimer()` [EXTRACTED]
src/utils/priceSocket.ts → src/utils/priceSocket.ts _Bridges community 7 → community 4_
src/utils/priceSocket.ts → src/utils/priceSocket.ts _Bridges community 9 → community 6_
- `connect()` --calls--> `touchStreamActivity()` [EXTRACTED]
src/utils/priceSocket.ts → src/utils/priceSocket.ts _Bridges community 1 → community 7_
- `connect()` --calls--> `stopFallbackPolling()` [EXTRACTED]
src/utils/priceSocket.ts → src/utils/priceSocket.ts _Bridges community 6 → community 7_
src/utils/priceSocket.ts → src/utils/priceSocket.ts _Bridges community 1 → community 6_
## Import Cycles
- None detected.
## Communities (11 total, 1 thin omitted)
## Communities (8 total, 1 thin omitted)
### Community 0 - "useTvMonitorPage"
Cohesion: 0.09
Nodes (33): ref_api, ref_assets, ref_moment, ref_moment_jalaali, ref_vueuse_core, bankCoinRank(), floorTvToman(), formatTvPrice() (+25 more)
Cohesion: 0.10
Nodes (30): ref_api, ref_assets, ref_moment, ref_moment_jalaali, ref_vueuse_core, bankCoinRank(), floorTvToman(), formatTvPrice() (+22 more)
### Community 1 - "ref_utils"
Cohesion: 0.23
Nodes (15): ref_composables, ref_store, ref_utils, applyAppNotificationFromStream(), applyLastFromStream(), applySettingsFromStream(), applyUnreadCountFromStreamPayload(), bindStreamEvents() (+7 more)
### Community 2 - "index.vue"
Cohesion: 0.19
Nodes (15): ref_components, ref_vue, coinColumns, extraTickerLoop, loopNews(), loopTicker(), marqueeCopies(), newsDuration() (+7 more)
Cohesion: 0.10
Nodes (23): ref_components, ref_views, ref_vue, priceSocketConnected, priceStreamConnectingSince, priceStreamLifecycle, priceStreamList, priceStreamProducts (+15 more)
### Community 3 - "productPrice.ts"
Cohesion: 0.19
Nodes (25): applyPriceOffsetPercent(), buyCashFee(), cashFeeOptions(), colleagueSideUnit(), getColleagueSourcedUnitPrice(), getProductBaseBuyPrice(), getProductBaseSellPrice(), getProductBuyPrice() (+17 more)
### Community 4 - "forceReconnect"
Cohesion: 0.21
Nodes (16): bindBrowserNetworkListeners(), forceReconnect(), isPageVisible(), maybeShowNetworkAlert(), notifyPriceLastFetchFailed(), onBrowserOffline(), onBrowserOnline(), onPageShow() (+8 more)
Cohesion: 0.20
Nodes (24): applyPriceOffsetPercent(), buyCashFee(), cashFeeOptions(), getColleagueSourcedUnitPrice(), getProductBaseBuyPrice(), getProductBaseSellPrice(), getProductBuyPrice(), getProductSellPrice() (+16 more)
### Community 5 - "api/products.ts"
Cohesion: 0.15
Nodes (5): ref_models, TvServerTime, CountPInventory, PInventory, Product
### Community 6 - "priceSocket.ts"
Cohesion: 0.16
Nodes (12): ref_ant_design_vue, ref_views, clearFallbackPollTimer(), clearPriceNetworkAlert(), getPriceSourceStaleMs(), isMobileDevice(), isRealPriceOutage(), onTvBoard() (+4 more)
### Community 7 - "connect"
Cohesion: 0.36
Nodes (10): clearConnectingLifecycle(), clearReconnectTimer(), connect(), disconnect(), disconnectSourceOnly(), handleStreamLost(), markConnectingLifecycle(), scheduleReconnect() (+2 more)
Cohesion: 0.11
Nodes (41): ref_ant_design_vue, bindBrowserNetworkListeners(), clearConnectingLifecycle(), clearFallbackPollTimer(), clearPriceNetworkAlert(), clearReconnectTimer(), connect(), disconnect() (+33 more)
### Community 8 - "useProductsPageData.ts"
Cohesion: 0.12
Nodes (31): applyProductsList(), applyProductsListFromSocket(), applySocketProductList(), changeProductsTab(), flagOff(), flagOn(), initialized, initProductsPageData() (+23 more)
### Community 10 - "initPriceRealtimeChannel"
Cohesion: 0.60
Nodes (5): initPriceRealtimeChannel(), isPriceWebSocketEnabled(), isTruthySetting(), resolveStreamPath(), resolveStreamUrl()
## Knowledge Gaps
- **13 isolated node(s):** `initialized`, `productsActiveKey`, `productsTypeItems`, `productsFirstItems`, `productsItems` (+8 more)
These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 37 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
- **20 isolated node(s):** `Product`, `PInventory`, `CountPInventory`, `priceSocketConnected`, `priceWssEnabled` (+15 more)
These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 43 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
- **1 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `AuthPriceStream` connect `AuthPriceStream` to `priceSocket.ts`, `connect`?**
- **Why does `AuthPriceStream` connect `AuthPriceStream` to `priceSocket.ts`?**
_High betweenness centrality (0.035) - this node is a cross-community bridge._
- **Why does `runFallbackPoll()` connect `priceSocket.ts` to `ref_utils`, `forceReconnect`?**
_High betweenness centrality (0.019) - this node is a cross-community bridge._
- **Are the 13 inferred relationships involving `useTvMonitorPage()` (e.g. with `isBankCoin()` and `isGoldBar()`) actually correct?**
_`useTvMonitorPage()` has 13 INFERRED edges - model-reasoned connections that need verification._
- **What connects `initialized`, `productsActiveKey`, `productsTypeItems` to the rest of the system?**
_13 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Why does `runFallbackPoll()` connect `priceSocket.ts` to `ref_utils`, `index.vue`?**
_High betweenness centrality (0.016) - this node is a cross-community bridge._
- **Are the 14 inferred relationships involving `useTvMonitorPage()` (e.g. with `isBankCoin()` and `isGoldBar()`) actually correct?**
_`useTvMonitorPage()` has 14 INFERRED edges - model-reasoned connections that need verification._
- **What connects `Product`, `PInventory`, `CountPInventory` to the rest of the system?**
_20 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `useTvMonitorPage` be split into smaller, more focused modules?**
_Cohesion score 0.09309309309309309 - nodes in this community are weakly interconnected._
- **Should `useProductsPageData.ts` be split into smaller, more focused modules?**
_Cohesion score 0.11931818181818182 - nodes in this community are weakly interconnected._
_Cohesion score 0.09982174688057041 - nodes in this community are weakly interconnected._
- **Should `index.vue` be split into smaller, more focused modules?**
_Cohesion score 0.10153846153846154 - nodes in this community are weakly interconnected._
- **Should `priceSocket.ts` be split into smaller, more focused modules?**
_Cohesion score 0.10638297872340426 - nodes in this community are weakly interconnected._
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1095 -1124
View File
File diff suppressed because it is too large Load Diff
+23 -23
View File
@@ -180,8 +180,8 @@
"semantic_hash": ""
},
"src/api/products.ts": {
"mtime": 1790534990.05151,
"seen": 1790535468.5298908,
"mtime": 1790601117.1185765,
"seen": 1790606091.2974627,
"ast_hash": "0330dcba5733f10629df4f8f24abd73d",
"semantic_hash": ""
},
@@ -2076,9 +2076,9 @@
"semantic_hash": ""
},
"src/models/products.ts": {
"mtime": 1790496330.8729389,
"seen": 1790532739.4898138,
"ast_hash": "ee67a0e30df7ac82453538cb7b50b0a6",
"mtime": 1790598879.2930124,
"seen": 1790606091.2977126,
"ast_hash": "7f3b68ee8c498888e06cdbaaff76cdea",
"semantic_hash": ""
},
"src/models/support.ts": {
@@ -2286,15 +2286,15 @@
"semantic_hash": ""
},
"src/utils/priceSocket.ts": {
"mtime": 1790588834.8620162,
"seen": 1790592151.6516151,
"ast_hash": "f8e8f941dffbf5350f360f2ae57a86d8",
"mtime": 1790604013.9288616,
"seen": 1790606091.2977397,
"ast_hash": "fea25f49ce424ebbf23672d73e669c03",
"semantic_hash": ""
},
"src/utils/priceSocketState.ts": {
"mtime": 1782628743.5470426,
"seen": 1790532739.489841,
"ast_hash": "de122aa6a1742d5561477e6c8f32dc21",
"mtime": 1790604092.9767897,
"seen": 1790606091.2977407,
"ast_hash": "50e211a860436092c0e7b8e1b28d451f",
"semantic_hash": ""
},
"src/utils/productAssets.ts": {
@@ -2334,9 +2334,9 @@
"semantic_hash": ""
},
"src/utils/productPrice.ts": {
"mtime": 1790496327.8621707,
"seen": 1790532739.4898455,
"ast_hash": "704309be8cc7eb42bd07cc3016dc7445",
"mtime": 1790598879.2952812,
"seen": 1790606091.297746,
"ast_hash": "357133c626723586fdbbfe38b8ccf849",
"semantic_hash": ""
},
"src/utils/productStreamBridge.ts": {
@@ -3150,9 +3150,9 @@
"semantic_hash": ""
},
"src/views/base/products/composables/useProductsPageData.ts": {
"mtime": 1790588828.5575576,
"seen": 1790592151.6517296,
"ast_hash": "980cf0bd33ba2f6de986ee968ece8bc8",
"mtime": 1790602630.1972547,
"seen": 1790606091.2978623,
"ast_hash": "9b1fdb2ab4bf09a8971604cb1b77104b",
"semantic_hash": ""
},
"src/views/base/products/index.vue": {
@@ -3510,9 +3510,9 @@
"semantic_hash": ""
},
"src/views/tv/composables/useTvMonitorPage.ts": {
"mtime": 1790588406.8287122,
"seen": 1790592151.6517775,
"ast_hash": "05316a937007fa2ac55dda7ff1878fe0",
"mtime": 1790604052.0040936,
"seen": 1790606091.2979152,
"ast_hash": "d85990e113d0ad330a1ae0dbbc5fcad0",
"semantic_hash": ""
},
"src/views/tv/composables/useTvTheme.ts": {
@@ -3528,9 +3528,9 @@
"semantic_hash": ""
},
"src/views/tv/index.vue": {
"mtime": 1790534005.63444,
"seen": 1790535468.5307207,
"ast_hash": "47a46919345988c9ba77e4c2481c39e8",
"mtime": 1790598879.299473,
"seen": 1790606091.2979174,
"ast_hash": "4d89d6ba0be3f0dfbf16c4a785dda6ca",
"semantic_hash": ""
},
"src/vite-env.d.ts": {
@@ -8,6 +8,7 @@ import { tableAddress } from '@/api/address'
import type { CountPInventory, PInventory } from '@/models/products'
import type { Address } from '@/models/address'
import { loading } from '@/utils'
import { useWalletAssets } from '@/composables/useWalletAssets'
import { usePhysicalReceiveShellContext } from './usePhysicalReceiveShell'
export interface NewPhysicalRequestContext {
@@ -31,6 +32,7 @@ export const NEW_PHYSICAL_REQUEST_KEY: InjectionKey<NewPhysicalRequestContext> =
export function useNewPhysicalRequestPage() {
const { isDesktop } = usePhysicalReceiveShellContext()
const { loadWalletAssets } = useWalletAssets()
const items = ref<PInventory[]>()
const baseItems = ref<PInventory[]>()
@@ -122,6 +124,7 @@ export function useNewPhysicalRequestPage() {
await nextTick()
message.success('درخواست شما با موفقیت ارسال شد')
await loadWalletAssets(true)
await initProductWallet()
await router.push({ name: 'list' })
} catch (e) {
@@ -190,7 +190,13 @@ function onTvBoard() {
}
function scheduleCatalogRefreshFromStream() {
if (onTvBoard()) return
if (priceStreamLifecycle.value === 'open' || !shouldUsePricePolling() || onTvBoard()) {
if (catalogStreamRefreshTimer) {
clearTimeout(catalogStreamRefreshTimer)
catalogStreamRefreshTimer = undefined
}
return
}
if (catalogStreamRefreshTimer) {
clearTimeout(catalogStreamRefreshTimer)
}
@@ -222,6 +228,9 @@ function applySocketProductList(incoming: Product[], current?: Product[]) {
}
export async function refreshProductsPageData() {
if (priceStreamLifecycle.value === 'open' || !shouldUsePricePolling()) {
return
}
try {
const fresh = await getProductsCatalog(true)
if (!fresh?.length) return