calculateLayoutDimensions function

LayoutDimensions calculateLayoutDimensions({
  1. required int columns,
  2. required LayoutMode layoutMode,
  3. required int optimalLeftWidth,
})

Calculate layout dimensions for the Logo component.

Implementation

LayoutDimensions calculateLayoutDimensions({
  required int columns,
  required LayoutMode layoutMode,
  required int optimalLeftWidth,
}) {
  if (layoutMode == LayoutMode.horizontal) {
    final leftWidth = optimalLeftWidth;
    final usedSpace =
        _borderPadding + _contentPadding + _dividerWidth + leftWidth;
    final availableForRight = columns - usedSpace;

    var rightWidth = math.max(30, availableForRight);
    var totalWidth = math.min(
      leftWidth + rightWidth + _dividerWidth + _contentPadding,
      columns - _borderPadding,
    );

    if (totalWidth < leftWidth + rightWidth + _dividerWidth + _contentPadding) {
      rightWidth = totalWidth - leftWidth - _dividerWidth - _contentPadding;
    }

    return LayoutDimensions(
      leftWidth: leftWidth,
      rightWidth: rightWidth,
      totalWidth: totalWidth,
    );
  }

  // Compact mode
  final totalWidth = math.min(columns - _borderPadding, _maxLeftWidth + 20);
  return LayoutDimensions(
    leftWidth: totalWidth,
    rightWidth: totalWidth,
    totalWidth: totalWidth,
  );
}