Skip to content

Commit f6f601c

Browse files
committed
fix(modal): replace useEffect with render-time state reset
Replace useEffect anti-pattern for resetting confirmation text with React's recommended "adjusting state during render" pattern. This ensures stale text is never painted and avoids an extra render cycle.
1 parent fd29a29 commit f6f601c

File tree

1 file changed

+5
-3
lines changed
  • apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/delete-modal

1 file changed

+5
-3
lines changed

apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/workflow-list/components/delete-modal/delete-modal.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use client'
22

3-
import { useEffect, useState } from 'react'
3+
import { useState } from 'react'
44
import { Button, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader } from '@/components/emcn'
55

66
interface DeleteModalProps {
@@ -48,12 +48,14 @@ export function DeleteModal({
4848
itemName,
4949
}: DeleteModalProps) {
5050
const [confirmationText, setConfirmationText] = useState('')
51+
const [prevIsOpen, setPrevIsOpen] = useState(false)
5152

52-
useEffect(() => {
53+
if (isOpen !== prevIsOpen) {
54+
setPrevIsOpen(isOpen)
5355
if (isOpen) {
5456
setConfirmationText('')
5557
}
56-
}, [isOpen])
58+
}
5759

5860
const isMultiple = Array.isArray(itemName) && itemName.length > 1
5961
const isSingle = !isMultiple

0 commit comments

Comments
 (0)