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

export default function toggleTakeLaneSolo(takeLaneId: string, solo?: boolean) {
  return (state: StudioProjectState) => {
    return {
      ...state,
      tracks: state.tracks.map((track) => {
        if (track.takeLanes.find((tl) => tl.id === takeLaneId)) {
          const newSoloTakeLaneId =
            solo === true
              ? takeLaneId
              : solo === false
                ? null
                : takeLaneId === track.soloTakeLaneId
                  ? null
                  : takeLaneId;
          return {
            ...track,
            soloTakeLaneId: newSoloTakeLaneId,
          };
        }
        return track;
      }),
    };
  };
}
