buildSpoilerGeometry function

SpoilerGeometry? buildSpoilerGeometry({
  1. required TextLayoutClient layout,
  2. required String text,
  3. required TextSelection selection,
  4. bool skipWhitespace = true,
})

Builds spoiler geometry (path + signature) for a given selection.

Uses any TextLayoutClient (RenderEditable/TextPainter) and skips whitespace by default.

Implementation

SpoilerGeometry? buildSpoilerGeometry({
  required TextLayoutClient layout,
  required String text,
  required TextSelection selection,
  bool skipWhitespace = true,
}) {
  final (path, rects) = buildSelectionPath(
    layout: layout,
    text: text,
    selection: selection,
    skipWhitespace: skipWhitespace,
  );
  if (path == null) return null;

  return SpoilerGeometry(
    path: path,
    signature: pathSignature(path),
    rects: rects,
  );
}