| 9 | let isServerModeCheckPending = false; |
| 10 | |
| 11 | async function checkIsServerMode() { |
| 12 | if (isServerModeCached !== null) { |
| 13 | return isServerModeCached; |
| 14 | } |
| 15 | if (isServerModeCheckPending) { |
| 16 | // Wait for pending check |
| 17 | while (isServerModeCheckPending) { |
| 18 | await new Promise(resolve => setTimeout(resolve, 10)); |
| 19 | } |
| 20 | return isServerModeCached; |
| 21 | } |
| 22 | isServerModeCheckPending = true; |
| 23 | try { |
| 24 | isServerModeCached = await ipcRenderer.invoke('is-server-mode'); |
| 25 | } catch (error) { |
| 26 | console.error('[Preload] Error checking server mode:', error); |
| 27 | isServerModeCached = false; // Default to false (normal mode) |
| 28 | } |
| 29 | isServerModeCheckPending = false; |
| 30 | return isServerModeCached; |
| 31 | } |
| 32 | |
| 33 | // Wrap ipcRenderer.on to prevent preview-model listeners ONLY in server mode hidden window |
| 34 | // Only block if we're CERTAIN we're in server mode (cached = true) |