markdownEditor function

Container markdownEditor(
  1. BuildContext context,
  2. TextEditingController textController,
  3. FocusNode focusNode,
  4. String markdownData,
)

Implementation

Container markdownEditor(
    BuildContext context,
    TextEditingController textController,
    FocusNode focusNode,
    String markdownData) {
  final cardWidth = (screenWidth(context) / 2) - 20;

  return Container(
    padding: const EdgeInsets.all(10),
    child: Row(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        Column(
          children: [
            SizedBox(
              width: cardWidth,
              child: TextField(
                // autofocus: true,
                controller: textController,
                focusNode: focusNode,
                keyboardType: TextInputType.multiline,
                maxLines: null,
                decoration: InputDecoration(
                  border: OutlineInputBorder(),
                  labelText: 'Note Content',
                ),
              ),
            ),
            SizedBox(
              height: 10,
            ),
            SizedBox(
              width: cardWidth,
              child: MarkdownToolbar(
                useIncludedTextField:
                    false, // Because we want to use our own, set useIncludedTextField to false
                controller: textController, // Add the _controller
                focusNode: focusNode, // Add the _focusNode
              ),
            ),
          ],
        ),
        SizedBox(
          width: 20,
        ),
        Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            SizedBox(width: cardWidth, child: MarkdownBlock(data: markdownData))
          ],
        )
      ],
    ),
  );

  // // av: 20250604 - Alternative markdown editor option using
  // // markdown_editor_plus. The current version of this gives some errors
  // // when inputting different styles such as checkboxes.
  // return Container(
  //   padding: const EdgeInsets.all(10),
  //   child: MarkdownAutoPreview(
  //     controller: _textController,
  //     decoration: InputDecoration(
  //       hintText: 'Input markdown text',
  //     ),
  //     emojiConvert: true,
  //     hintText: 'Tap here to start writing a note!',
  //     // maxLines: 10,
  //     // minLines: 1,
  //     // expands: true,
  //   ),
  //   // SplittedMarkdownFormField(
  //   //   controller: _textController,
  //   //   markdownSyntax: '## Headline',
  //   //   decoration: const InputDecoration(
  //   //     hintText: 'Editable text',
  //   //   ),
  //   //   emojiConvert: true,
  //   // )
  // );
}