size method

double size({
  1. GetBreakpointSizeCallback? breakpointSize,
  2. ResponsiveRange? range,
  3. bool? useTextScaleFactor,
})

Implementation

double size({
  GetBreakpointSizeCallback? breakpointSize,
  ResponsiveRange? range,
  bool? useTextScaleFactor,
}) {
  final size = MediaQuery.sizeOf(_context);

  final currentSizeCallback = breakpointSize ?? this.breakpointSize;

  double currentSize = currentSizeCallback != null
      ? currentSizeCallback(size, Theme.of(_context).visualDensity)
      : size.width;

  if (useTextScaleFactor ?? this.useTextScaleFactor) {
    final textScaleFactor = MediaQuery.textScaleFactorOf(_context);
    currentSize = currentSize * textScaleFactor;
  }

  final effectiveRange = range ?? this.range;

  final responsiveSize = effectiveRange.computeResponsiveSizeFrom(
    currentSize,
  );

  return responsiveSize;
}