createFractionsKey static method

CacheKey createFractionsKey(
  1. List<Level> levels,
  2. double availableWidth, {
  3. double? initialLevel2Width,
  4. double? initialLevel3Width,
  5. double? initialLevel4Width,
})

initialLevel2Width/initialLevel3Width/initialLevel4Width включены в ключ, чтобы разные фичи с разными настроенными начальными ширинами не получали чужой закэшированный результат.

Implementation

static CacheKey createFractionsKey(
  List<Level> levels,
  double availableWidth, {
  double? initialLevel2Width,
  double? initialLevel3Width,
  double? initialLevel4Width,
}) {
  final levelsStr = levels.map((l) => l.name).join(',');
  final initialWidthsStr =
      '${initialLevel2Width ?? ''}_${initialLevel3Width ?? ''}_${initialLevel4Width ?? ''}';
  return CacheKey(
    cacheName: CacheNames.splitPaneFractions,
    key: 'fractions_${levelsStr}_w${availableWidth.round()}_i$initialWidthsStr',
  );
}