From 21c228600a7a69cfea3b7d8af6838bcfda1d7399 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Tue, 1 Mar 2022 16:21:22 +0100 Subject: refactor: import comment form dynamically when reply to a comment The comment form is displayed only if an user click on the reply button so importing it dynamically should improve performances. --- src/components/Comment/Comment.tsx | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src/components/Comment/Comment.tsx') diff --git a/src/components/Comment/Comment.tsx b/src/components/Comment/Comment.tsx index 7215afe..0371288 100644 --- a/src/components/Comment/Comment.tsx +++ b/src/components/Comment/Comment.tsx @@ -1,17 +1,25 @@ import { Button } from '@components/Buttons'; -import CommentForm from '@components/CommentForm/CommentForm'; +import Spinner from '@components/Spinner/Spinner'; import { Comment as CommentData } from '@ts/types/comments'; import { settings } from '@utils/config'; import { getFormattedDate } from '@utils/helpers/format'; +import dynamic from 'next/dynamic'; import Image from 'next/image'; import Link from 'next/link'; import { useRouter } from 'next/router'; import Script from 'next/script'; -import { useEffect, useRef, useState } from 'react'; +import { useState } from 'react'; import { useIntl } from 'react-intl'; import { Comment as CommentSchema, WithContext } from 'schema-dts'; import styles from './Comment.module.scss'; +const DynamicCommentForm = dynamic( + () => import('@components/CommentForm/CommentForm'), + { + loading: () => , + } +); + const Comment = ({ articleId, comment, @@ -25,11 +33,6 @@ const Comment = ({ const router = useRouter(); const locale = router.locale ? router.locale : settings.locales.defaultLocale; const [shouldOpenForm, setShouldOpenForm] = useState(false); - const firstFieldRef = useRef(null); - - useEffect(() => { - firstFieldRef.current && firstFieldRef.current.focus(); - }); const getCommentAuthor = () => { return comment.author.url ? ( @@ -113,8 +116,7 @@ const Comment = ({ )} {shouldOpenForm && ( - -- cgit v1.2.3