import { useMemo } from 'react';

import { applyCorrections } from './correctLyrics';
import { useAlignedLyrics } from './hooks/useAlignedLyrics';
import { useClips } from './hooks/useClips';
import { LyricsCorrection } from './types';

export default function useAlignedLyricsByClipId(
  allUsedClipIds: string[],
  lyricsCorrectionsByClipId: Record<string, LyricsCorrection[]>
) {
  const { clips } = useClips(allUsedClipIds);
  const alignedLyricsByClipId = useAlignedLyrics(clips);
  const correctedAlignedLyricsByClipId = useMemo(() => {
    return applyCorrections(alignedLyricsByClipId, lyricsCorrectionsByClipId);
  }, [alignedLyricsByClipId, lyricsCorrectionsByClipId]);

  return correctedAlignedLyricsByClipId;
}
