| 159 | const lastOpenFilesRef = useRef<ContextSubmenuItemWithProvider[]>([]); |
| 160 | useEffect(() => { |
| 161 | function hasOpenFilesChanged( |
| 162 | newFiles: ContextSubmenuItemWithProvider[], |
| 163 | oldFiles: ContextSubmenuItemWithProvider[], |
| 164 | ) { |
| 165 | const newIds = new Set(newFiles.map((f) => f.id)); |
| 166 | const oldIds = new Set(oldFiles.map((f) => f.id)); |
| 167 | |
| 168 | if (newIds.size !== oldIds.size) return true; |
| 169 | |
| 170 | for (const id of newIds) { |
| 171 | if (!oldIds.has(id)) return true; |
| 172 | } |
| 173 | |
| 174 | for (const id of oldIds) { |
| 175 | if (!newIds.has(id)) return true; |
| 176 | } |
| 177 | return false; |
| 178 | } |
| 179 | |
| 180 | let isMounted = true; |
| 181 | const refreshOpenFiles = async () => { |