fix: sync context panel iframe themes

Keeps embedded sessions aligned with parent theme
Prevents iframe reloads on theme changes
Supports theme hotkeys from focused iframes
This commit is contained in:
Bohdan Triapitsyn
2026-06-16 23:33:29 +03:00
parent 91e8e94961
commit 0fef61e25f
12 changed files with 484 additions and 118 deletions
@@ -0,0 +1,20 @@
import { describe, expect, test } from 'bun:test';
import { getDefaultTheme } from '@/lib/theme/themes';
import { getSyncedThemeFromPayload, getSyncedThemeVariant } from './theme-sync-payload';
describe('theme sync payload', () => {
test('accepts full custom theme payloads for embedded live sync', () => {
const customTheme = {
...getDefaultTheme(true),
metadata: {
...getDefaultTheme(true).metadata,
id: 'live-custom-dark',
name: 'Live custom dark',
variant: 'dark' as const,
},
};
expect(getSyncedThemeFromPayload({ currentTheme: customTheme })?.metadata.id).toBe('live-custom-dark');
expect(getSyncedThemeVariant({ currentTheme: customTheme })).toBe('dark');
});
});