Lightbox
Повноекранний компонент Lightbox-галереї зображень і відео на основі @reelkit/react-lightbox.
Features
Встановлення
Не забудьте імпортувати стилі:
Icons
lucide-react для іконок. Якщо ви віддаєте перевагу іншій бібліотеці іконок, скористайтеся renderControls та renderNavigation , щоб передати власні.Швидкий старт
The LightboxOverlay показує зображення на весь екран. Передайте масив об’єктів LightboxItem і керуйте видимістю через індекс, який може бути null.
Демо наживо
Натисніть мініатюру, щоб відкрити Lightbox. Гортайте стрілками або свайпом.
Слайди-відео (за бажанням)
Підтримка відео вмикається за бажанням і піддається tree-shaking — використання лише зображень нічого не додає до бандла. Імпортуйте useVideoSlideRenderer і передайте повернені значення у LightboxOverlay. Хук сам дає раду станам завантаження, керуванню звуком і життєвим циклом відео.
Як це працює
- Хук повертає
SoundProvider— загорніть у нього оверлей, щоб перемикання звуку працювало - Відео відтворюється автоматично (типово без звуку), коли слайд стає активним
- Спільний елемент відео повторно використовується між слайдами заради безперервності звуку на iOS
- Кнопка звуку з’являється на слайдах-відео автоматично, з реактивним перемикачем
- Елементи без
type: 'video'рендеряться як зображення (зворотна сумісність)
Customization
Власні елементи керування
Використовуйте renderControls щоб замінити стандартну кнопку закриття, лічильник і перемикач повного екрана. Складайте з експортованих підкомпонентів:
Власний інформаційний оверлей
Використовуйте renderInfo щоб замінити стандартний градієнт із заголовком та описом, або передайте renderInfo={() => null} щоб сховати його повністю:
Власна навігація
Використовуйте renderNavigation щоб замінити стандартні стрілки вперед і назад:
Власний слайд
Використовуйте renderSlide для повністю власного вмісту слайда. Поверніть null щоб лишити стандартний слайд-зображення:
Завантаження вмісту та обробка помилок
Lightbox стежить за станом завантаження й помилок кожного слайда. Поки вміст вантажиться, показується індикатор; для медіа, що не завантажилося, — значок зіпсованого зображення. URL з помилками кешуються, тож повторний перехід одразу показує помилку без нової спроби.
Колбеки життєвого циклу
Якщо ви використовуєте renderSlide, call these callbacks to control the loading indicator:
| Колбек | Коли викликати |
|---|---|
| onReady | Зображення завантажилося або відео почало грати. Скидає стани завантаження й помилки. |
| onWaiting | Відео буферизується посеред відтворення. Показує індикатор завантаження. |
| onError | Вміст не завантажився. Показує оверлей помилки й кешує URL як зіпсований. |
Власний інтерфейс завантаження та помилок
Замініть стандартний індикатор і значок помилки власними компонентами:
Стан в URL
Подивитися демо наживо →LightboxUrlOverlay — окремий компонент, стан відкриття якого живе в адресному рядку. Побудуйте контролер через useOverlayUrlState from @reelkit/react