اذهب إلى المحتوى
  • 0

عرض البيانات التي تم إرسالها عبر محرر النصوص react-quill

محمود_سعداوي

السؤال

السلام عليكم.

إعتمدت على react-quill لإرسال بيانات إلى قاعدة البيانات كما يلي

"use client";
import React, { SetStateAction, useState } from 'react';
import dynamic from 'next/dynamic';
import 'react-quill/dist/quill.snow.css';
import { useTranslations } from 'next-intl';

const QuillEditor = dynamic(() => import('react-quill'), { ssr: false });

type DescriptionProps = {
  description: string,
  setDescription: React.Dispatch<React.SetStateAction<string>>
}

const Description = ({description, setDescription}: DescriptionProps) => {
  const t = useTranslations('Add Task')
  // const [description, setDescription] = useState<string>('');

  const quillModules = {
    toolbar: [
      [{ header: [1, 2, 3, false] }],
      ['bold', 'italic', 'underline', 'strike', 'blockquote'],
      [{ list: 'ordered' }, { list: 'bullet' }],
      ['link', 'image'],
      [{ align: [] }],
      [{ color: [] }],
      ['code-block'],
      ['clean'],
    ],
  };

  const quillFormats = [
    'header',
    'bold',
    'italic',
    'underline',
    'strike',
    'blockquote',
    'list',
    'bullet',
    'link',
    'image',
    'align',
    'color',
    'code-block',
  ];

  const handleEditorChange = (content: SetStateAction<string>) => {
    setDescription(content);
  };
  return (
    <div className=" bg-gradient-to-br from-white to-gray-100 dark:from-gray-800 dark:to-gray-900">
      <h2 className="text-gray-800 dark:text-gray-300 font-medium mb-2">
        {t('task_description')}
      </h2>
      <QuillEditor
        value={description}
        onChange={handleEditorChange}
        modules={quillModules}
        formats={quillFormats}
        className="w-full bg-gray-50 dark:bg-gray-800 border-gray-300 dark:border-gray-600 rounded-md focus:outline-none focus:ring-4 focus:ring-indigo-400 focus:border-indigo-500 transition-all text-gray-900 dark:text-gray-100 text-xl"
      />
    </div>
  );
};

export default Description;

المشكل الذي أواجهه هو أنه عند عرض البيانات لايتم عرضها كما أرسلتها (ul - ol ...) 

الكود

<p
                className="mb-6 text-gray-700 dark:text-gray-300 text-justify"
                dangerouslySetInnerHTML={{ __html: task.description }}
            >
                {/* {task.description} */}
            </p>

شكرا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

وعليكم السلام،

أولا : قم بإضافة ql-editor للعنصر الذي تعرض فيه البيانات هكذا :

<p
    className="mb-6 text-gray-700 dark:text-gray-300 text-justify ql-editor"
    dangerouslySetInnerHTML={{ __html: task.description }}
/>


ثانيا : تأكد من أن task.description يحتوي على HTML صالح وكامل , قم بطباعته في الكونسول و تحقق من النتيجة, هل يوجد أخطاء في وسوم ال html, إذا وجدتأخطاء فالمشكلة تكون ليست بالعرض و إنما بالحفظ

ثالثا :إذا استمرت  يمكنك أن ضيف تنسيقات بنفسك لتعرض المحتوى كما تريد , قم بإنشاء ملف css و ضع فيه التنسيقات التالية وعدلها كيف تشاء :

.ql-editor {
    line-height: 1.6;
    font-size: 1rem;
}

.ql-editor h1 {
    font-size: 2em;
    font-weight: bold;
}

.ql-editor h2 {
    font-size: 1.75em;
    font-weight: bold;
}

.ql-editor h3 {
    font-size: 1.5em;
    font-weight: bold;
}

.ql-editor ol,
.ql-editor ul {
    padding-left: 1.5rem;
    list-style-position: inside;
}

.ql-editor li {
    margin-bottom: 0.5rem;
}

.ql-editor blockquote {
    border-left: 4px solid #ccc;
    margin: 1.5em 0;
    padding-left: 1em;
    color: #555;
    font-style: italic;
}

.ql-editor a {
    color: #3490dc;
    text-decoration: underline;
}

.ql-editor .ql-align-center {
    text-align: center;
}

.ql-editor .ql-align-right {
    text-align: right;
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...