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

export default function renameTakeLane(takeLaneId: string, newName: string) {
  return (state: StudioProjectState) => {
    const newTracks: StudioTrack[] = [];
    for (const track of state.tracks) {
      if (track.takeLanes.some((takeLane) => takeLane.id === takeLaneId)) {
        newTracks.push({
          ...track,
          takeLanes: track.takeLanes.map((takeLane) =>
            takeLane.id === takeLaneId
              ? { ...takeLane, name: newName }
              : takeLane
          ),
        });
      } else {
        newTracks.push(track);
      }
    }
    return {
      ...state,
      tracks: newTracks,
    };
  };
}
