? attrs) {
+ // if (attrs == null) return text;
+ // if (attrs.containsKey('bold')) {
+ // text = '$text';
+ // }
+ // if (attrs.containsKey('italic')) {
+ // text = '$text';
+ // }
+ // return text;
+ // }
+ //
+ // for (final op in delta.toList()) {
+ // final insert = op.data;
+ // final attrs = op.attributes;
+ //
+ // if (insert is String) {
+ // final parts = insert.split('\n');
+ // for (int i = 0; i < parts.length; i++) {
+ // final part = applyStyles(parts[i], attrs);
+ // lines.add(part);
+ //
+ // if (i < parts.length - 1) {
+ // // End of line: wrap accumulated content into
+ // final joined = lines.join('');
+ // if (joined.trim().isNotEmpty) {
+ // buffer.writeln('
${joined.trim()}
');
+ // }
+ // lines.clear();
+ // }
+ // }
+ // }
+ // }
+ //
+ // // Add remaining lines
+ // final joined = lines.join('');
+ // if (joined.trim().isNotEmpty) {
+ // buffer.writeln('${joined.trim()}
');
+ // }
+ //
+ // return buffer.toString();
+ // }
+ //
+ // String extractPlainTextFromHtml(String html) {
+ // final regex = RegExp(r'(.*?)<\/p>', multiLine: true, dotAll: true);
+ // final matches = regex.allMatches(html);
+ //
+ // final buffer = StringBuffer();
+ // for (final match in matches) {
+ // final text = match.group(1)?.replaceAll(RegExp(r'<[^>]*>'), '') ?? '';
+ // buffer.writeln(text.trim());
+ // }
+ // return buffer.toString();
+ // }
+ //
+ // String decodeHtmlEntities(String text) {
+ // return text
+ // .replaceAll(' ', ' ')
+ // .replaceAll('&', '&')
+ // .replaceAll('<', '<')
+ // .replaceAll('>', '>')
+ // .replaceAll('"', '"')
+ // .replaceAll(''', "'"); // add more as needed
+ // }
+
+ Future updateData() async {
+ // Ensure apiselectedUser is not null before printing
+ if (widget.templateData != null) {
+ print("API Selected User Has Data - ${widget.templateData}");
+ print(
+ "API Selected User Has - ${widget.templateData?["templateData"]?["subject"]}",
+ );
+ setState(() {
+ // ✅ Wrap in setState to update the UI
+ controllers["templateName"]?.text =
+ widget.templateData?["templateData"]?["template_name"] ?? "";
+
+ controllers["subject"]?.text =
+ widget.templateData?["templateData"]?["subject"] ?? "";
+ final bodyHtml =
+ widget.templateData?["templateData"]?["body_html"] ?? "";
+
+ print("bodyHtml - $bodyHtml");
+
+ // /*inal converter = DeltaFromHTML();
+ // final delta = converter.convert(bodyHtml); // Convert HTML → Delta
+ // final quillDoc = quill.Document.fromDelta(delta);
+ // */
+
+ // final plainText = extractPlainTextFromHtml(bodyHtml);
+ // final decodedText = decodeHtmlEntities(plainText);
+ //
+ // final quillDoc = quill.Document()..insert(0, decodedText);
+ // // final quillDoc = convertBasicHtmlToQuill(bodyHtml);
+ // // final quillDoc = quill.Document()..insert(0, plainText);
+ // // final quillDoc = quill.Document.fromDelta(delta);
+ // _controller = quill.QuillController(
+ // document: quillDoc,
+ // selection: const TextSelection.collapsed(offset: 0),
+ // );
+
+ final deltaJsonString =
+ widget.templateData?["templateData"]?["body_delta"];
+ if (deltaJsonString != null) {
+ final deltaJson = jsonDecode(deltaJsonString);
+ final quillDoc = quill.Document.fromJson(deltaJson);
+
+ _controller = quill.QuillController(
+ document: quillDoc,
+ selection: const TextSelection.collapsed(offset: 0),
+ );
+ }
+
+ templateName =
+ widget.templateData?["templateData"]?["template_name"] ?? "";
+
+ print("Fetched template_name: $templateName");
+
+ final rawPlaceholder =
+ widget.templateData?["templateData"]?["placeholder"];
+
+ if (rawPlaceholder is String) {
+ // If it's a JSON string, decode it first
+ placeholderList = List