Перейти к содержанию

useSessions

Инкрементальная подгрузка: хранит loadedFromTs / loadedToTs, запрашивает только дельту.

  • Первый запрос или полная смена диапазона (candles не пересекаются с загруженным): один запрос [candleFrom, candleTo], бек при span > 50 дней обрезает.
  • Prepend (candleFrom < loadedFromTs): запрос [candleFrom, loadedFromTs − 1], мерж с текущими блоками, обновление loadedFromTs.
  • Append (candleTo > loadedToTs): запрос [loadedToTs + 1, candleTo], мерж, обновление loadedToTs.

Блоки мержатся по (start, name), сортировка по start. useSessionBoxes по-прежнему считает боксы по candles + blocks (только пересечения), без полного перезапроса списка с сервера.

50 дней: лимит на беке на один запрос; при дельте > 50 дней бек возвращает последние 50. Следующий prepend доберёт остальное. При изменении candles предыдущий запрос отменяется (AbortController).