Skip to content

Commit a7370ae

Browse files
committed
never have an i-frame (frame 0) for segments > 0
1 parent a017107 commit a7370ae

1 file changed

Lines changed: 15 additions & 3 deletions

File tree

src/Timeline.tsx

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@ export const Timeline = ({
2020
vids: Vid[];
2121
}) => {
2222
const [preview, setPreview] = useState<null | { vid: Vid; i: number }>(null);
23+
24+
const fixFroms = () => {
25+
segments.forEach((s, i) => {
26+
if (i == 0) s.from = 0;
27+
if (i > 0 && s.from == 0) s.from = 1;
28+
});
29+
};
30+
2331
return (
2432
<Section name="Timeline">
2533
{vids.length === 0 ? (
@@ -34,7 +42,7 @@ export const Timeline = ({
3442
const getVid = () => vids.find((vid) => vid.name === s.name)!;
3543
const swap = (j: number, k: number) => {
3644
[segments[j], segments[k]] = [segments[k], segments[j]];
37-
segments[0].from = 0;
45+
fixFroms();
3846
setSegments([...segments]);
3947
};
4048

@@ -46,6 +54,7 @@ export const Timeline = ({
4654
s.name = name;
4755
s.to = clamp(s.to, -Infinity, getVid().chunks.length);
4856
s.from = clamp(s.from, 0, s.to - 1);
57+
fixFroms();
4958
setSegments([...segments]);
5059
}}
5160
options={vids.map((vid) => vid.name)}
@@ -54,6 +63,7 @@ export const Timeline = ({
5463
value={s.from}
5564
onChange={(from) => {
5665
s.from = from;
66+
fixFroms();
5767
setSegments([...segments]);
5868
setPreview({ vid: getVid(), i: from });
5969
}}
@@ -94,7 +104,9 @@ export const Timeline = ({
94104
</button>
95105
<button
96106
onClick={() => {
97-
setSegments(segments.filter((_, j) => i !== j));
107+
const newSegments = segments.filter((_, j) => i !== j);
108+
if (newSegments.length) newSegments[0].from = 0;
109+
setSegments(newSegments);
98110
}}
99111
>
100112
delete
@@ -110,7 +122,7 @@ export const Timeline = ({
110122
...segments,
111123
{
112124
name: vids[0]!.name,
113-
from: 0,
125+
from: segments.length ? 1 : 0,
114126
to: vids[0].chunks.length,
115127
repeat: 1,
116128
},

0 commit comments

Comments
 (0)