import { emit } from '@tauri-apps/api/event';
import { useEffect } from 'react';
import type { YaakTheme } from '../lib/theme/window';
import { addThemeStylesToDocument, setThemeOnDocument } from '../lib/theme/window';
import { useResolvedTheme } from './useResolvedTheme';

export function useSyncThemeToDocument() {
  const theme = useResolvedTheme();

  useEffect(() => {
    setThemeOnDocument(theme.active);
    emitBgChange(theme.active);
  }, [theme.active]);

  useEffect(() => {
    addThemeStylesToDocument(theme.active);
  }, [theme.active]);
}

function emitBgChange(t: YaakTheme) {
  if (t.background == null) return;
  emit('yaak_bg_changed', t.background.hex()).catch(console.error);
}
