poe-svelte-ui-lib 1.10.4 → 1.10.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.
@@ -79,12 +79,18 @@
79
79
  initializeGraphData()
80
80
  })
81
81
 
82
- /* Обработка входящих данных */
82
+ /* Обработка входящих данных.
83
+ ВАЖНО: streamingData читается только внутри колбэков setInterval (асинхронный контекст),
84
+ а не в теле $effect — иначе каждое новое сообщение (у нас до 10 Гц с устройства) делает
85
+ streamingData зависимостью эффекта, и он пересоздаёт таймер на каждый пакет: если Refresh
86
+ rate медленнее, чем частота входящих данных, setInterval убивается раньше, чем успевает
87
+ сработать хотя бы раз — график зависает. */
83
88
  let intervalId: ReturnType<typeof setInterval>
84
89
  $effect(() => {
85
90
  clearInterval(intervalId)
86
- if (selectedRefreshRate > 0 && streamingData.data && streamingData.data.length > 0) {
91
+ if (selectedRefreshRate > 0) {
87
92
  intervalId = setInterval(() => {
93
+ if (!isTest && (!streamingData.data || streamingData.data.length === 0)) return
88
94
  let newValues
89
95
  if (isTest) newValues = graphData.map(() => Math.random() * 100 - 50)
90
96
  else newValues = (streamingData.data as IGraphDataObject[]).map((dataset) => dataset.value)
@@ -99,8 +105,9 @@
99
105
  })
100
106
  drawAllGraphs()
101
107
  }, selectedRefreshRate)
102
- } else if (selectedRefreshRate == 0 && streamingData.data && streamingData.data.length > 0 && !isTest) {
108
+ } else if (selectedRefreshRate == 0 && !isTest) {
103
109
  intervalId = setInterval(() => {
110
+ if (!streamingData.data || streamingData.data.length === 0) return
104
111
  if (previousDataTimestamp < (streamingData.timestamp ?? Date.now())) {
105
112
  let newValues = (streamingData.data as IGraphDataObject[]).map((dataset) => dataset.value)
106
113
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poe-svelte-ui-lib",
3
- "version": "1.10.4",
3
+ "version": "1.10.5",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -56,4 +56,4 @@
56
56
  "vite": "^8.1.0",
57
57
  "vite-plugin-compression": "^0.5.1"
58
58
  }
59
- }
59
+ }