Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
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.
  • Loading branch information
waleedlatif1 committed Apr 7, 2026
commit f6f601cfe832e9de958115bee1350f6de20eb422
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use client'

import { useEffect, useState } from 'react'
import { useState } from 'react'
import { Button, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader } from '@/components/emcn'

interface DeleteModalProps {
Expand Down Expand Up @@ -48,12 +48,14 @@ export function DeleteModal({
itemName,
}: DeleteModalProps) {
const [confirmationText, setConfirmationText] = useState('')
const [prevIsOpen, setPrevIsOpen] = useState(false)

useEffect(() => {
if (isOpen !== prevIsOpen) {
setPrevIsOpen(isOpen)
if (isOpen) {
setConfirmationText('')
}
}, [isOpen])
}

const isMultiple = Array.isArray(itemName) && itemName.length > 1
const isSingle = !isMultiple
Expand Down
Loading