@technotoil/image-video-editor 0.1.0

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.
Files changed (99) hide show
  1. package/ImageVideoEditor.podspec +21 -0
  2. package/README.md +136 -0
  3. package/android/build.gradle +76 -0
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +13 -0
  6. package/android/src/main/java/com/technotoil/image_videoeditor/FrameGrabberModule.kt +67 -0
  7. package/android/src/main/java/com/technotoil/image_videoeditor/MediaEditorModule.kt +548 -0
  8. package/android/src/main/java/com/technotoil/image_videoeditor/MediaFileUtils.kt +29 -0
  9. package/android/src/main/java/com/technotoil/image_videoeditor/MediaLibraryModule.kt +305 -0
  10. package/android/src/main/java/com/technotoil/image_videoeditor/MediaPackage.kt +26 -0
  11. package/android/src/main/java/com/technotoil/image_videoeditor/MediaPickerModule.kt +111 -0
  12. package/android/src/main/java/com/technotoil/image_videoeditor/MediaPlayerModule.kt +34 -0
  13. package/android/src/main/java/com/technotoil/image_videoeditor/RNCameraViewManager.kt +761 -0
  14. package/android/src/main/java/com/technotoil/image_videoeditor/RNVideoPreviewManager.kt +317 -0
  15. package/ios/PrivacyInfo.xcprivacy +38 -0
  16. package/ios/RNCameraViewManager.m +420 -0
  17. package/ios/RNFrameGrabber.m +61 -0
  18. package/ios/RNMediaEditor.m +905 -0
  19. package/ios/RNMediaLibrary.m +389 -0
  20. package/ios/RNMediaPicker.m +144 -0
  21. package/ios/RNMediaPlayer.m +73 -0
  22. package/ios/RNVideoPreviewManager.m +263 -0
  23. package/ios/frames/film_vintage.png +0 -0
  24. package/ios/frames/floral_gold.png +0 -0
  25. package/ios/frames/minimal_double.png +0 -0
  26. package/ios/frames/polaroid_white.png +0 -0
  27. package/ios/frames/watercolor_floral.png +0 -0
  28. package/lib/module/assets/frames/film_vintage.png +0 -0
  29. package/lib/module/assets/frames/floral_gold.png +0 -0
  30. package/lib/module/assets/frames/minimal_double.png +0 -0
  31. package/lib/module/assets/frames/polaroid_white.png +0 -0
  32. package/lib/module/assets/frames/watercolor_floral.png +0 -0
  33. package/lib/module/components/VideoEditor.js +156 -0
  34. package/lib/module/components/VideoEditor.js.map +1 -0
  35. package/lib/module/index.js +4 -0
  36. package/lib/module/index.js.map +1 -0
  37. package/lib/module/native/CameraView.js +104 -0
  38. package/lib/module/native/CameraView.js.map +1 -0
  39. package/lib/module/native/FrameGrabber.js +13 -0
  40. package/lib/module/native/FrameGrabber.js.map +1 -0
  41. package/lib/module/native/MediaEditor.js +19 -0
  42. package/lib/module/native/MediaEditor.js.map +1 -0
  43. package/lib/module/native/MediaLibrary.js +37 -0
  44. package/lib/module/native/MediaLibrary.js.map +1 -0
  45. package/lib/module/native/MediaPicker.js +13 -0
  46. package/lib/module/native/MediaPicker.js.map +1 -0
  47. package/lib/module/native/MediaPlayer.js +13 -0
  48. package/lib/module/native/MediaPlayer.js.map +1 -0
  49. package/lib/module/native/VideoPreview.js +12 -0
  50. package/lib/module/native/VideoPreview.js.map +1 -0
  51. package/lib/module/package.json +1 -0
  52. package/lib/module/screens/CropScreen.js +1211 -0
  53. package/lib/module/screens/CropScreen.js.map +1 -0
  54. package/lib/module/screens/EditorScreen.js +5752 -0
  55. package/lib/module/screens/EditorScreen.js.map +1 -0
  56. package/lib/module/screens/ExportScreen.js +289 -0
  57. package/lib/module/screens/ExportScreen.js.map +1 -0
  58. package/lib/module/screens/GalleryScreen.js +505 -0
  59. package/lib/module/screens/GalleryScreen.js.map +1 -0
  60. package/lib/module/screens/PickScreen.js +1195 -0
  61. package/lib/module/screens/PickScreen.js.map +1 -0
  62. package/lib/module/types.js +2 -0
  63. package/lib/module/types.js.map +1 -0
  64. package/lib/typescript/src/components/VideoEditor.d.ts +13 -0
  65. package/lib/typescript/src/index.d.ts +2 -0
  66. package/lib/typescript/src/native/CameraView.d.ts +23 -0
  67. package/lib/typescript/src/native/FrameGrabber.d.ts +2 -0
  68. package/lib/typescript/src/native/MediaEditor.d.ts +3 -0
  69. package/lib/typescript/src/native/MediaLibrary.d.ts +16 -0
  70. package/lib/typescript/src/native/MediaPicker.d.ts +2 -0
  71. package/lib/typescript/src/native/MediaPlayer.d.ts +1 -0
  72. package/lib/typescript/src/native/VideoPreview.d.ts +19 -0
  73. package/lib/typescript/src/screens/CropScreen.d.ts +9 -0
  74. package/lib/typescript/src/screens/EditorScreen.d.ts +10 -0
  75. package/lib/typescript/src/screens/ExportScreen.d.ts +9 -0
  76. package/lib/typescript/src/screens/GalleryScreen.d.ts +8 -0
  77. package/lib/typescript/src/screens/PickScreen.d.ts +13 -0
  78. package/lib/typescript/src/types.d.ts +58 -0
  79. package/package.json +101 -0
  80. package/src/assets/frames/film_vintage.png +0 -0
  81. package/src/assets/frames/floral_gold.png +0 -0
  82. package/src/assets/frames/minimal_double.png +0 -0
  83. package/src/assets/frames/polaroid_white.png +0 -0
  84. package/src/assets/frames/watercolor_floral.png +0 -0
  85. package/src/components/VideoEditor.tsx +182 -0
  86. package/src/index.tsx +2 -0
  87. package/src/native/CameraView.tsx +95 -0
  88. package/src/native/FrameGrabber.ts +21 -0
  89. package/src/native/MediaEditor.ts +33 -0
  90. package/src/native/MediaLibrary.ts +69 -0
  91. package/src/native/MediaPicker.ts +17 -0
  92. package/src/native/MediaPlayer.ts +16 -0
  93. package/src/native/VideoPreview.tsx +20 -0
  94. package/src/screens/CropScreen.tsx +968 -0
  95. package/src/screens/EditorScreen.tsx +4517 -0
  96. package/src/screens/ExportScreen.tsx +282 -0
  97. package/src/screens/GalleryScreen.tsx +412 -0
  98. package/src/screens/PickScreen.tsx +1094 -0
  99. package/src/types.ts +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useMemo","useRef","useState","Alert","Animated","FlatList","Image","Modal","PermissionsAndroid","Platform","Pressable","ScrollView","StyleSheet","Text","View","Ionicons","ImagePicker","useSafeAreaInsets","CameraView","exportAsset","listAlbums","listMedia","requestMediaAccess","VideoPreview","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TABS","POST_TYPES","CameraIcon","style","width","height","borderWidth","borderColor","borderRadius","alignItems","justifyContent","position","children","backgroundColor","top","left","formatDuration","ms","total","Math","floor","m","s","toString","padStart","PickScreen","items","onPicked","onNext","headerTitle","customCancelIcon","onCancelPress","cameraModes","onCameraModeChange","defaultCameraMode","insets","tab","setTab","activeAlbum","setActiveAlbum","id","title","showAlbumPicker","setShowAlbumPicker","postType","setPostType","multiSelect","setMultiSelect","selectedItems","setSelectedItems","selectedMedia","setSelectedMedia","library","setLibrary","albums","setAlbums","loading","setLoading","previewUri","setPreviewUri","cropMode","setCropMode","videoPaused","setVideoPaused","scaleAnim","Value","current","showCustomCamera","setShowCustomCamera","facing","setFacing","flashMode","setFlashMode","isRecording","setIsRecording","isRecordingRef","cameraRef","activeCameraMode","setActiveCameraMode","matched","find","toUpperCase","includes","handleCameraMediaCaptured","uri","type","durationMs","item","Date","now","thumbnailUri","prev","handlePress","photo","capturePhoto","err","console","error","alert","message","handleLongPress","startRecording","handlePressOut","video","stopRecording","loadMedia","albumId","assets","limit","offset","undefined","ok","fetchedAlbums","filtered","list","filter","i","cameraItem","cancelled","startsWith","fileUri","playableUri","toggleMultiSelect","v","handleSelectItem","exists","length","sequence","timing","toValue","duration","useNativeDriver","start","handleLongPressItem","openImageCropPickerCamera","result","openCamera","mediaType","path","handleOpenCamera","OS","cameraGranted","request","PERMISSIONS","CAMERA","buttonNeutral","buttonNegative","buttonPositive","audioGranted","RECORD_AUDIO","RESULTS","GRANTED","warn","getSelectionIndex","idx","findIndex","handleNext","picked","renderThumb","styles","cameraGridContainer","onPress","cameraGridBox","thumbUri","selIdx","isActive","thumbContainer","onLongPress","source","thumb","thumbFallback","activeOverlay","multiOverlay","multiOverlayActive","selectionBadge","selectionNumber","emptyBadge","videoPlayBadge","name","size","color","videoBadge","videoDuration","container","header","nextBtn","nextText","visible","transparent","animationType","onRequestClose","albumSheetBackdrop","albumSheet","albumSheetHandle","albumSheetTitle","bounces","map","album","albumSheetOption","albumSheetOptionText","albumSheetOptionActive","preview","transform","scale","previewImage","paused","muted","resizeMode","previewOverlay","playPauseCircle","squareCrop","originalCrop","previewControls","cropToggle","albumRow","albumSelector","albumTitle","marginLeft","multiSelectBtn","multiSelectBtnActive","multiSelectText","multiSelectTextActive","data","keyExtractor","numColumns","libraryList","renderItem","contentContainerStyle","grid","ListEmptyComponent","empty","emptyText","tabBar","t","tabActive","cameraContainer","ref","absoluteFillObject","cameraGridOverlay","pointerEvents","gridRow","gridCell","gridCellMiddleCol","gridRowMiddleRow","cameraHeader","max","cameraCloseBtn","cameraFlashContainer","opacity","f","disabled","cameraFooter","bottom","cameraGalleryPreview","cameraGalleryThumb","cameraGalleryThumbPlaceholder","captureRing","captureRingRecording","onPressOut","delayLongPress","captureButton","captureButtonRecording","flipCameraBtn","cameraModeBar","horizontal","showsHorizontalScrollIndicator","cameraModeScrollContainer","mode","cameraModeTextActive","cameraModeTextInactive","create","flex","flexDirection","paddingHorizontal","paddingVertical","borderBottomWidth","zIndex","elevation","fontWeight","fontSize","headerCancel","albumDropdown","borderBottomColor","albumOption","albumOptionText","albumOptionActive","checkmark","right","borderTopLeftRadius","borderTopRightRadius","paddingBottom","maxHeight","alignSelf","marginTop","marginBottom","textAlign","albumSheetCheckmark","overflow","cropIcon","albumArrow","borderRightWidth","rotate","aspectRatio","padding","postTypeBar","postTypeChip","postTypeChipActive","postTypeText","letterSpacing","postTypeTextActive","videoPlayIcon","playPauseText","borderTopWidth","borderTopColor","borderLeftWidth","cameraCloseText","cameraHeaderText","cameraHeaderActiveText","flipCameraText","minWidth","marginHorizontal"],"sourceRoot":"../../../src","sources":["screens/PickScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { MediaItem, MusicTrack } from '../types';
