import { getHasSoloedTakeLane } from './selectors';
import { StudioProjectState } from './types';

export default function resolveSoloedTakeLanes(state: StudioProjectState) {
  let hadSoloedTakeLanes = false;
  let newTracks = state.tracks.map((track) => {
    if (getHasSoloedTakeLane(track)) {
      hadSoloedTakeLanes = true;
      return {
        ...track,
        clips:
          track.takeLanes.find(
            (takeLane) => takeLane.id === track.soloTakeLaneId
          )?.clips ?? [],
      };
    }
    return track;
  });
  if (hadSoloedTakeLanes) {
    return {
      ...state,
      tracks: newTracks,
    };
  }
  return state;
}
