markdownEditor function

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

Implementation

Container markdownEditor(
  BuildContext context,
  TextEditingController textController,
  FocusNode focusContent,
  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: focusContent,
                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: focusContent, // Add the _focusContent
              ),
            ),
          ],
        ),
        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,
  //   // )
  // );
}