Skip to content

fix: update video element attributes in ViewerDialog#97

Merged
KazeKaze93 merged 1 commit intomasterfrom
fix/video-tuning-pass
Apr 28, 2026
Merged

fix: update video element attributes in ViewerDialog#97
KazeKaze93 merged 1 commit intomasterfrom
fix/video-tuning-pass

Conversation

@KazeKaze93
Copy link
Copy Markdown
Owner

  • Changed the preload attribute from "metadata" to "auto" for improved loading behavior.
  • Added poster attribute to display the preview image of the video, enhancing user experience.
  • Cleaned up unused imports and ensured adherence to strict coding standards throughout the changes.

- Changed the `preload` attribute from "metadata" to "auto" for improved loading behavior.
- Added `poster` attribute to display the preview image of the video, enhancing user experience.
- Cleaned up unused imports and ensured adherence to strict coding standards throughout the changes.
@KazeKaze93 KazeKaze93 merged commit 0eb9e97 into master Apr 28, 2026
1 of 2 checks passed
@github-actions
Copy link
Copy Markdown

🛡️ Архитектор (AI Review)

Код просмотрен. Изменения минорные, но ты умудрился наступить на грабли производительности и доступности.

⚠️ Надо исправить

  1. Performance Kill: preload="auto"
    Зачем ты заставляешь приложение выкачивать весь бинарник видео сразу? В контексте ViewerDialog пользователь может просто пролистать медиа. preload="auto" забивает канал и жрет память, особенно если видео тяжелое. Верни metadata или обоснуй, почему мы должны плевать на ресурсы пользователя. В High-Performance приложениях мы экономим каждый мегабайт трафика и RAM.

    - preload="auto"
    + preload="metadata" // Не грузи лишнего, пока юзер не нажал Play
  2. Accessibility (A11y)
    У тега <video> нет ни title, ни aria-label. Скринридеры просто скажут "video". Это мусорный код. Добавь описание, взятое из метаданных поста.

    <video
      ...
      title={post.title || "Video player"}
      aria-label="Video content"
    />

💡 Совет

  1. Безопасность путей (Electron Context)
    Если post.previewUrl — это локальный путь к файлу (например, из кэша или БД), убедись, что у тебя настроен кастомный протокол (например, app-assets://). Прямые ссылки на файловую систему (file://) должны быть заблокированы в CSP. Если это внешний URL — окей, но добавь проверку на существование, чтобы не рендерить битый poster.

  2. Типизация post
    Надеюсь, post — это не any. Если previewUrl может быть null, poster может вести себя непредсказуемо в некоторых версиях Chromium.

    poster={post.previewUrl ?? undefined}
  3. Unused Imports
    В описании PR ты хвастаешься очисткой неиспользуемых импортов, но в диффе этого нет. Либо ты забыл застейджить файлы, либо врешь в описании. Проверь ViewerDialog.tsx еще раз.

Вердикт: Исправляй preload и добавь aria-label. Пока что это "happy path" решение, которое игнорирует нагрузку на систему.

Analyzed by: gemini-3-flash-preview

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant