diff --git a/public/wallpapers/wallpaper1.jpg b/public/wallpapers/wallpaper1.jpg new file mode 100644 index 0000000..d91b530 Binary files /dev/null and b/public/wallpapers/wallpaper1.jpg differ diff --git a/public/wallpapers/wallpaper1.png b/public/wallpapers/wallpaper1.png new file mode 100644 index 0000000..0e51d83 Binary files /dev/null and b/public/wallpapers/wallpaper1.png differ diff --git a/public/wallpapers/wallpaper10.jpg b/public/wallpapers/wallpaper10.jpg new file mode 100644 index 0000000..49da791 Binary files /dev/null and b/public/wallpapers/wallpaper10.jpg differ diff --git a/public/wallpapers/wallpaper11.jpg b/public/wallpapers/wallpaper11.jpg new file mode 100644 index 0000000..b200040 Binary files /dev/null and b/public/wallpapers/wallpaper11.jpg differ diff --git a/public/wallpapers/wallpaper12.jpg b/public/wallpapers/wallpaper12.jpg new file mode 100644 index 0000000..264357d Binary files /dev/null and b/public/wallpapers/wallpaper12.jpg differ diff --git a/public/wallpapers/wallpaper2.jpg b/public/wallpapers/wallpaper2.jpg new file mode 100644 index 0000000..6a5640c Binary files /dev/null and b/public/wallpapers/wallpaper2.jpg differ diff --git a/public/wallpapers/wallpaper3.jpg b/public/wallpapers/wallpaper3.jpg new file mode 100644 index 0000000..73d60c5 Binary files /dev/null and b/public/wallpapers/wallpaper3.jpg differ diff --git a/public/wallpapers/wallpaper4.jpg b/public/wallpapers/wallpaper4.jpg new file mode 100644 index 0000000..3620da9 Binary files /dev/null and b/public/wallpapers/wallpaper4.jpg differ diff --git a/public/wallpapers/wallpaper5.jpg b/public/wallpapers/wallpaper5.jpg new file mode 100644 index 0000000..dec36ce Binary files /dev/null and b/public/wallpapers/wallpaper5.jpg differ diff --git a/public/wallpapers/wallpaper6.jpg b/public/wallpapers/wallpaper6.jpg new file mode 100644 index 0000000..23314b2 Binary files /dev/null and b/public/wallpapers/wallpaper6.jpg differ diff --git a/public/wallpapers/wallpaper7.jpg b/public/wallpapers/wallpaper7.jpg new file mode 100644 index 0000000..6c23515 Binary files /dev/null and b/public/wallpapers/wallpaper7.jpg differ diff --git a/public/wallpapers/wallpaper8.jpg b/public/wallpapers/wallpaper8.jpg new file mode 100644 index 0000000..9cf1193 Binary files /dev/null and b/public/wallpapers/wallpaper8.jpg differ diff --git a/public/wallpapers/wallpaper9.jpg b/public/wallpapers/wallpaper9.jpg new file mode 100644 index 0000000..be273b4 Binary files /dev/null and b/public/wallpapers/wallpaper9.jpg differ diff --git a/src/components/video-editor/SettingsPanel.tsx b/src/components/video-editor/SettingsPanel.tsx index 47f6155..6ae4d04 100644 --- a/src/components/video-editor/SettingsPanel.tsx +++ b/src/components/video-editor/SettingsPanel.tsx @@ -1,6 +1,33 @@ -export default function SettingsPanel() { +import { cn } from "@/lib/utils"; + +const WALLPAPER_COUNT = 12; +const WALLPAPER_PATHS = Array.from({ length: WALLPAPER_COUNT }, (_, i) => `/wallpapers/wallpaper${i + 1}.jpg`); + +export default function SettingsPanel({ selected, onWallpaperChange }: { selected: string, onWallpaperChange: (path: string) => void }) { return (
+
+
Choose Background
+
+ {WALLPAPER_PATHS.map((path, idx) => ( +
onWallpaperChange(path)} + onKeyDown={e => { if (e.key === 'Enter' || e.key === ' ') onWallpaperChange(path); }} + role="button" + /> + ))} +
+
Settings
diff --git a/src/components/video-editor/VideoEditor.tsx b/src/components/video-editor/VideoEditor.tsx index e61ec8b..ac57c61 100644 --- a/src/components/video-editor/VideoEditor.tsx +++ b/src/components/video-editor/VideoEditor.tsx @@ -1,11 +1,15 @@ import { useEffect, useRef, useState } from "react"; + import VideoPlayback, { VideoPlaybackRef } from "./VideoPlayback"; import PlaybackControls from "./PlaybackControls"; import TimelineEditor from "./TimelineEditor"; import SettingsPanel from "./SettingsPanel"; +const WALLPAPER_COUNT = 12; +const WALLPAPER_PATHS = Array.from({ length: WALLPAPER_COUNT }, (_, i) => `/wallpapers/wallpaper${i + 1}.jpg`); + export default function VideoEditor() { const [videoPath, setVideoPath] = useState(null); const [loading, setLoading] = useState(true); @@ -13,6 +17,7 @@ export default function VideoEditor() { const [isPlaying, setIsPlaying] = useState(false); const [currentTime, setCurrentTime] = useState(0); const [duration, setDuration] = useState(0); + const [wallpaper, setWallpaper] = useState(WALLPAPER_PATHS[0]); const videoPlaybackRef = useRef(null); const isSeeking = useRef(false); @@ -85,6 +90,7 @@ export default function VideoEditor() { onTimeUpdate={setCurrentTime} onPlayStateChange={setIsPlaying} onError={setError} + wallpaper={wallpaper} />
- +
); } \ No newline at end of file diff --git a/src/components/video-editor/VideoPlayback.tsx b/src/components/video-editor/VideoPlayback.tsx index 93d9175..2e7d7c7 100644 --- a/src/components/video-editor/VideoPlayback.tsx +++ b/src/components/video-editor/VideoPlayback.tsx @@ -7,6 +7,7 @@ interface VideoPlaybackProps { onTimeUpdate: (time: number) => void; onPlayStateChange: (playing: boolean) => void; onError: (error: string) => void; + wallpaper?: string; } export interface VideoPlaybackRef { @@ -20,6 +21,7 @@ const VideoPlayback = forwardRef(({ onTimeUpdate, onPlayStateChange, onError, + wallpaper, }, ref) => { const videoRef = useRef(null); const canvasRef = useRef(null); @@ -70,9 +72,9 @@ const VideoPlayback = forwardRef(({ }, [videoPath]); return ( -