react-native-ensys-camera-x 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CustomCamera.podspec +20 -0
- package/LICENSE +20 -0
- package/README.md +833 -0
- package/android/build.gradle +135 -0
- package/android/consumer-rules.pro +47 -0
- package/android/src/main/AndroidManifest.xml +72 -0
- package/android/src/main/java/android/print/PdfPrint.java +51 -0
- package/android/src/main/java/com/customcamera/AnimatedImageViewManager.kt +199 -0
- package/android/src/main/java/com/customcamera/AudioPlayerView.kt +322 -0
- package/android/src/main/java/com/customcamera/AudioRecorder.kt +506 -0
- package/android/src/main/java/com/customcamera/BarcodeScannerActivity.kt +361 -0
- package/android/src/main/java/com/customcamera/BlurBackgroundView.kt +199 -0
- package/android/src/main/java/com/customcamera/CacheCleanupManager.kt +386 -0
- package/android/src/main/java/com/customcamera/CameraAspectRatioMode.kt +77 -0
- package/android/src/main/java/com/customcamera/CameraAsset.kt +211 -0
- package/android/src/main/java/com/customcamera/CameraTheme.kt +479 -0
- package/android/src/main/java/com/customcamera/CompressionCacheStore.kt +504 -0
- package/android/src/main/java/com/customcamera/CompressionFileNameUtils.kt +7 -0
- package/android/src/main/java/com/customcamera/CompressionProfile.kt +195 -0
- package/android/src/main/java/com/customcamera/CustomCameraActivity.kt +7291 -0
- package/android/src/main/java/com/customcamera/CustomCameraFileProvider.kt +9 -0
- package/android/src/main/java/com/customcamera/CustomCameraModule.kt +2479 -0
- package/android/src/main/java/com/customcamera/CustomCameraPackage.kt +53 -0
- package/android/src/main/java/com/customcamera/DisplayUtils.kt +9 -0
- package/android/src/main/java/com/customcamera/DocumentPreviewView.kt +846 -0
- package/android/src/main/java/com/customcamera/DrawingView.kt +214 -0
- package/android/src/main/java/com/customcamera/EmojiPickerData.kt +228 -0
- package/android/src/main/java/com/customcamera/FilterStripAdapter.kt +158 -0
- package/android/src/main/java/com/customcamera/GifSupport.kt +215 -0
- package/android/src/main/java/com/customcamera/GlobalAudioPlayer.kt +320 -0
- package/android/src/main/java/com/customcamera/ImageExporter.kt +1394 -0
- package/android/src/main/java/com/customcamera/ImageFormatSupport.kt +163 -0
- package/android/src/main/java/com/customcamera/Localization.kt +206 -0
- package/android/src/main/java/com/customcamera/MediaAdapters.kt +758 -0
- package/android/src/main/java/com/customcamera/MediaCacheManager.kt +782 -0
- package/android/src/main/java/com/customcamera/MediaExportFormats.kt +201 -0
- package/android/src/main/java/com/customcamera/MediaFileIo.kt +310 -0
- package/android/src/main/java/com/customcamera/MediaMetadataStore.kt +494 -0
- package/android/src/main/java/com/customcamera/MediaPreviewEditor.kt +14865 -0
- package/android/src/main/java/com/customcamera/MediaPublisher.kt +423 -0
- package/android/src/main/java/com/customcamera/MediaStorageWorkflow.kt +722 -0
- package/android/src/main/java/com/customcamera/MediaStoreRepository.kt +378 -0
- package/android/src/main/java/com/customcamera/MediaThumbnailView.kt +286 -0
- package/android/src/main/java/com/customcamera/MediaUtils.kt +37 -0
- package/android/src/main/java/com/customcamera/NativeVideoViewManager.kt +845 -0
- package/android/src/main/java/com/customcamera/OfficeDocumentConverter.kt +2791 -0
- package/android/src/main/java/com/customcamera/PendingCaptureCrops.kt +88 -0
- package/android/src/main/java/com/customcamera/PowerPointPreview.kt +4077 -0
- package/android/src/main/java/com/customcamera/RecentPickerStore.kt +74 -0
- package/android/src/main/java/com/customcamera/SecureFileEraser.kt +411 -0
- package/android/src/main/java/com/customcamera/SecureKeyModule.kt +88 -0
- package/android/src/main/java/com/customcamera/SecureMediaDeleter.kt +493 -0
- package/android/src/main/java/com/customcamera/StickerPickerData.kt +107 -0
- package/android/src/main/java/com/customcamera/SvgDrawable.kt +175 -0
- package/android/src/main/java/com/customcamera/SvgIconViewManager.kt +77 -0
- package/android/src/main/java/com/customcamera/TextEntryController.kt +553 -0
- package/android/src/main/java/com/customcamera/ThumbnailLoader.kt +455 -0
- package/android/src/main/java/com/customcamera/UploadService.kt +909 -0
- package/android/src/main/java/com/customcamera/VideoEditUtils.kt +210 -0
- package/android/src/main/java/com/customcamera/VideoRotationTranscoder.kt +1992 -0
- package/android/src/main/java/com/customcamera/gif/AnimatedGifEncoder.kt +473 -0
- package/android/src/main/java/com/customcamera/gif/GifDecoder.kt +690 -0
- package/android/src/main/java/com/customcamera/gif/GifFramesDrawable.kt +160 -0
- package/android/src/main/java/com/customcamera/gif/GifHttp.kt +112 -0
- package/android/src/main/java/com/customcamera/gif/GifImageLoader.kt +186 -0
- package/android/src/main/java/com/customcamera/gif/GifModels.kt +74 -0
- package/android/src/main/java/com/customcamera/gif/GifProvider.kt +49 -0
- package/android/src/main/java/com/customcamera/gif/GifProviders.kt +27 -0
- package/android/src/main/java/com/customcamera/gif/GifRepository.kt +124 -0
- package/android/src/main/java/com/customcamera/gif/GifSafety.kt +33 -0
- package/android/src/main/java/com/customcamera/gif/GiphyGifProvider.kt +146 -0
- package/android/src/main/java/com/customcamera/gif/LZWEncoder.kt +258 -0
- package/android/src/main/java/com/customcamera/gif/NeuQuant.kt +435 -0
- package/android/src/main/java/com/customcamera/gif/TenorGifProvider.kt +147 -0
- package/android/src/main/res/drawable/bg_brush_selected.xml +5 -0
- package/android/src/main/res/drawable/bg_color_swatch.xml +5 -0
- package/android/src/main/res/drawable/bg_editor_toolbar.xml +6 -0
- package/android/src/main/res/drawable/bg_icon_circle.xml +5 -0
- package/android/src/main/res/drawable/bg_icon_circle_light.xml +5 -0
- package/android/src/main/res/drawable/bg_mode_tab_active.xml +6 -0
- package/android/src/main/res/drawable/bg_pill.xml +6 -0
- package/android/src/main/res/drawable/bg_recording_dot.xml +6 -0
- package/android/src/main/res/drawable/bg_selection_badge.xml +8 -0
- package/android/src/main/res/drawable/bg_send_button.xml +5 -0
- package/android/src/main/res/drawable/bg_shutter_inner.xml +5 -0
- package/android/src/main/res/drawable/bg_shutter_recording.xml +6 -0
- package/android/src/main/res/drawable/bg_shutter_ring.xml +8 -0
- package/android/src/main/res/drawable/bg_shutter_video_idle.xml +5 -0
- package/android/src/main/res/drawable/bg_thumbnail.xml +9 -0
- package/android/src/main/res/drawable/ic_aspect_ratio.xml +17 -0
- package/android/src/main/res/drawable/ic_audio.xml +10 -0
- package/android/src/main/res/drawable/ic_back.xml +10 -0
- package/android/src/main/res/drawable/ic_brush_medium.xml +12 -0
- package/android/src/main/res/drawable/ic_brush_thick.xml +12 -0
- package/android/src/main/res/drawable/ic_brush_thin.xml +12 -0
- package/android/src/main/res/drawable/ic_check.xml +17 -0
- package/android/src/main/res/drawable/ic_chevron_down.xml +10 -0
- package/android/src/main/res/drawable/ic_chevron_up.xml +13 -0
- package/android/src/main/res/drawable/ic_clear_drawing.xml +10 -0
- package/android/src/main/res/drawable/ic_close.xml +10 -0
- package/android/src/main/res/drawable/ic_cover.xml +9 -0
- package/android/src/main/res/drawable/ic_crop.xml +10 -0
- package/android/src/main/res/drawable/ic_delete.xml +9 -0
- package/android/src/main/res/drawable/ic_document.xml +10 -0
- package/android/src/main/res/drawable/ic_done.xml +10 -0
- package/android/src/main/res/drawable/ic_download.xml +10 -0
- package/android/src/main/res/drawable/ic_emoji.xml +10 -0
- package/android/src/main/res/drawable/ic_filter.xml +10 -0
- package/android/src/main/res/drawable/ic_flash_auto.xml +7 -0
- package/android/src/main/res/drawable/ic_flash_off.xml +23 -0
- package/android/src/main/res/drawable/ic_flash_on.xml +16 -0
- package/android/src/main/res/drawable/ic_flip.xml +15 -0
- package/android/src/main/res/drawable/ic_gallery.xml +10 -0
- package/android/src/main/res/drawable/ic_gif.xml +24 -0
- package/android/src/main/res/drawable/ic_lock.xml +19 -0
- package/android/src/main/res/drawable/ic_lock_open.xml +22 -0
- package/android/src/main/res/drawable/ic_marker.xml +10 -0
- package/android/src/main/res/drawable/ic_more_vert.xml +18 -0
- package/android/src/main/res/drawable/ic_overlay_close.xml +19 -0
- package/android/src/main/res/drawable/ic_overlay_resize.xml +18 -0
- package/android/src/main/res/drawable/ic_pause.xml +10 -0
- package/android/src/main/res/drawable/ic_photo_mode.xml +10 -0
- package/android/src/main/res/drawable/ic_play.xml +10 -0
- package/android/src/main/res/drawable/ic_redo.xml +10 -0
- package/android/src/main/res/drawable/ic_rotate.xml +9 -0
- package/android/src/main/res/drawable/ic_send.xml +10 -0
- package/android/src/main/res/drawable/ic_share.xml +10 -0
- package/android/src/main/res/drawable/ic_stat_upload.xml +10 -0
- package/android/src/main/res/drawable/ic_sticker.xml +24 -0
- package/android/src/main/res/drawable/ic_text.xml +10 -0
- package/android/src/main/res/drawable/ic_text_align_center.xml +11 -0
- package/android/src/main/res/drawable/ic_text_align_left.xml +11 -0
- package/android/src/main/res/drawable/ic_text_align_right.xml +11 -0
- package/android/src/main/res/drawable/ic_text_bg.xml +11 -0
- package/android/src/main/res/drawable/ic_trim.xml +23 -0
- package/android/src/main/res/drawable/ic_undo.xml +10 -0
- package/android/src/main/res/drawable/ic_video_mode.xml +10 -0
- package/android/src/main/res/drawable/ic_video_note.xml +13 -0
- package/android/src/main/res/drawable/ic_volume_off.xml +9 -0
- package/android/src/main/res/drawable/ic_volume_on.xml +9 -0
- package/android/src/main/res/drawable/sticker_heart.xml +9 -0
- package/android/src/main/res/drawable/sticker_smile.xml +9 -0
- package/android/src/main/res/drawable/sticker_star.xml +9 -0
- package/android/src/main/res/drawable/sticker_thumbsup.xml +9 -0
- package/android/src/main/res/values/colors.xml +34 -0
- package/android/src/main/res/values/ids.xml +15 -0
- package/android/src/main/res/values/strings.xml +15 -0
- package/android/src/main/res/values/styles.xml +20 -0
- package/android/src/main/res/xml/file_paths.xml +34 -0
- package/ios/CustomCamera.h +5 -0
- package/ios/CustomCamera.mm +214 -0
- package/lib/module/AudioPlayerContext.js +233 -0
- package/lib/module/AudioPlayerContext.js.map +1 -0
- package/lib/module/CameraPreview.js +304 -0
- package/lib/module/CameraPreview.js.map +1 -0
- package/lib/module/NativeAnimatedImageView.js +41 -0
- package/lib/module/NativeAnimatedImageView.js.map +1 -0
- package/lib/module/NativeAudioPlayerView.js +33 -0
- package/lib/module/NativeAudioPlayerView.js.map +1 -0
- package/lib/module/NativeBlurView.js +35 -0
- package/lib/module/NativeBlurView.js.map +1 -0
- package/lib/module/NativeCustomCamera.js +128 -0
- package/lib/module/NativeCustomCamera.js.map +1 -0
- package/lib/module/NativeCustomCamera.web.js +143 -0
- package/lib/module/NativeCustomCamera.web.js.map +1 -0
- package/lib/module/NativeCustomVideoView.js +5 -0
- package/lib/module/NativeCustomVideoView.js.map +1 -0
- package/lib/module/NativeDocumentPreviewView.js +156 -0
- package/lib/module/NativeDocumentPreviewView.js.map +1 -0
- package/lib/module/NativeMediaThumbnailView.js +110 -0
- package/lib/module/NativeMediaThumbnailView.js.map +1 -0
- package/lib/module/NativeSvgIcon.js +32 -0
- package/lib/module/NativeSvgIcon.js.map +1 -0
- package/lib/module/ResponsivePreviewContainer.js +171 -0
- package/lib/module/ResponsivePreviewContainer.js.map +1 -0
- package/lib/module/accessibility.js +61 -0
- package/lib/module/accessibility.js.map +1 -0
- package/lib/module/config.js +352 -0
- package/lib/module/config.js.map +1 -0
- package/lib/module/cpuOptimization.js +296 -0
- package/lib/module/cpuOptimization.js.map +1 -0
- package/lib/module/db/DatabaseManager.js +191 -0
- package/lib/module/db/DatabaseManager.js.map +1 -0
- package/lib/module/db/MediaMapper.js +284 -0
- package/lib/module/db/MediaMapper.js.map +1 -0
- package/lib/module/db/MediaRepository.js +242 -0
- package/lib/module/db/MediaRepository.js.map +1 -0
- package/lib/module/db/index.js +41 -0
- package/lib/module/db/index.js.map +1 -0
- package/lib/module/db/migrations.js +180 -0
- package/lib/module/db/migrations.js.map +1 -0
- package/lib/module/db/react-native-sqlcipher.d.js +2 -0
- package/lib/module/db/react-native-sqlcipher.d.js.map +1 -0
- package/lib/module/db/secureKey.js +87 -0
- package/lib/module/db/secureKey.js.map +1 -0
- package/lib/module/db/types.js +57 -0
- package/lib/module/db/types.js.map +1 -0
- package/lib/module/db/useMediaDatabase.js +123 -0
- package/lib/module/db/useMediaDatabase.js.map +1 -0
- package/lib/module/defaultIcons.js +2259 -0
- package/lib/module/defaultIcons.js.map +1 -0
- package/lib/module/deviceCapabilities.js +408 -0
- package/lib/module/deviceCapabilities.js.map +1 -0
- package/lib/module/errors.js +267 -0
- package/lib/module/errors.js.map +1 -0
- package/lib/module/iconConfig.js +796 -0
- package/lib/module/iconConfig.js.map +1 -0
- package/lib/module/icons.js +514 -0
- package/lib/module/icons.js.map +1 -0
- package/lib/module/index.js +251 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/jest-globals.d.js +2 -0
- package/lib/module/jest-globals.d.js.map +1 -0
- package/lib/module/library/MediaLibrary.js +107 -0
- package/lib/module/library/MediaLibrary.js.map +1 -0
- package/lib/module/library/MediaLibraryScreen.js +2597 -0
- package/lib/module/library/MediaLibraryScreen.js.map +1 -0
- package/lib/module/library/components/AudioPreview.js +74 -0
- package/lib/module/library/components/AudioPreview.js.map +1 -0
- package/lib/module/library/components/DocumentPreview.js +331 -0
- package/lib/module/library/components/DocumentPreview.js.map +1 -0
- package/lib/module/library/components/ExpandableFab.js +343 -0
- package/lib/module/library/components/ExpandableFab.js.map +1 -0
- package/lib/module/library/components/FileTiles.js +251 -0
- package/lib/module/library/components/FileTiles.js.map +1 -0
- package/lib/module/library/components/ImagePreview.js +70 -0
- package/lib/module/library/components/ImagePreview.js.map +1 -0
- package/lib/module/library/components/MediaMetadataHeader.js +175 -0
- package/lib/module/library/components/MediaMetadataHeader.js.map +1 -0
- package/lib/module/library/components/RecordAudioScreen.js +816 -0
- package/lib/module/library/components/RecordAudioScreen.js.map +1 -0
- package/lib/module/library/components/VideoPreview.js +453 -0
- package/lib/module/library/components/VideoPreview.js.map +1 -0
- package/lib/module/library/components/ViewerCounter.js +55 -0
- package/lib/module/library/components/ViewerCounter.js.map +1 -0
- package/lib/module/library/compressionEstimate.js +507 -0
- package/lib/module/library/compressionEstimate.js.map +1 -0
- package/lib/module/library/fileMetadata.js +196 -0
- package/lib/module/library/fileMetadata.js.map +1 -0
- package/lib/module/library/index.js +42 -0
- package/lib/module/library/index.js.map +1 -0
- package/lib/module/library/libraryIconRegistry.js +69 -0
- package/lib/module/library/libraryIconRegistry.js.map +1 -0
- package/lib/module/library/libraryIcons.js +858 -0
- package/lib/module/library/libraryIcons.js.map +1 -0
- package/lib/module/library/localizedFormat.js +181 -0
- package/lib/module/library/localizedFormat.js.map +1 -0
- package/lib/module/library/palette.js +225 -0
- package/lib/module/library/palette.js.map +1 -0
- package/lib/module/library/responsive.js +53 -0
- package/lib/module/library/responsive.js.map +1 -0
- package/lib/module/locales.js +416 -0
- package/lib/module/locales.js.map +1 -0
- package/lib/module/localization.js +1064 -0
- package/lib/module/localization.js.map +1 -0
- package/lib/module/logger.js +20 -0
- package/lib/module/logger.js.map +1 -0
- package/lib/module/lowMemoryCache.js +206 -0
- package/lib/module/lowMemoryCache.js.map +1 -0
- package/lib/module/mediaHistory.js +33 -0
- package/lib/module/mediaHistory.js.map +1 -0
- package/lib/module/mediaStorageService.js +402 -0
- package/lib/module/mediaStorageService.js.map +1 -0
- package/lib/module/memory.js +79 -0
- package/lib/module/memory.js.map +1 -0
- package/lib/module/nativeActions.js +307 -0
- package/lib/module/nativeActions.js.map +1 -0
- package/lib/module/nativeComponentSupport.js +61 -0
- package/lib/module/nativeComponentSupport.js.map +1 -0
- package/lib/module/networkPerformance.js +24 -0
- package/lib/module/networkPerformance.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/performance.js +104 -0
- package/lib/module/performance.js.map +1 -0
- package/lib/module/performanceMonitor.js +155 -0
- package/lib/module/performanceMonitor.js.map +1 -0
- package/lib/module/permissions.js +370 -0
- package/lib/module/permissions.js.map +1 -0
- package/lib/module/rendering.js +40 -0
- package/lib/module/rendering.js.map +1 -0
- package/lib/module/security.js +18 -0
- package/lib/module/security.js.map +1 -0
- package/lib/module/state.js +266 -0
- package/lib/module/state.js.map +1 -0
- package/lib/module/storage.js +400 -0
- package/lib/module/storage.js.map +1 -0
- package/lib/module/theme.js +390 -0
- package/lib/module/theme.js.map +1 -0
- package/lib/module/types.js +4 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils.js +115 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/module/validation.js +288 -0
- package/lib/module/validation.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/AudioPlayerContext.d.ts +27 -0
- package/lib/typescript/src/AudioPlayerContext.d.ts.map +1 -0
- package/lib/typescript/src/CameraPreview.d.ts +13 -0
- package/lib/typescript/src/CameraPreview.d.ts.map +1 -0
- package/lib/typescript/src/NativeAnimatedImageView.d.ts +33 -0
- package/lib/typescript/src/NativeAnimatedImageView.d.ts.map +1 -0
- package/lib/typescript/src/NativeAudioPlayerView.d.ts +12 -0
- package/lib/typescript/src/NativeAudioPlayerView.d.ts.map +1 -0
- package/lib/typescript/src/NativeBlurView.d.ts +12 -0
- package/lib/typescript/src/NativeBlurView.d.ts.map +1 -0
- package/lib/typescript/src/NativeCustomCamera.d.ts +167 -0
- package/lib/typescript/src/NativeCustomCamera.d.ts.map +1 -0
- package/lib/typescript/src/NativeCustomCamera.web.d.ts +47 -0
- package/lib/typescript/src/NativeCustomCamera.web.d.ts.map +1 -0
- package/lib/typescript/src/NativeCustomVideoView.d.ts +30 -0
- package/lib/typescript/src/NativeCustomVideoView.d.ts.map +1 -0
- package/lib/typescript/src/NativeDocumentPreviewView.d.ts +48 -0
- package/lib/typescript/src/NativeDocumentPreviewView.d.ts.map +1 -0
- package/lib/typescript/src/NativeMediaThumbnailView.d.ts +54 -0
- package/lib/typescript/src/NativeMediaThumbnailView.d.ts.map +1 -0
- package/lib/typescript/src/NativeSvgIcon.d.ts +25 -0
- package/lib/typescript/src/NativeSvgIcon.d.ts.map +1 -0
- package/lib/typescript/src/ResponsivePreviewContainer.d.ts +92 -0
- package/lib/typescript/src/ResponsivePreviewContainer.d.ts.map +1 -0
- package/lib/typescript/src/accessibility.d.ts +20 -0
- package/lib/typescript/src/accessibility.d.ts.map +1 -0
- package/lib/typescript/src/config.d.ts +145 -0
- package/lib/typescript/src/config.d.ts.map +1 -0
- package/lib/typescript/src/cpuOptimization.d.ts +63 -0
- package/lib/typescript/src/cpuOptimization.d.ts.map +1 -0
- package/lib/typescript/src/db/DatabaseManager.d.ts +48 -0
- package/lib/typescript/src/db/DatabaseManager.d.ts.map +1 -0
- package/lib/typescript/src/db/MediaMapper.d.ts +77 -0
- package/lib/typescript/src/db/MediaMapper.d.ts.map +1 -0
- package/lib/typescript/src/db/MediaRepository.d.ts +66 -0
- package/lib/typescript/src/db/MediaRepository.d.ts.map +1 -0
- package/lib/typescript/src/db/index.d.ts +23 -0
- package/lib/typescript/src/db/index.d.ts.map +1 -0
- package/lib/typescript/src/db/migrations.d.ts +31 -0
- package/lib/typescript/src/db/migrations.d.ts.map +1 -0
- package/lib/typescript/src/db/secureKey.d.ts +10 -0
- package/lib/typescript/src/db/secureKey.d.ts.map +1 -0
- package/lib/typescript/src/db/types.d.ts +115 -0
- package/lib/typescript/src/db/types.d.ts.map +1 -0
- package/lib/typescript/src/db/useMediaDatabase.d.ts +41 -0
- package/lib/typescript/src/db/useMediaDatabase.d.ts.map +1 -0
- package/lib/typescript/src/defaultIcons.d.ts +139 -0
- package/lib/typescript/src/defaultIcons.d.ts.map +1 -0
- package/lib/typescript/src/deviceCapabilities.d.ts +92 -0
- package/lib/typescript/src/deviceCapabilities.d.ts.map +1 -0
- package/lib/typescript/src/errors.d.ts +95 -0
- package/lib/typescript/src/errors.d.ts.map +1 -0
- package/lib/typescript/src/iconConfig.d.ts +176 -0
- package/lib/typescript/src/iconConfig.d.ts.map +1 -0
- package/lib/typescript/src/icons.d.ts +217 -0
- package/lib/typescript/src/icons.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +104 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/library/MediaLibrary.d.ts +57 -0
- package/lib/typescript/src/library/MediaLibrary.d.ts.map +1 -0
- package/lib/typescript/src/library/MediaLibraryScreen.d.ts +51 -0
- package/lib/typescript/src/library/MediaLibraryScreen.d.ts.map +1 -0
- package/lib/typescript/src/library/components/AudioPreview.d.ts +6 -0
- package/lib/typescript/src/library/components/AudioPreview.d.ts.map +1 -0
- package/lib/typescript/src/library/components/DocumentPreview.d.ts +10 -0
- package/lib/typescript/src/library/components/DocumentPreview.d.ts.map +1 -0
- package/lib/typescript/src/library/components/ExpandableFab.d.ts +39 -0
- package/lib/typescript/src/library/components/ExpandableFab.d.ts.map +1 -0
- package/lib/typescript/src/library/components/FileTiles.d.ts +8 -0
- package/lib/typescript/src/library/components/FileTiles.d.ts.map +1 -0
- package/lib/typescript/src/library/components/ImagePreview.d.ts +5 -0
- package/lib/typescript/src/library/components/ImagePreview.d.ts.map +1 -0
- package/lib/typescript/src/library/components/MediaMetadataHeader.d.ts +16 -0
- package/lib/typescript/src/library/components/MediaMetadataHeader.d.ts.map +1 -0
- package/lib/typescript/src/library/components/RecordAudioScreen.d.ts +8 -0
- package/lib/typescript/src/library/components/RecordAudioScreen.d.ts.map +1 -0
- package/lib/typescript/src/library/components/VideoPreview.d.ts +20 -0
- package/lib/typescript/src/library/components/VideoPreview.d.ts.map +1 -0
- package/lib/typescript/src/library/components/ViewerCounter.d.ts +13 -0
- package/lib/typescript/src/library/components/ViewerCounter.d.ts.map +1 -0
- package/lib/typescript/src/library/compressionEstimate.d.ts +313 -0
- package/lib/typescript/src/library/compressionEstimate.d.ts.map +1 -0
- package/lib/typescript/src/library/fileMetadata.d.ts +33 -0
- package/lib/typescript/src/library/fileMetadata.d.ts.map +1 -0
- package/lib/typescript/src/library/index.d.ts +40 -0
- package/lib/typescript/src/library/index.d.ts.map +1 -0
- package/lib/typescript/src/library/libraryIconRegistry.d.ts +35 -0
- package/lib/typescript/src/library/libraryIconRegistry.d.ts.map +1 -0
- package/lib/typescript/src/library/libraryIcons.d.ts +85 -0
- package/lib/typescript/src/library/libraryIcons.d.ts.map +1 -0
- package/lib/typescript/src/library/localizedFormat.d.ts +49 -0
- package/lib/typescript/src/library/localizedFormat.d.ts.map +1 -0
- package/lib/typescript/src/library/palette.d.ts +104 -0
- package/lib/typescript/src/library/palette.d.ts.map +1 -0
- package/lib/typescript/src/library/responsive.d.ts +15 -0
- package/lib/typescript/src/library/responsive.d.ts.map +1 -0
- package/lib/typescript/src/locales.d.ts +103 -0
- package/lib/typescript/src/locales.d.ts.map +1 -0
- package/lib/typescript/src/localization.d.ts +1051 -0
- package/lib/typescript/src/localization.d.ts.map +1 -0
- package/lib/typescript/src/logger.d.ts +4 -0
- package/lib/typescript/src/logger.d.ts.map +1 -0
- package/lib/typescript/src/lowMemoryCache.d.ts +64 -0
- package/lib/typescript/src/lowMemoryCache.d.ts.map +1 -0
- package/lib/typescript/src/mediaHistory.d.ts +3 -0
- package/lib/typescript/src/mediaHistory.d.ts.map +1 -0
- package/lib/typescript/src/mediaStorageService.d.ts +155 -0
- package/lib/typescript/src/mediaStorageService.d.ts.map +1 -0
- package/lib/typescript/src/memory.d.ts +21 -0
- package/lib/typescript/src/memory.d.ts.map +1 -0
- package/lib/typescript/src/nativeActions.d.ts +174 -0
- package/lib/typescript/src/nativeActions.d.ts.map +1 -0
- package/lib/typescript/src/nativeComponentSupport.d.ts +30 -0
- package/lib/typescript/src/nativeComponentSupport.d.ts.map +1 -0
- package/lib/typescript/src/networkPerformance.d.ts +12 -0
- package/lib/typescript/src/networkPerformance.d.ts.map +1 -0
- package/lib/typescript/src/performance.d.ts +32 -0
- package/lib/typescript/src/performance.d.ts.map +1 -0
- package/lib/typescript/src/performanceMonitor.d.ts +45 -0
- package/lib/typescript/src/performanceMonitor.d.ts.map +1 -0
- package/lib/typescript/src/permissions.d.ts +132 -0
- package/lib/typescript/src/permissions.d.ts.map +1 -0
- package/lib/typescript/src/rendering.d.ts +9 -0
- package/lib/typescript/src/rendering.d.ts.map +1 -0
- package/lib/typescript/src/security.d.ts +6 -0
- package/lib/typescript/src/security.d.ts.map +1 -0
- package/lib/typescript/src/state.d.ts +102 -0
- package/lib/typescript/src/state.d.ts.map +1 -0
- package/lib/typescript/src/storage.d.ts +117 -0
- package/lib/typescript/src/storage.d.ts.map +1 -0
- package/lib/typescript/src/theme.d.ts +15 -0
- package/lib/typescript/src/theme.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +802 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils.d.ts +50 -0
- package/lib/typescript/src/utils.d.ts.map +1 -0
- package/lib/typescript/src/validation.d.ts +52 -0
- package/lib/typescript/src/validation.d.ts.map +1 -0
- package/package.json +204 -0
- package/react-native.config.js +17 -0
- package/src/AudioPlayerContext.tsx +220 -0
- package/src/CameraPreview.tsx +352 -0
- package/src/NativeAnimatedImageView.tsx +71 -0
- package/src/NativeAudioPlayerView.tsx +39 -0
- package/src/NativeBlurView.tsx +40 -0
- package/src/NativeCustomCamera.ts +305 -0
- package/src/NativeCustomCamera.web.ts +192 -0
- package/src/NativeCustomVideoView.ts +30 -0
- package/src/NativeDocumentPreviewView.tsx +196 -0
- package/src/NativeMediaThumbnailView.tsx +167 -0
- package/src/NativeSvgIcon.tsx +46 -0
- package/src/ResponsivePreviewContainer.tsx +227 -0
- package/src/accessibility.ts +80 -0
- package/src/config.ts +406 -0
- package/src/cpuOptimization.ts +365 -0
- package/src/db/DatabaseManager.ts +212 -0
- package/src/db/MediaMapper.ts +377 -0
- package/src/db/MediaRepository.ts +313 -0
- package/src/db/index.ts +73 -0
- package/src/db/migrations.ts +222 -0
- package/src/db/react-native-sqlcipher.d.ts +76 -0
- package/src/db/secureKey.ts +100 -0
- package/src/db/types.ts +123 -0
- package/src/db/useMediaDatabase.ts +191 -0
- package/src/defaultIcons.tsx +2390 -0
- package/src/deviceCapabilities.ts +438 -0
- package/src/errors.ts +350 -0
- package/src/iconConfig.tsx +962 -0
- package/src/icons.tsx +788 -0
- package/src/index.tsx +763 -0
- package/src/jest-globals.d.ts +9 -0
- package/src/library/MediaLibrary.tsx +141 -0
- package/src/library/MediaLibraryScreen.tsx +3003 -0
- package/src/library/components/AudioPreview.tsx +73 -0
- package/src/library/components/DocumentPreview.tsx +361 -0
- package/src/library/components/ExpandableFab.tsx +342 -0
- package/src/library/components/FileTiles.tsx +252 -0
- package/src/library/components/ImagePreview.tsx +72 -0
- package/src/library/components/MediaMetadataHeader.tsx +208 -0
- package/src/library/components/RecordAudioScreen.tsx +845 -0
- package/src/library/components/VideoPreview.tsx +478 -0
- package/src/library/components/ViewerCounter.tsx +71 -0
- package/src/library/compressionEstimate.ts +662 -0
- package/src/library/fileMetadata.ts +212 -0
- package/src/library/index.ts +66 -0
- package/src/library/libraryIconRegistry.tsx +86 -0
- package/src/library/libraryIcons.tsx +928 -0
- package/src/library/localizedFormat.ts +207 -0
- package/src/library/palette.ts +281 -0
- package/src/library/responsive.ts +49 -0
- package/src/locales.ts +381 -0
- package/src/localization.ts +1947 -0
- package/src/logger.ts +20 -0
- package/src/lowMemoryCache.ts +218 -0
- package/src/mediaHistory.ts +42 -0
- package/src/mediaStorageService.ts +546 -0
- package/src/memory.ts +102 -0
- package/src/nativeActions.ts +422 -0
- package/src/nativeComponentSupport.ts +60 -0
- package/src/networkPerformance.ts +30 -0
- package/src/performance.ts +137 -0
- package/src/performanceMonitor.ts +219 -0
- package/src/permissions.ts +403 -0
- package/src/rendering.ts +47 -0
- package/src/security.ts +19 -0
- package/src/state.ts +333 -0
- package/src/storage.ts +453 -0
- package/src/theme.tsx +467 -0
- package/src/types.ts +946 -0
- package/src/utils.ts +177 -0
- package/src/validation.ts +372 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useRef","useCallback","useMemo","View","Text","TouchableOpacity","StyleSheet","Modal","StatusBar","Platform","Animated","Easing","DeviceEventEmitter","AppState","Linking","wp","ms","fs","useLibraryPalette","checkMicrophonePermission","requestMicrophonePermission","startAudioRecording","stopAndPublishAudioRecording","cancelAudioRecording","pauseAudioRecording","resumeAudioRecording","useCameraLocalization","RenderIcon","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","METERING_INTERVAL_MS","MIN_RECORDING_MS","WAVEFORM_BARS","STATUS_BAR_INSET","OS","currentHeight","formatDuration","totalMs","totalSec","Math","floor","h","m","s","String","padStart","RecordAudioScreen","visible","onClose","onRecorded","t","palette","styles","makeStyles","state","setState","durationMs","setDurationMs","amplitudes","setAmplitudes","Array","fill","isPauseSupported","setIsPauseSupported","errorMessage","setErrorMessage","isRecording","isPaused","isStopping","isActive","isBusy","canRecord","hasError","timerRef","startTimeRef","pausedDurationRef","pauseStartRef","amplitudeSubRef","amplitudeBufferRef","amplitudeWriteIdx","pulseAnim","Value","current","pulseLoopRef","stoppingRef","durationMsRef","cleanup","clearInterval","remove","stop","setValue","ensurePermission","granted","result","title","message","buttonPositive","buttonNegative","e","startRecording","outputFormat","audioEncoder","audioSource","bitRate","sampleRate","meteringIntervalMs","Date","now","setInterval","paused","addListener","amp","normalised","min","max","buf","loop","sequence","timing","toValue","duration","easing","inOut","ease","useNativeDriver","start","msg","includes","handlePause","handleResume","handleStop","asset","handleCancel","Version","handleAppState","next","sub","addEventListener","event","nativeState","waveformBars","map","i","height","style","waveformBar","backgroundColor","primary","surfaceMuted","animationType","onRequestClose","undefined","transparent","statusBarTranslucent","children","container","barStyle","isDark","translucent","header","paddingTop","onPress","headerButton","activeOpacity","disabled","headerButtonText","headerTitle","content","centerContent","permissionIcon","name","size","color","textBright","permissionTitle","permissionSubtitle","error","retryButton","openSettings","retryButtonText","durationContainer","durationText","durationTextActive","pausedBadge","pausedBadgeText","waveformContainer","waveformRow","statusText","inlineError","controls","recordButton","recordButtonOuter","recordButtonInner","activeControls","controlButton","controlIcon","white","strokeWidth","controlLabel","accentOrange","success","opacity","stoppingIndicator","stoppingText","create","flex","appBackgroundDeepest","flexDirection","alignItems","justifyContent","paddingHorizontal","paddingBottom","width","paddingVertical","fontSize","fontWeight","borderRadius","surface","marginBottom","permissionIconText","textAlign","textFaded","lineHeight","marginTop","textDim","fontVariant","letterSpacing","gap","minHeight","borderWidth","borderColor","controlIconText"],"sourceRoot":"..\\..\\..\\..\\src","sources":["library/components/RecordAudioScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* VideoPreview — in-app video preview for a video asset in the full-screen viewer.
|
|
5
|
+
*
|
|
6
|
+
* Provides a polished, native-feel player on top of the native aspect-fit video surface
|
|
7
|
+
* (NativeVideoViewManager owns rotation-correct, contain scaling — the frame is never
|
|
8
|
+
* stretched, zoomed, or cropped for any resolution / orientation):
|
|
9
|
+
* - a lighter, centred play / pause control,
|
|
10
|
+
* - ±10s skip-back / skip-forward controls,
|
|
11
|
+
* - a draggable seek bar with current-time and total-duration readouts.
|
|
12
|
+
*
|
|
13
|
+
* All player state (play, pause, seek, forward, backward, replay, end-of-video) is kept in
|
|
14
|
+
* sync with the native player through onPlaybackProgress / onPlaybackEnded and the `seekTo`
|
|
15
|
+
* view command.
|
|
16
|
+
*/
|
|
17
|
+
import { useCallback, useMemo, useRef, useState } from 'react';
|
|
18
|
+
import { View, TouchableOpacity, StyleSheet, Animated, PanResponder, UIManager, findNodeHandle, Text, Platform } from 'react-native';
|
|
19
|
+
import { NativeCustomVideoView } from "../../NativeCustomVideoView.js";
|
|
20
|
+
import { RenderIcon } from "../../icons.js";
|
|
21
|
+
import { useCameraLocalization } from "../../localization.js";
|
|
22
|
+
import { useLibraryPalette } from "../palette.js";
|
|
23
|
+
import { localizeDigits } from "../localizedFormat.js";
|
|
24
|
+
|
|
25
|
+
/** How far a single skip-back / skip-forward tap moves the playhead. */
|
|
26
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
27
|
+
const SEEK_STEP_MS = 10000;
|
|
28
|
+
const SEEK_STEP_LABEL = '10';
|
|
29
|
+
// While the finger is dragging the scrubber the thumb tracks it every frame, but native seeks
|
|
30
|
+
// are throttled to this cadence so a fast drag can't flood MediaPlayer with seek requests.
|
|
31
|
+
// A final, precise seek always fires on release, so the end position is exact.
|
|
32
|
+
const NATIVE_SEEK_MIN_INTERVAL_MS = 50;
|
|
33
|
+
// Treat the last 100ms as "ended" so a replay tap is offered even if progress stops a frame short.
|
|
34
|
+
const END_EPSILON_MS = 100;
|
|
35
|
+
const clamp = (value, min, max) => Math.min(Math.max(value, min), max);
|
|
36
|
+
const formatTime = (ms, locale) => {
|
|
37
|
+
if (!Number.isFinite(ms) || ms < 0) return localizeDigits('0:00', locale);
|
|
38
|
+
const totalSeconds = Math.floor(ms / 1000);
|
|
39
|
+
const minutes = Math.floor(totalSeconds / 60);
|
|
40
|
+
const seconds = totalSeconds % 60;
|
|
41
|
+
return localizeDigits(`${minutes}:${String(seconds).padStart(2, '0')}`, locale);
|
|
42
|
+
};
|
|
43
|
+
export const VideoPreview = ({
|
|
44
|
+
asset,
|
|
45
|
+
paused,
|
|
46
|
+
onTogglePause,
|
|
47
|
+
onPlaybackEnded,
|
|
48
|
+
active,
|
|
49
|
+
controlsVisible,
|
|
50
|
+
onVideoAreaPress,
|
|
51
|
+
onControlInteraction
|
|
52
|
+
}) => {
|
|
53
|
+
const {
|
|
54
|
+
t,
|
|
55
|
+
locale
|
|
56
|
+
} = useCameraLocalization();
|
|
57
|
+
const palette = useLibraryPalette();
|
|
58
|
+
const styles = useMemo(() => makeStyles(palette), [palette]);
|
|
59
|
+
const seekLabel = localizeDigits(SEEK_STEP_LABEL, locale);
|
|
60
|
+
const previewUri = asset.documentUri || asset.uri;
|
|
61
|
+
const nativeRef = useRef(null);
|
|
62
|
+
const [currentTimeMs, setCurrentTimeMs] = useState(0);
|
|
63
|
+
const [durationMs, setDurationMs] = useState(0);
|
|
64
|
+
|
|
65
|
+
// Measured width of the scrubber track, used to turn a touch X into a 0..1 ratio.
|
|
66
|
+
const trackWidthRef = useRef(0);
|
|
67
|
+
// True while the finger is down on the scrubber: native progress events are ignored for the
|
|
68
|
+
// playhead so the thumb tracks the finger instead of being yanked back by the player's
|
|
69
|
+
// reported position (which lags a drag by up to one 200ms progress tick).
|
|
70
|
+
const isScrubbingRef = useRef(false);
|
|
71
|
+
// Latest scrub ratio, kept in a ref for the terminate handler (which has no event X).
|
|
72
|
+
const scrubValueRef = useRef(0);
|
|
73
|
+
// Timestamp of the last native seek dispatched mid-drag (throttling — see the constant above).
|
|
74
|
+
const lastNativeSeekRef = useRef(0);
|
|
75
|
+
// The one source of truth for the fill + thumb visual position. Driving it with `setValue`
|
|
76
|
+
// moves the connected Animated.Views directly (no React reconciliation), so the thumb tracks
|
|
77
|
+
// the finger every frame instead of dropping frames on per-move `setState` re-renders.
|
|
78
|
+
const scrubAnimationRef = useRef(new Animated.Value(0)).current;
|
|
79
|
+
const syncSeekFromNative = useCallback((nextCurrent, nextDuration) => {
|
|
80
|
+
const safeDuration = Number.isFinite(nextDuration) ? Math.max(0, nextDuration) : 0;
|
|
81
|
+
const safeCurrent = Number.isFinite(nextCurrent) ? Math.max(0, nextCurrent) : 0;
|
|
82
|
+
const boundedCurrent = safeDuration > 0 ? Math.min(safeCurrent, safeDuration) : 0;
|
|
83
|
+
const ratio = safeDuration > 0 ? boundedCurrent / safeDuration : 0;
|
|
84
|
+
setDurationMs(safeDuration);
|
|
85
|
+
setCurrentTimeMs(boundedCurrent);
|
|
86
|
+
scrubValueRef.current = ratio;
|
|
87
|
+
scrubAnimationRef.setValue(ratio);
|
|
88
|
+
}, []);
|
|
89
|
+
|
|
90
|
+
// Low-level: send the seek command to the native player only (no optimistic UI update). The
|
|
91
|
+
// native side clamps to the real duration and uses SEEK_CLOSEST, and every call is guarded, so
|
|
92
|
+
// rapid repeated seeks (a fast drag) can neither crash nor reset the clip.
|
|
93
|
+
const dispatchNativeSeek = useCallback(targetMs => {
|
|
94
|
+
const handle = findNodeHandle(nativeRef.current);
|
|
95
|
+
if (handle === null || handle === undefined) return;
|
|
96
|
+
const safeMs = Number.isFinite(targetMs) ? Math.max(0, Math.round(targetMs)) : 0;
|
|
97
|
+
const manager = UIManager.NativeCustomVideoView;
|
|
98
|
+
const commandId = manager?.Commands?.seekTo ?? 1;
|
|
99
|
+
if (Platform.OS === 'android') {
|
|
100
|
+
UIManager.dispatchViewManagerCommand(handle, commandId, [safeMs]);
|
|
101
|
+
}
|
|
102
|
+
}, []);
|
|
103
|
+
|
|
104
|
+
// Seek to an absolute position and immediately reflect it in the UI (skip buttons + replay).
|
|
105
|
+
const seekTo = useCallback(targetMs => {
|
|
106
|
+
const bounded = durationMs > 0 ? clamp(targetMs, 0, durationMs) : Math.max(0, targetMs);
|
|
107
|
+
dispatchNativeSeek(bounded);
|
|
108
|
+
const ratio = durationMs > 0 ? bounded / durationMs : 0;
|
|
109
|
+
setCurrentTimeMs(bounded);
|
|
110
|
+
scrubValueRef.current = ratio;
|
|
111
|
+
// Move the thumb immediately (skip / replay) rather than waiting for the next progress tick.
|
|
112
|
+
scrubAnimationRef.setValue(ratio);
|
|
113
|
+
}, [durationMs, dispatchNativeSeek]);
|
|
114
|
+
const handleSeekDelta = useCallback(deltaMs => {
|
|
115
|
+
const base = durationMs > 0 ? currentTimeMs : 0;
|
|
116
|
+
seekTo(base + deltaMs);
|
|
117
|
+
}, [currentTimeMs, durationMs, seekTo]);
|
|
118
|
+
const handlePrimaryAction = useCallback(() => {
|
|
119
|
+
const ended = durationMs > 0 && currentTimeMs >= durationMs - END_EPSILON_MS;
|
|
120
|
+
if (ended) {
|
|
121
|
+
// Replay from the start; if we were paused at the end, resume playing too.
|
|
122
|
+
seekTo(0);
|
|
123
|
+
if (paused) onTogglePause();
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
onTogglePause();
|
|
127
|
+
}, [currentTimeMs, durationMs, onTogglePause, paused, seekTo]);
|
|
128
|
+
|
|
129
|
+
// Drag/tap the scrubber. The thumb + fill are moved every frame through the Animated.Value
|
|
130
|
+
// (a direct native update — no React re-render), while the time-label `setState` and the native
|
|
131
|
+
// seek are throttled together so a fast drag neither janks on reconciliation nor floods
|
|
132
|
+
// MediaPlayer. A final, precise update always fires on release (`commit`).
|
|
133
|
+
const scrubTo = useCallback((ratio, commit) => {
|
|
134
|
+
const clampedRatio = clamp(ratio, 0, 1);
|
|
135
|
+
const target = durationMs > 0 ? clampedRatio * durationMs : 0;
|
|
136
|
+
scrubValueRef.current = clampedRatio;
|
|
137
|
+
scrubAnimationRef.setValue(clampedRatio);
|
|
138
|
+
const now = Date.now();
|
|
139
|
+
if (commit) {
|
|
140
|
+
lastNativeSeekRef.current = now;
|
|
141
|
+
setCurrentTimeMs(target);
|
|
142
|
+
dispatchNativeSeek(target);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (now - lastNativeSeekRef.current >= NATIVE_SEEK_MIN_INTERVAL_MS) {
|
|
146
|
+
lastNativeSeekRef.current = now;
|
|
147
|
+
setCurrentTimeMs(target);
|
|
148
|
+
dispatchNativeSeek(target);
|
|
149
|
+
}
|
|
150
|
+
}, [durationMs, dispatchNativeSeek]);
|
|
151
|
+
const panResponder = useMemo(() => PanResponder.create({
|
|
152
|
+
onStartShouldSetPanResponder: () => true,
|
|
153
|
+
onMoveShouldSetPanResponder: () => true,
|
|
154
|
+
// Win the gesture over the enclosing horizontal pager so a sideways drag on the bar
|
|
155
|
+
// scrubs the video instead of paging to the next slide.
|
|
156
|
+
onMoveShouldSetPanResponderCapture: () => true,
|
|
157
|
+
onPanResponderTerminationRequest: () => false,
|
|
158
|
+
onPanResponderGrant: evt => {
|
|
159
|
+
onControlInteraction();
|
|
160
|
+
isScrubbingRef.current = true;
|
|
161
|
+
const width = trackWidthRef.current;
|
|
162
|
+
if (width > 0) scrubTo(evt.nativeEvent.locationX / width, false);
|
|
163
|
+
},
|
|
164
|
+
onPanResponderMove: evt => {
|
|
165
|
+
const width = trackWidthRef.current;
|
|
166
|
+
if (width > 0) scrubTo(evt.nativeEvent.locationX / width, false);
|
|
167
|
+
},
|
|
168
|
+
onPanResponderRelease: evt => {
|
|
169
|
+
const width = trackWidthRef.current;
|
|
170
|
+
const ratio = width > 0 ? evt.nativeEvent.locationX / width : scrubValueRef.current;
|
|
171
|
+
scrubTo(ratio, true);
|
|
172
|
+
isScrubbingRef.current = false;
|
|
173
|
+
// Keep the controls visible after the drag finishes (they no longer auto-hide).
|
|
174
|
+
onControlInteraction();
|
|
175
|
+
},
|
|
176
|
+
onPanResponderTerminate: () => {
|
|
177
|
+
scrubTo(scrubValueRef.current, true);
|
|
178
|
+
isScrubbingRef.current = false;
|
|
179
|
+
}
|
|
180
|
+
}), [scrubTo, onControlInteraction]);
|
|
181
|
+
return /*#__PURE__*/_jsx(View, {
|
|
182
|
+
style: styles.wrap,
|
|
183
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
184
|
+
style: styles.videoWrapper,
|
|
185
|
+
children: [/*#__PURE__*/_jsx(NativeCustomVideoView, {
|
|
186
|
+
ref: nativeRef,
|
|
187
|
+
src: previewUri,
|
|
188
|
+
style: styles.video,
|
|
189
|
+
active: active,
|
|
190
|
+
paused: paused,
|
|
191
|
+
onPlaybackProgress: event => {
|
|
192
|
+
const {
|
|
193
|
+
currentTimeMs: nextCurrent,
|
|
194
|
+
durationMs: nextDuration
|
|
195
|
+
} = event.nativeEvent;
|
|
196
|
+
if (isScrubbingRef.current) {
|
|
197
|
+
// Keep the duration fresh, but don't fight the finger over the playhead.
|
|
198
|
+
const safeDuration = Number.isFinite(nextDuration) ? Math.max(0, nextDuration) : 0;
|
|
199
|
+
setDurationMs(safeDuration);
|
|
200
|
+
} else {
|
|
201
|
+
syncSeekFromNative(nextCurrent, nextDuration);
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
onPlaybackEnded: event => {
|
|
205
|
+
const endedDuration = event.nativeEvent.durationMs;
|
|
206
|
+
syncSeekFromNative(endedDuration, endedDuration);
|
|
207
|
+
onPlaybackEnded?.();
|
|
208
|
+
}
|
|
209
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
210
|
+
style: StyleSheet.absoluteFill,
|
|
211
|
+
activeOpacity: 1,
|
|
212
|
+
onPress: onVideoAreaPress,
|
|
213
|
+
accessibilityLabel: t('toggleVideoControls')
|
|
214
|
+
}), controlsVisible && /*#__PURE__*/_jsxs(_Fragment, {
|
|
215
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
216
|
+
style: styles.controlsOverlay,
|
|
217
|
+
pointerEvents: "box-none",
|
|
218
|
+
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
219
|
+
style: styles.skipButton,
|
|
220
|
+
activeOpacity: 0.7,
|
|
221
|
+
hitSlop: {
|
|
222
|
+
top: 8,
|
|
223
|
+
bottom: 8,
|
|
224
|
+
left: 8,
|
|
225
|
+
right: 8
|
|
226
|
+
},
|
|
227
|
+
onPress: () => {
|
|
228
|
+
onControlInteraction();
|
|
229
|
+
handleSeekDelta(-SEEK_STEP_MS);
|
|
230
|
+
},
|
|
231
|
+
accessibilityRole: "button",
|
|
232
|
+
accessibilityLabel: t('seekBackward', seekLabel),
|
|
233
|
+
children: /*#__PURE__*/_jsx(RenderIcon, {
|
|
234
|
+
name: "circular_seek",
|
|
235
|
+
direction: "back",
|
|
236
|
+
label: seekLabel,
|
|
237
|
+
size: 24,
|
|
238
|
+
color: palette.whiteA90,
|
|
239
|
+
strokeWidth: 2
|
|
240
|
+
})
|
|
241
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
242
|
+
style: styles.playButton,
|
|
243
|
+
activeOpacity: 0.8,
|
|
244
|
+
hitSlop: {
|
|
245
|
+
top: 10,
|
|
246
|
+
bottom: 10,
|
|
247
|
+
left: 10,
|
|
248
|
+
right: 10
|
|
249
|
+
},
|
|
250
|
+
onPress: () => {
|
|
251
|
+
onControlInteraction();
|
|
252
|
+
handlePrimaryAction();
|
|
253
|
+
},
|
|
254
|
+
accessibilityRole: "button",
|
|
255
|
+
accessibilityLabel: t(paused ? 'play' : 'pause'),
|
|
256
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
257
|
+
style: styles.playBackdrop,
|
|
258
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
259
|
+
style: {
|
|
260
|
+
paddingLeft: paused ? 3 : 0
|
|
261
|
+
},
|
|
262
|
+
children: /*#__PURE__*/_jsx(RenderIcon, {
|
|
263
|
+
name: paused ? 'play' : 'pause',
|
|
264
|
+
size: 30,
|
|
265
|
+
color: palette.whiteA90
|
|
266
|
+
})
|
|
267
|
+
})
|
|
268
|
+
})
|
|
269
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
270
|
+
style: styles.skipButton,
|
|
271
|
+
activeOpacity: 0.7,
|
|
272
|
+
hitSlop: {
|
|
273
|
+
top: 8,
|
|
274
|
+
bottom: 8,
|
|
275
|
+
left: 8,
|
|
276
|
+
right: 8
|
|
277
|
+
},
|
|
278
|
+
onPress: () => {
|
|
279
|
+
onControlInteraction();
|
|
280
|
+
handleSeekDelta(SEEK_STEP_MS);
|
|
281
|
+
},
|
|
282
|
+
accessibilityRole: "button",
|
|
283
|
+
accessibilityLabel: t('seekForward', seekLabel),
|
|
284
|
+
children: /*#__PURE__*/_jsx(RenderIcon, {
|
|
285
|
+
name: "circular_seek",
|
|
286
|
+
direction: "forward",
|
|
287
|
+
label: seekLabel,
|
|
288
|
+
size: 24,
|
|
289
|
+
color: palette.whiteA90,
|
|
290
|
+
strokeWidth: 2
|
|
291
|
+
})
|
|
292
|
+
})]
|
|
293
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
294
|
+
style: styles.scrubberWrap,
|
|
295
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
296
|
+
style: styles.timeRow,
|
|
297
|
+
pointerEvents: "none",
|
|
298
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
299
|
+
style: styles.timeLabel,
|
|
300
|
+
children: formatTime(currentTimeMs, locale)
|
|
301
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
302
|
+
style: styles.timeLabel,
|
|
303
|
+
children: formatTime(durationMs, locale)
|
|
304
|
+
})]
|
|
305
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
306
|
+
style: styles.scrubberTouch,
|
|
307
|
+
onLayout: event => {
|
|
308
|
+
trackWidthRef.current = event.nativeEvent.layout.width;
|
|
309
|
+
},
|
|
310
|
+
...panResponder.panHandlers,
|
|
311
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
312
|
+
style: styles.scrubberTrack,
|
|
313
|
+
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
314
|
+
style: [styles.scrubberFill, {
|
|
315
|
+
width: scrubAnimationRef.interpolate({
|
|
316
|
+
inputRange: [0, 1],
|
|
317
|
+
outputRange: ['0%', '100%']
|
|
318
|
+
})
|
|
319
|
+
}]
|
|
320
|
+
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
321
|
+
style: [styles.scrubberThumb, {
|
|
322
|
+
left: scrubAnimationRef.interpolate({
|
|
323
|
+
inputRange: [0, 1],
|
|
324
|
+
outputRange: ['0%', '100%']
|
|
325
|
+
})
|
|
326
|
+
}]
|
|
327
|
+
})]
|
|
328
|
+
})
|
|
329
|
+
})]
|
|
330
|
+
})]
|
|
331
|
+
})]
|
|
332
|
+
})
|
|
333
|
+
});
|
|
334
|
+
};
|
|
335
|
+
const makeStyles = palette => StyleSheet.create({
|
|
336
|
+
wrap: {
|
|
337
|
+
flex: 1,
|
|
338
|
+
width: '100%',
|
|
339
|
+
overflow: 'hidden'
|
|
340
|
+
},
|
|
341
|
+
videoWrapper: {
|
|
342
|
+
flex: 1,
|
|
343
|
+
justifyContent: 'center',
|
|
344
|
+
alignItems: 'center',
|
|
345
|
+
overflow: 'hidden',
|
|
346
|
+
position: 'relative',
|
|
347
|
+
minHeight: 220
|
|
348
|
+
},
|
|
349
|
+
video: {
|
|
350
|
+
flex: 1,
|
|
351
|
+
width: '100%',
|
|
352
|
+
height: '100%'
|
|
353
|
+
},
|
|
354
|
+
controlsOverlay: {
|
|
355
|
+
position: 'absolute',
|
|
356
|
+
left: 0,
|
|
357
|
+
right: 0,
|
|
358
|
+
bottom: 0,
|
|
359
|
+
top: 0,
|
|
360
|
+
flexDirection: 'row',
|
|
361
|
+
justifyContent: 'center',
|
|
362
|
+
alignItems: 'center',
|
|
363
|
+
gap: 26
|
|
364
|
+
},
|
|
365
|
+
skipButton: {
|
|
366
|
+
width: 44,
|
|
367
|
+
height: 44,
|
|
368
|
+
borderRadius: 22,
|
|
369
|
+
justifyContent: 'center',
|
|
370
|
+
alignItems: 'center',
|
|
371
|
+
backgroundColor: 'rgba(0,0,0,0.18)',
|
|
372
|
+
borderWidth: 1,
|
|
373
|
+
borderColor: 'rgba(255,255,255,0.12)'
|
|
374
|
+
},
|
|
375
|
+
playButton: {
|
|
376
|
+
justifyContent: 'center',
|
|
377
|
+
alignItems: 'center',
|
|
378
|
+
backgroundColor: 'transparent'
|
|
379
|
+
},
|
|
380
|
+
// Subtle scrim so the lighter icon stays clearly visible over any (even bright) frame.
|
|
381
|
+
playBackdrop: {
|
|
382
|
+
width: 58,
|
|
383
|
+
height: 58,
|
|
384
|
+
borderRadius: 29,
|
|
385
|
+
justifyContent: 'center',
|
|
386
|
+
alignItems: 'center',
|
|
387
|
+
backgroundColor: 'rgba(0,0,0,0.25)'
|
|
388
|
+
},
|
|
389
|
+
scrubberWrap: {
|
|
390
|
+
position: 'absolute',
|
|
391
|
+
left: 0,
|
|
392
|
+
right: 0,
|
|
393
|
+
bottom: 4,
|
|
394
|
+
width: '100%',
|
|
395
|
+
paddingHorizontal: 18,
|
|
396
|
+
paddingTop: 4,
|
|
397
|
+
paddingBottom: 2,
|
|
398
|
+
backgroundColor: 'rgba(0,0,0,0.22)'
|
|
399
|
+
},
|
|
400
|
+
// Tall, full-width hit area so the thin bar is still easy to grab and drag.
|
|
401
|
+
scrubberTouch: {
|
|
402
|
+
width: '100%',
|
|
403
|
+
height: 28,
|
|
404
|
+
justifyContent: 'center'
|
|
405
|
+
},
|
|
406
|
+
scrubberTrack: {
|
|
407
|
+
width: '100%',
|
|
408
|
+
height: 4,
|
|
409
|
+
borderRadius: 2,
|
|
410
|
+
position: 'relative',
|
|
411
|
+
justifyContent: 'center',
|
|
412
|
+
backgroundColor: 'rgba(255,255,255,0.25)'
|
|
413
|
+
},
|
|
414
|
+
scrubberFill: {
|
|
415
|
+
position: 'absolute',
|
|
416
|
+
left: 0,
|
|
417
|
+
top: 0,
|
|
418
|
+
height: 4,
|
|
419
|
+
borderRadius: 2,
|
|
420
|
+
backgroundColor: palette.primary
|
|
421
|
+
},
|
|
422
|
+
scrubberThumb: {
|
|
423
|
+
position: 'absolute',
|
|
424
|
+
top: -5,
|
|
425
|
+
width: 14,
|
|
426
|
+
height: 14,
|
|
427
|
+
borderRadius: 7,
|
|
428
|
+
backgroundColor: palette.white,
|
|
429
|
+
marginLeft: -7,
|
|
430
|
+
elevation: 3,
|
|
431
|
+
shadowColor: '#000',
|
|
432
|
+
shadowOpacity: 0.25,
|
|
433
|
+
shadowRadius: 4,
|
|
434
|
+
shadowOffset: {
|
|
435
|
+
width: 0,
|
|
436
|
+
height: 2
|
|
437
|
+
}
|
|
438
|
+
},
|
|
439
|
+
timeRow: {
|
|
440
|
+
flexDirection: 'row',
|
|
441
|
+
justifyContent: 'space-between',
|
|
442
|
+
alignItems: 'center',
|
|
443
|
+
marginBottom: 2
|
|
444
|
+
},
|
|
445
|
+
timeLabel: {
|
|
446
|
+
// Sits over the video (behind a dark scrubber scrim) — stays light in both themes.
|
|
447
|
+
color: palette.white,
|
|
448
|
+
fontSize: 12,
|
|
449
|
+
fontWeight: '500',
|
|
450
|
+
opacity: 0.9
|
|
451
|
+
}
|
|
452
|
+
});
|
|
453
|
+
//# sourceMappingURL=VideoPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useRef","useState","View","TouchableOpacity","StyleSheet","Animated","PanResponder","UIManager","findNodeHandle","Text","Platform","NativeCustomVideoView","RenderIcon","useCameraLocalization","useLibraryPalette","localizeDigits","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SEEK_STEP_MS","SEEK_STEP_LABEL","NATIVE_SEEK_MIN_INTERVAL_MS","END_EPSILON_MS","clamp","value","min","max","Math","formatTime","ms","locale","Number","isFinite","totalSeconds","floor","minutes","seconds","String","padStart","VideoPreview","asset","paused","onTogglePause","onPlaybackEnded","active","controlsVisible","onVideoAreaPress","onControlInteraction","t","palette","styles","makeStyles","seekLabel","previewUri","documentUri","uri","nativeRef","currentTimeMs","setCurrentTimeMs","durationMs","setDurationMs","trackWidthRef","isScrubbingRef","scrubValueRef","lastNativeSeekRef","scrubAnimationRef","Value","current","syncSeekFromNative","nextCurrent","nextDuration","safeDuration","safeCurrent","boundedCurrent","ratio","setValue","dispatchNativeSeek","targetMs","handle","undefined","safeMs","round","manager","commandId","Commands","seekTo","OS","dispatchViewManagerCommand","bounded","handleSeekDelta","deltaMs","base","handlePrimaryAction","ended","scrubTo","commit","clampedRatio","target","now","Date","panResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderTerminationRequest","onPanResponderGrant","evt","width","nativeEvent","locationX","onPanResponderMove","onPanResponderRelease","onPanResponderTerminate","style","wrap","children","videoWrapper","ref","src","video","onPlaybackProgress","event","endedDuration","absoluteFill","activeOpacity","onPress","accessibilityLabel","controlsOverlay","pointerEvents","skipButton","hitSlop","top","bottom","left","right","accessibilityRole","name","direction","label","size","color","whiteA90","strokeWidth","playButton","playBackdrop","paddingLeft","scrubberWrap","timeRow","timeLabel","scrubberTouch","onLayout","layout","panHandlers","scrubberTrack","scrubberFill","interpolate","inputRange","outputRange","scrubberThumb","flex","overflow","justifyContent","alignItems","position","minHeight","height","flexDirection","gap","borderRadius","backgroundColor","borderWidth","borderColor","paddingHorizontal","paddingTop","paddingBottom","primary","white","marginLeft","elevation","shadowColor","shadowOpacity","shadowRadius","shadowOffset","marginBottom","fontSize","fontWeight","opacity"],"sourceRoot":"..\\..\\..\\..\\src","sources":["library/components/VideoPreview.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC9D,SACEC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EACVC,QAAQ,EACRC,YAAY,EACZC,SAAS,EACTC,cAAc,EACdC,IAAI,EACJC,QAAQ,QAEH,cAAc;AAErB,SAASC,qBAAqB,QAAQ,gCAA6B;AACnE,SAASC,UAAU,QAAQ,gBAAa;AACxC,SAASC,qBAAqB,QAAQ,uBAAoB;AAE1D,SAASC,iBAAiB,QAA6B,eAAY;AACnE,SAASC,cAAc,QAAQ,uBAAoB;;AAEnD;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AACA,MAAMC,YAAY,GAAG,KAAK;AAC1B,MAAMC,eAAe,GAAG,IAAI;AAC5B;AACA;AACA;AACA,MAAMC,2BAA2B,GAAG,EAAE;AACtC;AACA,MAAMC,cAAc,GAAG,GAAG;AAE1B,MAAMC,KAAK,GAAGA,CAACC,KAAa,EAAEC,GAAW,EAAEC,GAAW,KACpDC,IAAI,CAACF,GAAG,CAACE,IAAI,CAACD,GAAG,CAACF,KAAK,EAAEC,GAAG,CAAC,EAAEC,GAAG,CAAC;AAErC,MAAME,UAAU,GAAGA,CAACC,EAAU,EAAEC,MAAe,KAAa;EAC1D,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACH,EAAE,CAAC,IAAIA,EAAE,GAAG,CAAC,EAAE,OAAOjB,cAAc,CAAC,MAAM,EAAEkB,MAAM,CAAC;EACzE,MAAMG,YAAY,GAAGN,IAAI,CAACO,KAAK,CAACL,EAAE,GAAG,IAAI,CAAC;EAC1C,MAAMM,OAAO,GAAGR,IAAI,CAACO,KAAK,CAACD,YAAY,GAAG,EAAE,CAAC;EAC7C,MAAMG,OAAO,GAAGH,YAAY,GAAG,EAAE;EACjC,OAAOrB,cAAc,CAAC,GAAGuB,OAAO,IAAIE,MAAM,CAACD,OAAO,CAAC,CAACE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAER,MAAM,CAAC;AACjF,CAAC;AAoBD,OAAO,MAAMS,YAAY,GAAGA,CAAC;EAC3BC,KAAK;EACLC,MAAM;EACNC,aAAa;EACbC,eAAe;EACfC,MAAM;EACNC,eAAe;EACfC,gBAAgB;EAChBC;AACiB,CAAC,KAAK;EACvB,MAAM;IAAEC,CAAC;IAAElB;EAAO,CAAC,GAAGpB,qBAAqB,CAAC,CAAC;EAC7C,MAAMuC,OAAO,GAAGtC,iBAAiB,CAAC,CAAC;EACnC,MAAMuC,MAAM,GAAGtD,OAAO,CAAC,MAAMuD,UAAU,CAACF,OAAO,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAC5D,MAAMG,SAAS,GAAGxC,cAAc,CAACQ,eAAe,EAAEU,MAAM,CAAC;EACzD,MAAMuB,UAAU,GAAGb,KAAK,CAACc,WAAW,IAAId,KAAK,CAACe,GAAG;EACjD,MAAMC,SAAS,GAAG3D,MAAM,CAAgC,IAAI,CAAC;EAE7D,MAAM,CAAC4D,aAAa,EAAEC,gBAAgB,CAAC,GAAG5D,QAAQ,CAAC,CAAC,CAAC;EACrD,MAAM,CAAC6D,UAAU,EAAEC,aAAa,CAAC,GAAG9D,QAAQ,CAAC,CAAC,CAAC;;EAE/C;EACA,MAAM+D,aAAa,GAAGhE,MAAM,CAAC,CAAC,CAAC;EAC/B;EACA;EACA;EACA,MAAMiE,cAAc,GAAGjE,MAAM,CAAC,KAAK,CAAC;EACpC;EACA,MAAMkE,aAAa,GAAGlE,MAAM,CAAC,CAAC,CAAC;EAC/B;EACA,MAAMmE,iBAAiB,GAAGnE,MAAM,CAAC,CAAC,CAAC;EACnC;EACA;EACA;EACA,MAAMoE,iBAAiB,GAAGpE,MAAM,CAAC,IAAIK,QAAQ,CAACgE,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAE/D,MAAMC,kBAAkB,GAAGzE,WAAW,CAAC,CAAC0E,WAAmB,EAAEC,YAAoB,KAAK;IACpF,MAAMC,YAAY,GAAGxC,MAAM,CAACC,QAAQ,CAACsC,YAAY,CAAC,GAAG3C,IAAI,CAACD,GAAG,CAAC,CAAC,EAAE4C,YAAY,CAAC,GAAG,CAAC;IAClF,MAAME,WAAW,GAAGzC,MAAM,CAACC,QAAQ,CAACqC,WAAW,CAAC,GAAG1C,IAAI,CAACD,GAAG,CAAC,CAAC,EAAE2C,WAAW,CAAC,GAAG,CAAC;IAC/E,MAAMI,cAAc,GAAGF,YAAY,GAAG,CAAC,GAAG5C,IAAI,CAACF,GAAG,CAAC+C,WAAW,EAAED,YAAY,CAAC,GAAG,CAAC;IACjF,MAAMG,KAAK,GAAGH,YAAY,GAAG,CAAC,GAAGE,cAAc,GAAGF,YAAY,GAAG,CAAC;IAClEX,aAAa,CAACW,YAAY,CAAC;IAC3Bb,gBAAgB,CAACe,cAAc,CAAC;IAChCV,aAAa,CAACI,OAAO,GAAGO,KAAK;IAC7BT,iBAAiB,CAACU,QAAQ,CAACD,KAAK,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA;EACA;EACA,MAAME,kBAAkB,GAAGjF,WAAW,CAAEkF,QAAgB,IAAK;IAC3D,MAAMC,MAAM,GAAGzE,cAAc,CAACmD,SAAS,CAACW,OAAc,CAAC;IACvD,IAAIW,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAKC,SAAS,EAAE;IAC7C,MAAMC,MAAM,GAAGjD,MAAM,CAACC,QAAQ,CAAC6C,QAAQ,CAAC,GAAGlD,IAAI,CAACD,GAAG,CAAC,CAAC,EAAEC,IAAI,CAACsD,KAAK,CAACJ,QAAQ,CAAC,CAAC,GAAG,CAAC;IAChF,MAAMK,OAAO,GAAI9E,SAAS,CAASI,qBAAqB;IACxD,MAAM2E,SAAS,GAAGD,OAAO,EAAEE,QAAQ,EAAEC,MAAM,IAAI,CAAC;IAChD,IAAI9E,QAAQ,CAAC+E,EAAE,KAAK,SAAS,EAAE;MAC7BlF,SAAS,CAACmF,0BAA0B,CAACT,MAAM,EAAEK,SAAS,EAAE,CAACH,MAAM,CAAC,CAAC;IACnE;EACF,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMK,MAAM,GAAG1F,WAAW,CACvBkF,QAAgB,IAAK;IACpB,MAAMW,OAAO,GAAG7B,UAAU,GAAG,CAAC,GAAGpC,KAAK,CAACsD,QAAQ,EAAE,CAAC,EAAElB,UAAU,CAAC,GAAGhC,IAAI,CAACD,GAAG,CAAC,CAAC,EAAEmD,QAAQ,CAAC;IACvFD,kBAAkB,CAACY,OAAO,CAAC;IAC3B,MAAMd,KAAK,GAAGf,UAAU,GAAG,CAAC,GAAG6B,OAAO,GAAG7B,UAAU,GAAG,CAAC;IACvDD,gBAAgB,CAAC8B,OAAO,CAAC;IACzBzB,aAAa,CAACI,OAAO,GAAGO,KAAK;IAC7B;IACAT,iBAAiB,CAACU,QAAQ,CAACD,KAAK,CAAC;EACnC,CAAC,EACD,CAACf,UAAU,EAAEiB,kBAAkB,CACjC,CAAC;EAED,MAAMa,eAAe,GAAG9F,WAAW,CAChC+F,OAAe,IAAK;IACnB,MAAMC,IAAI,GAAGhC,UAAU,GAAG,CAAC,GAAGF,aAAa,GAAG,CAAC;IAC/C4B,MAAM,CAACM,IAAI,GAAGD,OAAO,CAAC;EACxB,CAAC,EACD,CAACjC,aAAa,EAAEE,UAAU,EAAE0B,MAAM,CACpC,CAAC;EAED,MAAMO,mBAAmB,GAAGjG,WAAW,CAAC,MAAM;IAC5C,MAAMkG,KAAK,GAAGlC,UAAU,GAAG,CAAC,IAAIF,aAAa,IAAIE,UAAU,GAAGrC,cAAc;IAC5E,IAAIuE,KAAK,EAAE;MACT;MACAR,MAAM,CAAC,CAAC,CAAC;MACT,IAAI5C,MAAM,EAAEC,aAAa,CAAC,CAAC;MAC3B;IACF;IACAA,aAAa,CAAC,CAAC;EACjB,CAAC,EAAE,CAACe,aAAa,EAAEE,UAAU,EAAEjB,aAAa,EAAED,MAAM,EAAE4C,MAAM,CAAC,CAAC;;EAE9D;EACA;EACA;EACA;EACA,MAAMS,OAAO,GAAGnG,WAAW,CACzB,CAAC+E,KAAa,EAAEqB,MAAe,KAAK;IAClC,MAAMC,YAAY,GAAGzE,KAAK,CAACmD,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACvC,MAAMuB,MAAM,GAAGtC,UAAU,GAAG,CAAC,GAAGqC,YAAY,GAAGrC,UAAU,GAAG,CAAC;IAC7DI,aAAa,CAACI,OAAO,GAAG6B,YAAY;IACpC/B,iBAAiB,CAACU,QAAQ,CAACqB,YAAY,CAAC;IACxC,MAAME,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;IACtB,IAAIH,MAAM,EAAE;MACV/B,iBAAiB,CAACG,OAAO,GAAG+B,GAAG;MAC/BxC,gBAAgB,CAACuC,MAAM,CAAC;MACxBrB,kBAAkB,CAACqB,MAAM,CAAC;MAC1B;IACF;IACA,IAAIC,GAAG,GAAGlC,iBAAiB,CAACG,OAAO,IAAI9C,2BAA2B,EAAE;MAClE2C,iBAAiB,CAACG,OAAO,GAAG+B,GAAG;MAC/BxC,gBAAgB,CAACuC,MAAM,CAAC;MACxBrB,kBAAkB,CAACqB,MAAM,CAAC;IAC5B;EACF,CAAC,EACD,CAACtC,UAAU,EAAEiB,kBAAkB,CACjC,CAAC;EAED,MAAMwB,YAAY,GAAGxG,OAAO,CAC1B,MACEO,YAAY,CAACkG,MAAM,CAAC;IAClBC,4BAA4B,EAAEA,CAAA,KAAM,IAAI;IACxCC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;IACvC;IACA;IACAC,kCAAkC,EAAEA,CAAA,KAAM,IAAI;IAC9CC,gCAAgC,EAAEA,CAAA,KAAM,KAAK;IAC7CC,mBAAmB,EAAGC,GAA0B,IAAK;MACnD5D,oBAAoB,CAAC,CAAC;MACtBe,cAAc,CAACK,OAAO,GAAG,IAAI;MAC7B,MAAMyC,KAAK,GAAG/C,aAAa,CAACM,OAAO;MACnC,IAAIyC,KAAK,GAAG,CAAC,EAAEd,OAAO,CAACa,GAAG,CAACE,WAAW,CAACC,SAAS,GAAGF,KAAK,EAAE,KAAK,CAAC;IAClE,CAAC;IACDG,kBAAkB,EAAGJ,GAA0B,IAAK;MAClD,MAAMC,KAAK,GAAG/C,aAAa,CAACM,OAAO;MACnC,IAAIyC,KAAK,GAAG,CAAC,EAAEd,OAAO,CAACa,GAAG,CAACE,WAAW,CAACC,SAAS,GAAGF,KAAK,EAAE,KAAK,CAAC;IAClE,CAAC;IACDI,qBAAqB,EAAGL,GAA0B,IAAK;MACrD,MAAMC,KAAK,GAAG/C,aAAa,CAACM,OAAO;MACnC,MAAMO,KAAK,GAAGkC,KAAK,GAAG,CAAC,GAAGD,GAAG,CAACE,WAAW,CAACC,SAAS,GAAGF,KAAK,GAAG7C,aAAa,CAACI,OAAO;MACnF2B,OAAO,CAACpB,KAAK,EAAE,IAAI,CAAC;MACpBZ,cAAc,CAACK,OAAO,GAAG,KAAK;MAC9B;MACApB,oBAAoB,CAAC,CAAC;IACxB,CAAC;IACDkE,uBAAuB,EAAEA,CAAA,KAAM;MAC7BnB,OAAO,CAAC/B,aAAa,CAACI,OAAO,EAAE,IAAI,CAAC;MACpCL,cAAc,CAACK,OAAO,GAAG,KAAK;IAChC;EACF,CAAC,CAAC,EACJ,CAAC2B,OAAO,EAAE/C,oBAAoB,CAChC,CAAC;EAED,oBACEjC,IAAA,CAACf,IAAI;IAACmH,KAAK,EAAEhE,MAAM,CAACiE,IAAK;IAAAC,QAAA,eACvBpG,KAAA,CAACjB,IAAI;MAACmH,KAAK,EAAEhE,MAAM,CAACmE,YAAa;MAAAD,QAAA,gBAC/BtG,IAAA,CAACN,qBAAqB;QACpB8G,GAAG,EAAE9D,SAAiB;QACtB+D,GAAG,EAAElE,UAAW;QAChB6D,KAAK,EAAEhE,MAAM,CAACsE,KAAM;QACpB5E,MAAM,EAAEA,MAAO;QACfH,MAAM,EAAEA,MAAO;QACfgF,kBAAkB,EAAGC,KAAK,IAAK;UAC7B,MAAM;YAAEjE,aAAa,EAAEY,WAAW;YAAEV,UAAU,EAAEW;UAAa,CAAC,GAAGoD,KAAK,CAACb,WAAW;UAClF,IAAI/C,cAAc,CAACK,OAAO,EAAE;YAC1B;YACA,MAAMI,YAAY,GAAGxC,MAAM,CAACC,QAAQ,CAACsC,YAAY,CAAC,GAAG3C,IAAI,CAACD,GAAG,CAAC,CAAC,EAAE4C,YAAY,CAAC,GAAG,CAAC;YAClFV,aAAa,CAACW,YAAY,CAAC;UAC7B,CAAC,MAAM;YACLH,kBAAkB,CAACC,WAAW,EAAEC,YAAY,CAAC;UAC/C;QACF,CAAE;QACF3B,eAAe,EAAG+E,KAAK,IAAK;UAC1B,MAAMC,aAAa,GAAGD,KAAK,CAACb,WAAW,CAAClD,UAAU;UAClDS,kBAAkB,CAACuD,aAAa,EAAEA,aAAa,CAAC;UAChDhF,eAAe,GAAG,CAAC;QACrB;MAAE,CACH,CAAC,eAQF7B,IAAA,CAACd,gBAAgB;QACfkH,KAAK,EAAEjH,UAAU,CAAC2H,YAAa;QAC/BC,aAAa,EAAE,CAAE;QACjBC,OAAO,EAAEhF,gBAAiB;QAC1BiF,kBAAkB,EAAE/E,CAAC,CAAC,qBAAqB;MAAE,CAC9C,CAAC,EAEDH,eAAe,iBACd7B,KAAA,CAAAE,SAAA;QAAAkG,QAAA,gBACEpG,KAAA,CAACjB,IAAI;UAACmH,KAAK,EAAEhE,MAAM,CAAC8E,eAAgB;UAACC,aAAa,EAAC,UAAU;UAAAb,QAAA,gBAC3DtG,IAAA,CAACd,gBAAgB;YACfkH,KAAK,EAAEhE,MAAM,CAACgF,UAAW;YACzBL,aAAa,EAAE,GAAI;YACnBM,OAAO,EAAE;cAAEC,GAAG,EAAE,CAAC;cAAEC,MAAM,EAAE,CAAC;cAAEC,IAAI,EAAE,CAAC;cAAEC,KAAK,EAAE;YAAE,CAAE;YAClDT,OAAO,EAAEA,CAAA,KAAM;cACb/E,oBAAoB,CAAC,CAAC;cACtB0C,eAAe,CAAC,CAACtE,YAAY,CAAC;YAChC,CAAE;YACFqH,iBAAiB,EAAC,QAAQ;YAC1BT,kBAAkB,EAAE/E,CAAC,CAAC,cAAc,EAAEI,SAAS,CAAE;YAAAgE,QAAA,eAEjDtG,IAAA,CAACL,UAAU;cAACgI,IAAI,EAAC,eAAe;cAACC,SAAS,EAAC,MAAM;cAACC,KAAK,EAAEvF,SAAU;cAACwF,IAAI,EAAE,EAAG;cAACC,KAAK,EAAE5F,OAAO,CAAC6F,QAAS;cAACC,WAAW,EAAE;YAAE,CAAE;UAAC,CACzG,CAAC,eAEnBjI,IAAA,CAACd,gBAAgB;YACfkH,KAAK,EAAEhE,MAAM,CAAC8F,UAAW;YACzBnB,aAAa,EAAE,GAAI;YACnBM,OAAO,EAAE;cAAEC,GAAG,EAAE,EAAE;cAAEC,MAAM,EAAE,EAAE;cAAEC,IAAI,EAAE,EAAE;cAAEC,KAAK,EAAE;YAAG,CAAE;YACtDT,OAAO,EAAEA,CAAA,KAAM;cACb/E,oBAAoB,CAAC,CAAC;cACtB6C,mBAAmB,CAAC,CAAC;YACvB,CAAE;YACF4C,iBAAiB,EAAC,QAAQ;YAC1BT,kBAAkB,EAAE/E,CAAC,CAACP,MAAM,GAAG,MAAM,GAAG,OAAO,CAAE;YAAA2E,QAAA,eAEjDtG,IAAA,CAACf,IAAI;cAACmH,KAAK,EAAEhE,MAAM,CAAC+F,YAAa;cAAA7B,QAAA,eAE/BtG,IAAA,CAACf,IAAI;gBAACmH,KAAK,EAAE;kBAAEgC,WAAW,EAAEzG,MAAM,GAAG,CAAC,GAAG;gBAAE,CAAE;gBAAA2E,QAAA,eAC3CtG,IAAA,CAACL,UAAU;kBAACgI,IAAI,EAAEhG,MAAM,GAAG,MAAM,GAAG,OAAQ;kBAACmG,IAAI,EAAE,EAAG;kBAACC,KAAK,EAAE5F,OAAO,CAAC6F;gBAAS,CAAE;cAAC,CAC9E;YAAC,CACH;UAAC,CACS,CAAC,eAEnBhI,IAAA,CAACd,gBAAgB;YACfkH,KAAK,EAAEhE,MAAM,CAACgF,UAAW;YACzBL,aAAa,EAAE,GAAI;YACnBM,OAAO,EAAE;cAAEC,GAAG,EAAE,CAAC;cAAEC,MAAM,EAAE,CAAC;cAAEC,IAAI,EAAE,CAAC;cAAEC,KAAK,EAAE;YAAE,CAAE;YAClDT,OAAO,EAAEA,CAAA,KAAM;cACb/E,oBAAoB,CAAC,CAAC;cACtB0C,eAAe,CAACtE,YAAY,CAAC;YAC/B,CAAE;YACFqH,iBAAiB,EAAC,QAAQ;YAC1BT,kBAAkB,EAAE/E,CAAC,CAAC,aAAa,EAAEI,SAAS,CAAE;YAAAgE,QAAA,eAEhDtG,IAAA,CAACL,UAAU;cAACgI,IAAI,EAAC,eAAe;cAACC,SAAS,EAAC,SAAS;cAACC,KAAK,EAAEvF,SAAU;cAACwF,IAAI,EAAE,EAAG;cAACC,KAAK,EAAE5F,OAAO,CAAC6F,QAAS;cAACC,WAAW,EAAE;YAAE,CAAE;UAAC,CAC5G,CAAC;QAAA,CACf,CAAC,eACP/H,KAAA,CAACjB,IAAI;UAACmH,KAAK,EAAEhE,MAAM,CAACiG,YAAa;UAAA/B,QAAA,gBAC/BpG,KAAA,CAACjB,IAAI;YAACmH,KAAK,EAAEhE,MAAM,CAACkG,OAAQ;YAACnB,aAAa,EAAC,MAAM;YAAAb,QAAA,gBAC/CtG,IAAA,CAACR,IAAI;cAAC4G,KAAK,EAAEhE,MAAM,CAACmG,SAAU;cAAAjC,QAAA,EAAExF,UAAU,CAAC6B,aAAa,EAAE3B,MAAM;YAAC,CAAO,CAAC,eACzEhB,IAAA,CAACR,IAAI;cAAC4G,KAAK,EAAEhE,MAAM,CAACmG,SAAU;cAAAjC,QAAA,EAAExF,UAAU,CAAC+B,UAAU,EAAE7B,MAAM;YAAC,CAAO,CAAC;UAAA,CAClE,CAAC,eACPhB,IAAA,CAACf,IAAI;YACHmH,KAAK,EAAEhE,MAAM,CAACoG,aAAc;YAC5BC,QAAQ,EAAG7B,KAAK,IAAK;cACnB7D,aAAa,CAACM,OAAO,GAAGuD,KAAK,CAACb,WAAW,CAAC2C,MAAM,CAAC5C,KAAK;YACxD,CAAE;YAAA,GACER,YAAY,CAACqD,WAAW;YAAArC,QAAA,eAE5BpG,KAAA,CAACjB,IAAI;cAACmH,KAAK,EAAEhE,MAAM,CAACwG,aAAc;cAAAtC,QAAA,gBAChCtG,IAAA,CAACZ,QAAQ,CAACH,IAAI;gBACZmH,KAAK,EAAE,CACLhE,MAAM,CAACyG,YAAY,EACnB;kBACE/C,KAAK,EAAE3C,iBAAiB,CAAC2F,WAAW,CAAC;oBACnCC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClBC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM;kBAC5B,CAAC;gBACH,CAAC;cACD,CACH,CAAC,eACFhJ,IAAA,CAACZ,QAAQ,CAACH,IAAI;gBACZmH,KAAK,EAAE,CACLhE,MAAM,CAAC6G,aAAa,EACpB;kBACEzB,IAAI,EAAErE,iBAAiB,CAAC2F,WAAW,CAAC;oBAClCC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClBC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM;kBAC5B,CAAC;gBACH,CAAC;cACD,CACH,CAAC;YAAA,CACE;UAAC,CACH,CAAC;QAAA,CACH,CAAC;MAAA,CACP,CACH;IAAA,CACG;EAAC,CACH,CAAC;AAEX,CAAC;AAED,MAAM3G,UAAU,GAAIF,OAAuB,IACzChD,UAAU,CAACoG,MAAM,CAAC;EAClBc,IAAI,EAAE;IACJ6C,IAAI,EAAE,CAAC;IACPpD,KAAK,EAAE,MAAM;IACbqD,QAAQ,EAAE;EACZ,CAAC;EACD5C,YAAY,EAAE;IACZ2C,IAAI,EAAE,CAAC;IACPE,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBF,QAAQ,EAAE,QAAQ;IAClBG,QAAQ,EAAE,UAAU;IACpBC,SAAS,EAAE;EACb,CAAC;EACD7C,KAAK,EAAE;IACLwC,IAAI,EAAE,CAAC;IACPpD,KAAK,EAAE,MAAM;IACb0D,MAAM,EAAE;EACV,CAAC;EACDtC,eAAe,EAAE;IACfoC,QAAQ,EAAE,UAAU;IACpB9B,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRF,MAAM,EAAE,CAAC;IACTD,GAAG,EAAE,CAAC;IACNmC,aAAa,EAAE,KAAK;IACpBL,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBK,GAAG,EAAE;EACP,CAAC;EACDtC,UAAU,EAAE;IACVtB,KAAK,EAAE,EAAE;IACT0D,MAAM,EAAE,EAAE;IACVG,YAAY,EAAE,EAAE;IAChBP,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBO,eAAe,EAAE,kBAAkB;IACnCC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE;EACf,CAAC;EACD5B,UAAU,EAAE;IACVkB,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBO,eAAe,EAAE;EACnB,CAAC;EACD;EACAzB,YAAY,EAAE;IACZrC,KAAK,EAAE,EAAE;IACT0D,MAAM,EAAE,EAAE;IACVG,YAAY,EAAE,EAAE;IAChBP,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBO,eAAe,EAAE;EACnB,CAAC;EACDvB,YAAY,EAAE;IACZiB,QAAQ,EAAE,UAAU;IACpB9B,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRF,MAAM,EAAE,CAAC;IACTzB,KAAK,EAAE,MAAM;IACbiE,iBAAiB,EAAE,EAAE;IACrBC,UAAU,EAAE,CAAC;IACbC,aAAa,EAAE,CAAC;IAChBL,eAAe,EAAE;EACnB,CAAC;EACD;EACApB,aAAa,EAAE;IACb1C,KAAK,EAAE,MAAM;IACb0D,MAAM,EAAE,EAAE;IACVJ,cAAc,EAAE;EAClB,CAAC;EACDR,aAAa,EAAE;IACb9C,KAAK,EAAE,MAAM;IACb0D,MAAM,EAAE,CAAC;IACTG,YAAY,EAAE,CAAC;IACfL,QAAQ,EAAE,UAAU;IACpBF,cAAc,EAAE,QAAQ;IACxBQ,eAAe,EAAE;EACnB,CAAC;EACDf,YAAY,EAAE;IACZS,QAAQ,EAAE,UAAU;IACpB9B,IAAI,EAAE,CAAC;IACPF,GAAG,EAAE,CAAC;IACNkC,MAAM,EAAE,CAAC;IACTG,YAAY,EAAE,CAAC;IACfC,eAAe,EAAEzH,OAAO,CAAC+H;EAC3B,CAAC;EACDjB,aAAa,EAAE;IACbK,QAAQ,EAAE,UAAU;IACpBhC,GAAG,EAAE,CAAC,CAAC;IACPxB,KAAK,EAAE,EAAE;IACT0D,MAAM,EAAE,EAAE;IACVG,YAAY,EAAE,CAAC;IACfC,eAAe,EAAEzH,OAAO,CAACgI,KAAK;IAC9BC,UAAU,EAAE,CAAC,CAAC;IACdC,SAAS,EAAE,CAAC;IACZC,WAAW,EAAE,MAAM;IACnBC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,YAAY,EAAE;MAAE3E,KAAK,EAAE,CAAC;MAAE0D,MAAM,EAAE;IAAE;EACtC,CAAC;EACDlB,OAAO,EAAE;IACPmB,aAAa,EAAE,KAAK;IACpBL,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBqB,YAAY,EAAE;EAChB,CAAC;EACDnC,SAAS,EAAE;IACT;IACAR,KAAK,EAAE5F,OAAO,CAACgI,KAAK;IACpBQ,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,OAAO,EAAE;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ViewerCounter — the "3 / 16" position readout in the full-screen viewer's top-right corner.
|
|
5
|
+
*
|
|
6
|
+
* Exists as its own component purely for update cost. The counter has to track the finger, which
|
|
7
|
+
* means reacting to `onScroll` (~60 events/sec), and the viewer lives inside the app's root
|
|
8
|
+
* component — pushing the live index into that component's state would re-render the whole screen
|
|
9
|
+
* (and re-run the viewer FlatList's renderItem identity) on every slide crossing of a fast fling.
|
|
10
|
+
*
|
|
11
|
+
* So the parent drives this imperatively through a ref: `setIndex()` re-renders these two lines of
|
|
12
|
+
* text and nothing else. The `index` prop remains the source of truth for React-driven changes
|
|
13
|
+
* (opening the viewer, momentum settling, a resize re-snap) and re-syncs the local value whenever
|
|
14
|
+
* it changes, so the imperative fast path can never leave the counter out of step at rest.
|
|
15
|
+
*/
|
|
16
|
+
import { forwardRef, useEffect, useImperativeHandle, useState } from 'react';
|
|
17
|
+
import { Text } from 'react-native';
|
|
18
|
+
import { useCameraLocalization } from "../../localization.js";
|
|
19
|
+
import { localizeDigits } from "../localizedFormat.js";
|
|
20
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
21
|
+
export const ViewerCounter = /*#__PURE__*/forwardRef(({
|
|
22
|
+
index,
|
|
23
|
+
total,
|
|
24
|
+
style
|
|
25
|
+
}, ref) => {
|
|
26
|
+
const {
|
|
27
|
+
t,
|
|
28
|
+
locale
|
|
29
|
+
} = useCameraLocalization();
|
|
30
|
+
const [displayIndex, setDisplayIndex] = useState(index);
|
|
31
|
+
|
|
32
|
+
// Parent-driven moves (open, momentum end, resize re-snap) win over whatever the last
|
|
33
|
+
// scroll frame left behind.
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
setDisplayIndex(index);
|
|
36
|
+
}, [index]);
|
|
37
|
+
useImperativeHandle(ref, () => ({
|
|
38
|
+
setIndex: next => {
|
|
39
|
+
// Bail on an unchanged value so a 60Hz scroll stream costs one setState per slide
|
|
40
|
+
// crossing, not one per frame. React would bail out on an identical value anyway;
|
|
41
|
+
// this skips the dispatch entirely.
|
|
42
|
+
setDisplayIndex(prev => prev === next ? prev : next);
|
|
43
|
+
}
|
|
44
|
+
}), []);
|
|
45
|
+
|
|
46
|
+
// An empty list would render "1 / 0"; clamp so the readout stays sane while a delete is
|
|
47
|
+
// in flight.
|
|
48
|
+
const position = total > 0 ? Math.min(displayIndex, total - 1) + 1 : 0;
|
|
49
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
50
|
+
style: style,
|
|
51
|
+
children: t('mediaCounter', localizeDigits(String(position), locale), localizeDigits(String(total), locale))
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
ViewerCounter.displayName = 'ViewerCounter';
|
|
55
|
+
//# sourceMappingURL=ViewerCounter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useEffect","useImperativeHandle","useState","Text","useCameraLocalization","localizeDigits","jsx","_jsx","ViewerCounter","index","total","style","ref","t","locale","displayIndex","setDisplayIndex","setIndex","next","prev","position","Math","min","children","String","displayName"],"sourceRoot":"..\\..\\..\\..\\src","sources":["library/components/ViewerCounter.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,UAAU,EAAEC,SAAS,EAAEC,mBAAmB,EAAEC,QAAQ,QAAQ,OAAO;AAC5E,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,qBAAqB,QAAQ,uBAAoB;AAC1D,SAASC,cAAc,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAcpD,OAAO,MAAMC,aAAa,gBAAGT,UAAU,CACrC,CAAC;EAAEU,KAAK;EAAEC,KAAK;EAAEC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAChC,MAAM;IAAEC,CAAC;IAAEC;EAAO,CAAC,GAAGV,qBAAqB,CAAC,CAAC;EAC7C,MAAM,CAACW,YAAY,EAAEC,eAAe,CAAC,GAAGd,QAAQ,CAACO,KAAK,CAAC;;EAEvD;EACA;EACAT,SAAS,CAAC,MAAM;IACdgB,eAAe,CAACP,KAAK,CAAC;EACxB,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEXR,mBAAmB,CACjBW,GAAG,EACH,OAAO;IACLK,QAAQ,EAAGC,IAAY,IAAK;MAC1B;MACA;MACA;MACAF,eAAe,CAAEG,IAAI,IAAMA,IAAI,KAAKD,IAAI,GAAGC,IAAI,GAAGD,IAAK,CAAC;IAC1D;EACF,CAAC,CAAC,EACF,EACF,CAAC;;EAED;EACA;EACA,MAAME,QAAQ,GAAGV,KAAK,GAAG,CAAC,GAAGW,IAAI,CAACC,GAAG,CAACP,YAAY,EAAEL,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;EAEtE,oBACEH,IAAA,CAACJ,IAAI;IAACQ,KAAK,EAAEA,KAAM;IAAAY,QAAA,EAChBV,CAAC,CACA,cAAc,EACdR,cAAc,CAACmB,MAAM,CAACJ,QAAQ,CAAC,EAAEN,MAAM,CAAC,EACxCT,cAAc,CAACmB,MAAM,CAACd,KAAK,CAAC,EAAEI,MAAM,CACtC;EAAC,CACG,CAAC;AAEX,CACF,CAAC;AAEDN,aAAa,CAACiB,WAAW,GAAG,eAAe","ignoreList":[]}
|