DynamicMedia#

DynamicMedia allows you to share any supported media files. Just return a MediaAttachment from data getter and set selector for a field name. Other option is to pass a callable returning MediaAttachment as a selector

Code example:

from aiogram.enums import ContentType
from aiogram.fsm.state import StatesGroup, State

from aiogram_dialog import Dialog, Window
from aiogram_dialog.api.entities import MediaAttachment, MediaId
from aiogram_dialog.widgets.media import DynamicMedia


class Main(StatesGroup):
    menu = State()


async def get_data(**kwargs):
    image_id = "AgACAgIAAxkBAAICaGRBazvG-8X5riVWiz3vF9aW5LPqAAI8xjEbzg4ISoMkVbG_PhpbAQADAgADdwADLwQ"  # Your file_id
    image = MediaAttachment(ContentType.PHOTO, file_id=MediaId(image_id))
    return {'photo': image}


dialog = Dialog(
    Window(
        DynamicMedia("photo"),
        state=Main.menu,
        getter=get_data,
    ),
)

Result:

../../../_images/dynamic_media.png