import 'package:flutter/material.dart';
import 'package:lightmeter/res/dimens.dart';

double dialogTextHeight(
  BuildContext context,
  String text,
  TextStyle? style,
  double textPadding,
) =>
    textHeight(
      text,
      style,
      MediaQuery.sizeOf(context).width - Dimens.dialogMargin.horizontal - textPadding,
    );

double textHeight(
  String text,
  TextStyle? style,
  double maxWidth,
) =>
    textSize(text, style, maxWidth).height;

Size textSize(
  String text,
  TextStyle? style,
  double maxWidth,
) {
  final TextPainter titlePainter = TextPainter(
    text: TextSpan(
      text: text,
      style: style,
    ),
    textDirection: TextDirection.ltr,
  )..layout(maxWidth: maxWidth);
  return titlePainter.size;
}

extension TextLineHeight on TextStyle {
  double get lineHeight => fontSize! * height!;
}