3
+ export interface VideoEditorProps {
4
+ onClose?: () => void;
5
+ onFinishExport?: (editedMedia: Record<string, MediaItem>, paths: string[], editedArray: MediaItem[], cameraMode?: string) => void;
6
+ headerTitle?: string;
7
+ customCancelIcon?: React.ReactNode;
8
+ onCancelPress?: () => void;
9
+ cameraModes?: string[];
10
+ defaultCameraMode?: string;
11
+ musicList?: MusicTrack[];
12
+ }
13
+ export default function VideoEditor({ onClose, onFinishExport, headerTitle, customCancelIcon, onCancelPress, cameraModes, defaultCameraMode, musicList, }: VideoEditorProps): React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { default as VideoEditor } from './components/VideoEditor';
2
+ export type { MediaItem } from './types';
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+ export interface CameraViewRef {
4
+ capturePhoto(): Promise<{
5
+ uri: string;
6
+ width: number;
7
+ height: number;
8
+ }>;
9
+ startRecording(): Promise<void>;
10
+ stopRecording(): Promise<{
11
+ uri: string;
12
+ durationMs: number;
13
+ width: number;
14
+ height: number;
15
+ }>;
16
+ }
17
+ interface Props {
18
+ facing: 'front' | 'back';
19
+ flashMode?: 'on' | 'off';
20
+ style?: ViewStyle;
21
+ }
22
+ export declare const CameraView: React.ForwardRefExoticComponent<Props & React.RefAttributes<CameraViewRef>>;
23
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { FrameCaptureOptions } from '../types';
2
+ export declare function captureFrame(uri: string, options: FrameCaptureOptions): Promise<string>;
@@ -0,0 +1,3 @@
1
+ import type { ImageEditOptions, VideoTrimOptions } from '../types';
2
+ export declare function editImage(uri: string, options: ImageEditOptions): Promise<string>;
3
+ export declare function trimVideo(uri: string, options: VideoTrimOptions): Promise<string>;
@@ -0,0 +1,16 @@
1
+ import type { MediaItem, MediaType } from '../types';
2
+ export type Album = {
3
+ id: string;
4
+ title: string;
5
+ };
6
+ export type MediaQuery = {
7
+ limit?: number;
8
+ offset?: number;
9
+ type?: MediaType | 'all';
10
+ albumId?: string;
11
+ };
12
+ export declare function requestMediaAccess(): Promise<boolean>;
13
+ export declare function listAlbums(): Promise<Album[]>;
14
+ export declare function listMedia(query: MediaQuery): Promise<MediaItem[]>;
15
+ export declare function exportAsset(localId: string): Promise<string>;
16
+ export declare function saveToGallery(uri: string, type: string): Promise<boolean>;
@@ -0,0 +1,2 @@
1
+ import type { MediaItem } from '../types';
2
+ export declare function pickMedia(): Promise<MediaItem[]>;
@@ -0,0 +1 @@
1
+ export declare function playVideo(uri: string): Promise<boolean>;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { ViewStyle, StyleProp } from 'react-native';
3
+ type Props = {
4
+ uri: string;
5
+ paused?: boolean;
6
+ muted?: boolean;
7
+ style?: StyleProp<ViewStyle>;
8
+ resizeMode?: string;
9
+ trimStartMs?: number;
10
+ trimEndMs?: number;
11
+ seekToMs?: number;
12
+ onChange?: (e: {
13
+ nativeEvent: {
14
+ currentTimeMs: number;
15
+ };
16
+ }) => void;
17
+ };
18
+ export declare function VideoPreview(props: Props): React.JSX.Element;
19
+ export {};
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { MediaItem } from '../types';
3
+ interface CropScreenProps {
4
+ item: MediaItem;
5
+ onBack: () => void;
6
+ onSave: (uri: string, thumb?: string, duration?: number) => void;
7
+ }
8
+ export declare function CropScreen({ item, onBack, onSave }: CropScreenProps): React.JSX.Element;
9
+ export {};
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { MediaItem, MusicTrack } from '../types';
3
+ export declare function EditorScreen({ items, initialIndex, onBack, onSaved, onOpenCrop, musicList, }: {
4
+ items: MediaItem[];
5
+ initialIndex?: number;
6
+ onBack: () => void;
7
+ onSaved: (updatedItems: MediaItem[]) => void;
8
+ onOpenCrop: (item: MediaItem) => void;
9
+ musicList?: MusicTrack[];
10
+ }): React.JSX.Element;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { MediaItem } from '../types';
3
+ interface ExportScreenProps {
4
+ editedMedia: Record<string, MediaItem>;
5
+ onHome: () => void;
6
+ onReEdit: (item: MediaItem) => void;
7
+ }
8
+ export declare function ExportScreen({ editedMedia, onHome, onReEdit }: ExportScreenProps): React.JSX.Element;
9
+ export {};
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { MediaItem } from '../types';
3
+ export declare function GalleryScreen({ items, onBack, onSelect, onNext, }: {
4
+ items: MediaItem[];
5
+ onBack: () => void;
6
+ onSelect: (item: MediaItem) => void;
7
+ onNext: () => void;
8
+ }): React.JSX.Element;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { MediaItem } from '../types';
3
+ export declare function PickScreen({ items, onPicked, onNext, headerTitle, customCancelIcon, onCancelPress, cameraModes, onCameraModeChange, defaultCameraMode, }: {
4
+ items: MediaItem[];
5
+ onPicked: (items: MediaItem[]) => void;
6
+ onNext: (picked: MediaItem[]) => void;
7
+ headerTitle?: string;
8
+ customCancelIcon?: React.ReactNode;
9
+ onCancelPress?: () => void;
10
+ cameraModes?: string[];
11
+ onCameraModeChange?: (mode: string) => void;
12
+ defaultCameraMode?: string;
13
+ }): React.JSX.Element;
@@ -0,0 +1,58 @@
1
+ export type MediaType = 'image' | 'video';
2
+ export interface MusicTrack {
3
+ id: string;
4
+ title: string;
5
+ artist: string;
6
+ url: string;
7
+ duration: string;
8
+ cover: string;
9
+ isCustom?: boolean;
10
+ }
11
+ export type MediaItem = {
12
+ id: string;
13
+ uri: string;
14
+ type: MediaType;
15
+ thumbnailUri?: string;
16
+ durationMs?: number;
17
+ width?: number;
18
+ height?: number;
19
+ };
20
+ export type ImageEditOptions = {
21
+ rotateDegrees?: number;
22
+ flipX?: boolean;
23
+ flipY?: boolean;
24
+ brightness?: number;
25
+ contrast?: number;
26
+ saturation?: number;
27
+ grayscale?: boolean;
28
+ tintColor?: string;
29
+ tintOpacity?: number;
30
+ frame?: string;
31
+ frameScale?: number;
32
+ frameOffsetY?: number;
33
+ crop?: {
34
+ x: number;
35
+ y: number;
36
+ width: number;
37
+ height: number;
38
+ };
39
+ effect?: string;
40
+ arFilter?: string;
41
+ overlays?: Array<{
42
+ text: string;
43
+ x: number;
44
+ y: number;
45
+ color: string;
46
+ fontSize: number;
47
+ }>;
48
+ };
49
+ export type VideoTrimOptions = ImageEditOptions & {
50
+ startMs?: number;
51
+ endMs?: number;
52
+ mute?: boolean;
53
+ isImage?: boolean;
54
+ musicUri?: string;
55
+ };
56
+ export type FrameCaptureOptions = {
57
+ timeMs: number;
58
+ };
package/package.json ADDED
@@ -0,0 +1,101 @@
1
+ {
2
+ "name": "@technotoil/image-video-editor",
3
+ "version": "0.1.0",
4
+ "description": "A high-performance React Native image and video editor featuring video trimming, filters, photo overlay frames, and camera/gallery integration.",
5
+ "main": "./lib/module/index.js",
6
+ "types": "./lib/typescript/src/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "source": "./src/index.tsx",
10
+ "types": "./lib/typescript/src/index.d.ts",
11
+ "default": "./lib/module/index.js"
12
+ },
13
+ "./package.json": "./package.json"
14
+ },
15
+ "files": [
16
+ "src",
17
+ "lib",
18
+ "android",
19
+ "ios",
20
+ "cpp",
21
+ "*.podspec",
22
+ "react-native.config.js",
23
+ "!ios/build",
24
+ "!android/build",
25
+ "!android/gradle",
26
+ "!android/gradlew",
27
+ "!android/gradlew.bat",
28
+ "!android/local.properties",
29
+ "!**/__tests__",
30
+ "!**/__fixtures__",
31
+ "!**/__mocks__",
32
+ "!**/.*"
33
+ ],
34
+ "scripts": {
35
+ "example": "yarn workspace @technotoil/image-video-editor-example",
36
+ "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
37
+ "prepare": "bob build && tsc --project tsconfig.build.json",
38
+ "typecheck": "tsc",
39
+ "lint": "eslint \"**/*.{js,ts,tsx}\"",
40
+ "build": "bob build && tsc --project tsconfig.build.json"
41
+ },
42
+ "keywords": [
43
+ "react-native",
44
+ "ios",
45
+ "android",
46
+ "video-editor",
47
+ "image-editor",
48
+ "trim",
49
+ "filters"
50
+ ],
51
+ "repository": {
52
+ "type": "git",
53
+ "url": "git+https://github.com/worktechnotoil/image-video-editor.git"
54
+ },
55
+ "author": "worktechnotoil <work.technotoil@gmail.com> (https://github.com/worktechnotoil)",
56
+ "license": "MIT",
57
+ "publishConfig": {
58
+ "registry": "https://registry.npmjs.org/",
59
+ "access": "public"
60
+ },
61
+ "devDependencies": {
62
+ "@babel/core": "^7.25.2",
63
+ "@react-native/babel-preset": "0.84.0",
64
+ "@types/react": "^19.2.0",
65
+ "@types/react-native-vector-icons": "^6.4.18",
66
+ "del-cli": "^6.0.0",
67
+ "eslint": "^9.35.0",
68
+ "react": "19.2.3",
69
+ "react-native": "0.84.0",
70
+ "react-native-builder-bob": "^0.39.1",
71
+ "react-native-image-crop-picker": "^0.51.1",
72
+ "react-native-safe-area-context": "^5.5.2",
73
+ "react-native-vector-icons": "^10.3.0",
74
+ "react-native-video": "6.19.1",
75
+ "typescript": "^5.9.2"
76
+ },
77
+ "peerDependencies": {
78
+ "react": ">=18.0.0",
79
+ "react-native": ">=0.70.0",
80
+ "react-native-image-crop-picker": "^0.51.1",
81
+ "react-native-safe-area-context": "^5.5.2",
82
+ "react-native-vector-icons": "^10.3.0",
83
+ "react-native-video": ">=6.0.0"
84
+ },
85
+ "workspaces": [
86
+ "example"
87
+ ],
88
+ "packageManager": "yarn@4.11.0",
89
+ "react-native-builder-bob": {
90
+ "source": "src",
91
+ "output": "lib",
92
+ "targets": [
93
+ [
94
+ "module",
95
+ {
96
+ "esm": true
97
+ }
98
+ ]
99
+ ]
100
+ }
101
+ }
@@ -0,0 +1,182 @@
1
+ import React, { useState } from 'react';
2
+ import { Alert, StatusBar, useColorScheme } from 'react-native';
3
+ import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';
4
+ import { PickScreen } from '../screens/PickScreen';
5
+ import { CropScreen } from '../screens/CropScreen';
6
+ import { EditorScreen } from '../screens/EditorScreen';
7
+ import { ExportScreen } from '../screens/ExportScreen';
8
+ import { exportAsset } from '../native/MediaLibrary';
9
+ import type { MediaItem, MusicTrack } from '../types';
10
+
11
+ export interface VideoEditorProps {
12
+ onClose?: () => void;
13
+ onFinishExport?: (
14
+ editedMedia: Record<string, MediaItem>,
15
+ paths: string[],
16
+ editedArray: MediaItem[],
17
+ cameraMode?: string
18
+ ) => void;
19
+ headerTitle?: string;
20
+ customCancelIcon?: React.ReactNode;
21
+ onCancelPress?: () => void;
22
+ cameraModes?: string[];
23
+ defaultCameraMode?: string;
24
+ musicList?: MusicTrack[];
25
+ }
26
+
27
+ export default function VideoEditor({
28
+ onClose,
29
+ onFinishExport,
30
+ headerTitle,
31
+ customCancelIcon,
32
+ onCancelPress,
33
+ cameraModes,
34
+ defaultCameraMode,
35
+ musicList,
36
+ }: VideoEditorProps) {
37
+ const isDarkMode = useColorScheme() === 'dark';
38
+ const [screen, setScreen] = useState<'pick' | 'editor' | 'crop' | 'export'>('pick');
39
+ const [items, setItems] = useState<MediaItem[]>([]);
40
+ const [current, setCurrent] = useState<MediaItem | null>(null);
41
+ const [editedMedia, setEditedMedia] = useState<Record<string, MediaItem>>({});
42
+ const [originals, setOriginals] = useState<Record<string, MediaItem>>({});
43
+ const [selectedCameraMode, setSelectedCameraMode] = useState<string>(defaultCameraMode || 'STORY');
44
+
45
+ const ensureExported = async (item: MediaItem, ignoreEdits = false): Promise<MediaItem> => {
46
+ if (!ignoreEdits && editedMedia[item.id]) {
47
+ return editedMedia[item.id];
48
+ }
49
+ if (!item.uri.startsWith('ph://') && !item.uri.startsWith('content://')) {
50
+ return item;
51
+ }
52
+ try {
53
+ const fileUri = await exportAsset(item.id);
54
+ return { ...item, uri: fileUri };
55
+ } catch (err: any) {
56
+ console.error('ASSET EXPORT FROM LIBRARY FAILED:', err?.message ?? err);
57
+ return item;
58
+ }
59
+ };
60
+
61
+ return (
62
+ <SafeAreaProvider>
63
+ <SafeAreaView style={{ flex: 1, backgroundColor: '#0b0f1a' }} edges={['top', 'bottom', 'left', 'right']}>
64
+ <StatusBar
65
+ barStyle="light-content"
66
+ backgroundColor="transparent"
67
+ translucent={true}
68
+ />
69
+ {screen === 'pick' && (
70
+ <PickScreen
71
+ items={items}
72
+ headerTitle={headerTitle}
73
+ customCancelIcon={customCancelIcon}
74
+ onCancelPress={onCancelPress || onClose}
75
+ cameraModes={cameraModes}
76
+ defaultCameraMode={defaultCameraMode}
77
+ onCameraModeChange={(mode) => {
78
+ setSelectedCameraMode(mode);
79
+ }}
80
+ onPicked={(picked: MediaItem[]) => {
81
+ // Save originals for "Fresh Start" editing
82
+ const newOriginals = { ...originals };
83
+ picked.forEach(p => {
84
+ if (!newOriginals[p.id]) newOriginals[p.id] = p;
85
+ });
86
+ setOriginals(newOriginals);
87
+
88
+ setItems(picked);
89
+ }}
90
+ onNext={async (picked) => {
91
+ if (!picked || picked.length === 0) {
92
+ return;
93
+ }
94
+ const resolvedItems = await Promise.all(
95
+ picked.map(item => ensureExported(item, false))
96
+ );
97
+ setItems(resolvedItems);
98
+ setCurrent(resolvedItems[0]);
99
+ setScreen('editor');
100
+ }}
101
+ />
102
+ )}
103
+ {screen === 'editor' && current && (
104
+ <EditorScreen
105
+ items={items}
106
+ initialIndex={Math.max(0, items.findIndex(it => it.id === current.id))}
107
+ onBack={() => {
108
+ setEditedMedia({});
109
+ const restoredItems = items.map(item => originals[item.id] || item);
110
+ setItems(restoredItems);
111
+ if (onClose) {
112
+ onClose();
113
+ } else {
114
+ setScreen('pick');
115
+ }
116
+ }}
117
+ onSaved={(updatedItems) => {
118
+ const newEditedMedia = { ...editedMedia };
119
+ const paths: string[] = [];
120
+
121
+ updatedItems.forEach(item => {
122
+ newEditedMedia[item.id] = item;
123
+ paths.push(item.uri);
124
+ });
125
+
126
+ setEditedMedia(newEditedMedia);
127
+ setItems(updatedItems);
128
+
129
+ if (onFinishExport) {
130
+ onFinishExport(newEditedMedia, paths, updatedItems, selectedCameraMode);
131
+ }
132
+
133
+ // Do not show the export screen, reset to pick screen
134
+ setScreen('pick');
135
+ }}
136
+ onOpenCrop={(item) => {
137
+ setCurrent(item);
138
+ setScreen('crop');
139
+ }}
140
+ musicList={musicList}
141
+ />
142
+ )}
143
+ {screen === 'crop' && current && (
144
+ <CropScreen
145
+ item={current}
146
+ onBack={() => setScreen('editor')}
147
+ onSave={(uri, thumbnailUri, durationMs) => {
148
+ const updated = {
149
+ ...current,
150
+ uri,
151
+ thumbnailUri: thumbnailUri ?? current.thumbnailUri,
152
+ durationMs: durationMs ?? current.durationMs
153
+ };
154
+
155
+ setEditedMedia((prev: Record<string, MediaItem>) => ({ ...prev, [current.id]: updated }));
156
+
157
+ setItems((prev: MediaItem[]) =>
158
+ prev.map((it) => it.id === current.id ? updated : it)
159
+ );
160
+
161
+ setCurrent(updated);
162
+ setScreen('editor');
163
+ }}
164
+ />
165
+ )}
166
+ {screen === 'export' && (
167
+ <ExportScreen
168
+ editedMedia={editedMedia}
169
+ onHome={() => {
170
+ setEditedMedia({});
171
+ setScreen('pick');
172
+ }}
173
+ onReEdit={(item) => {
174
+ setCurrent(item);
175
+ setScreen('editor');
176
+ }}
177
+ />
178
+ )}
179
+ </SafeAreaView>
180
+ </SafeAreaProvider>
181
+ );
182
+ }
package/src/index.tsx ADDED
@@ -0,0 +1,2 @@
1
+ export { default as VideoEditor } from './components/VideoEditor';
2
+ export type { MediaItem } from './types';