from typing import List


def split_text_on_parts(text: str, part_max_length: int) -> List[str]:
    """Split text on parts with part max length.

    Args:
        text: Text for split.
        messdage_max_length: Max length of the text part.

    Returns:
        parts: List of text parts.
    """
    parts = []
    while text:
        if len(text) <= part_max_length:
            parts.append(text)
            break
        part = text[:part_max_length]
        first_lnbr = part.rfind('\n')
        if first_lnbr != -1:
            parts.append(part[:first_lnbr])
            text = text[first_lnbr+1:]
        else:
            parts.append(part)
            text = text[part_max_length:]
    return parts