prewarmQpcV4Pages method

Future<void> prewarmQpcV4Pages(
  1. int pageIndex
)

Implementation

Future<void> prewarmQpcV4Pages(int pageIndex) async {
  if (!isQpcV4Enabled) return;
  await _ensureQpcV4AssetsLoaded();
  if (_qpcV4PageRenderer == null) return;

  final basePage = pageIndex + 1;
  final candidates = <int>{
    basePage,
    basePage - 1,
    basePage + 1,
    basePage - 2,
    basePage + 2,
  }.where((p) => p >= 1 && p <= 604);

  var didBuildAny = false;
  for (final p in candidates) {
    if (_qpcV4BlocksByPage.containsKey(p)) continue;
    _qpcV4BlocksByPage[p] = _qpcV4PageRenderer!.buildPage(pageNumber: p);
    didBuildAny = true;
  }

  if (didBuildAny) {
    // تحديث الصفحات المعنيّة فقط (بدل update() الذي يُعيد بناء الكل)
    update([
      for (final p in candidates) 'qpc_page_${p - 1}',
    ]);
  }
}