def render_visual_media_input()

in demo_app/demo_app.py [0:0]


def render_visual_media_input(file: Optional[str]):
    """Renders visual media input into a Gradio component."""
    if not file:
        return gr.Gallery(
            value=None,
            type="pil",
            visible=True,
        )
    mime_type = mimetypes.guess_type(file)[0]
    if mime_type.startswith("image"):
        return gr.Gallery([file], columns=1, visible=True)
    elif mime_type == "application/pdf":
        fitz_pdf = fitz.open(file)
        page_thumbnails = fitz_pdf_to_images(fitz_pdf)
        return gr.Gallery(
            page_thumbnails,
            columns=min(len(page_thumbnails), 2),
            type="pil",
            visible=True,
        )
    else:
        raise NotImplementedError(f"Unsupported mime_type: {mime_type}")