insertTable function

void insertTable(
  1. int rows,
  2. int columns,
  3. QuillController quillController,
  4. ChangeSource? changeFrom,
)

Implementation

void insertTable(int rows, int columns, QuillController quillController,
    ChangeSource? changeFrom) {
  final tableData = _createTableData(rows, columns);
  final delta = Delta()..insert({'table': tableData});
  final selection = quillController.selection;
  final replacedLength = selection.extentOffset - selection.baseOffset;
  final newBaseOffset = selection.baseOffset;
  final newExtentOffsetCandidate =
      (selection.baseOffset + 1 - replacedLength).toInt();
  final newExtentOffsetAdjusted =
      newExtentOffsetCandidate < 0 ? 0 : newExtentOffsetCandidate;
  quillController.replaceText(
    newBaseOffset,
    replacedLength,
    delta,
    TextSelection(
        baseOffset: newBaseOffset, extentOffset: newExtentOffsetAdjusted),
  );
}