import { memoize } from 'lodash-es';

export default memoize(
  function getOffsetTrackIds(trackIds: string[], trackIndexDelta: number) {
    const result: { [key: string]: string } = {};
    trackIds.forEach((trackId, index) => {
      let offsetTrackId = trackIds[index + trackIndexDelta];
      if (!offsetTrackId) {
        if (trackIndexDelta > 0) {
          offsetTrackId = trackIds[trackIds.length - 1];
        } else {
          offsetTrackId = trackIds[0];
        }
      }
      result[trackId] = offsetTrackId;
    });
    return result;
  },
  (trackIds, trackIndexDelta) => `${trackIds.join(',')}::${trackIndexDelta}`
);
