From caa50709ddf97f97fdeda6ebe20bc45bb98abd98 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Sat, 23 Aug 2025 11:21:59 +0100 Subject: [PATCH] Fixed warnings --- .../Dashboard/common/TemplateEditor.jsx | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/components/Dashboard/common/TemplateEditor.jsx b/src/components/Dashboard/common/TemplateEditor.jsx index 7abd657..525a9e5 100644 --- a/src/components/Dashboard/common/TemplateEditor.jsx +++ b/src/components/Dashboard/common/TemplateEditor.jsx @@ -1,4 +1,4 @@ -import { useState, useContext, useEffect, useRef } from 'react' +import { useState, useContext, useEffect, useRef, useCallback } from 'react' import PropTypes from 'prop-types' import { Flex, Alert, Card, Spin, Splitter, Button, Modal, Input } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -44,25 +44,28 @@ const TemplateEditor = ({ } } - function reloadPreview(content, testObject = {}, scale = 1) { - fetchTemplatePreview( - objectData._id, - content, - testObject, - scale, - (result) => { - setReloadLoading(false) - if (result?.error) { - setPreviewError(true) - setPreviewMessage(result.error) - } else { - setPreviewError(false) - updatePreviewContent(result.html) - setPreviewMessage('No issues found.') + const reloadPreview = useCallback( + (content, testObject = {}, scale = 1) => { + fetchTemplatePreview( + objectData._id, + content, + testObject, + scale, + (result) => { + setReloadLoading(false) + if (result?.error) { + setPreviewError(true) + setPreviewMessage(result.error) + } else { + setPreviewError(false) + updatePreviewContent(result.html) + setPreviewMessage('No issues found.') + } } - } - ) - } + ) + }, + [fetchTemplatePreview, objectData?._id] + ) // Move useEffect to component level and use state to track objectData changes useEffect(() => { @@ -70,7 +73,7 @@ const TemplateEditor = ({ console.log('PreviewScale', previewScale) reloadPreview(objectData.content, objectData.testObject, previewScale) } - }, [objectData, previewScale]) + }, [objectData, previewScale, reloadPreview]) return ( <>