from typing import List


def update_current_measure_durations(
        current_measure_durations: List[float], next_duration: float
) -> List[float]:
    """
    Update a list of notes durations from a measure in progress.

    :param current_measure_durations:
        durations of notes (in fractions of whole measure)
        from start of the measure to the last added duration
    :param next_duration:
        duration of the next note (in fractions of whole measure)
    :return:
        list of notes durations from the current measure if it is still
        unfinished or list of notes durations from the next measure
    """
    duration_of_one_measure = 1
    extended_duration = sum(current_measure_durations) + next_duration
    if extended_duration < duration_of_one_measure:
        current_measure_durations.append(next_duration)
    elif extended_duration == duration_of_one_measure:
        current_measure_durations = []
    else:
        syncopated_duration = extended_duration - duration_of_one_measure
        current_measure_durations = [syncopated_duration]
    return current_measure_durations