Avoid mutating the previous state in a set function (#22935)

GitOrigin-RevId: b3613b8476bbb60a10ef6b293487b1017f56ea68
This commit is contained in:
Alf Eaton
2025-01-23 09:05:19 +00:00
committed by Copybot
parent 604471bfe9
commit 50c6b8a831
2 changed files with 10 additions and 7 deletions
@@ -37,9 +37,10 @@ export default function DictionaryModalContent({
word => {
runAsync(postJSON('/spelling/unlearn', { body: { word } }))
.then(() => {
setLearnedWords(value => {
value.delete(word)
return new Set(value)
setLearnedWords(prevLearnedWords => {
const learnedWords = new Set(prevLearnedWords)
learnedWords.delete(word)
return learnedWords
})
window.dispatchEvent(
new CustomEvent('editor:remove-learned-word', { detail: word })
@@ -271,7 +271,8 @@ export function ProjectListProvider({ children }: ProjectListProviderProps) {
const toggleSelectedProject = useCallback(
(projectId: string, selected?: boolean) => {
setSelectedProjectIds(selectedProjectIds => {
setSelectedProjectIds(prevSelectedProjectIds => {
const selectedProjectIds = new Set(prevSelectedProjectIds)
if (selected === true) {
selectedProjectIds.add(projectId)
} else if (selected === false) {
@@ -281,7 +282,7 @@ export function ProjectListProvider({ children }: ProjectListProviderProps) {
} else {
selectedProjectIds.add(projectId)
}
return new Set([...selectedProjectIds])
return selectedProjectIds
})
},
[]
@@ -293,7 +294,8 @@ export function ProjectListProvider({ children }: ProjectListProviderProps) {
const selectOrUnselectAllProjects = useCallback(
checked => {
setSelectedProjectIds(selectedProjectIds => {
setSelectedProjectIds(prevSelectedProjectIds => {
const selectedProjectIds = new Set(prevSelectedProjectIds)
for (const project of visibleProjects) {
if (checked) {
selectedProjectIds.add(project.id)
@@ -301,7 +303,7 @@ export function ProjectListProvider({ children }: ProjectListProviderProps) {
selectedProjectIds.delete(project.id)
}
}
return new Set([...selectedProjectIds])
return selectedProjectIds
})
},
[visibleProjects]