First draft of UI
This commit is contained in:
58
src/segmenting/SegmentList.tsx
Normal file
58
src/segmenting/SegmentList.tsx
Normal file
@@ -0,0 +1,58 @@
|
||||
import { JSX } from "react";
|
||||
import Segment from "./Segment";
|
||||
import { createTimestamp } from "../util/timestamp";
|
||||
|
||||
export default function SegmentList({ segments, setSegments }: { segments: Segment[], setSegments: (segments: Segment[]) => void}): JSX.Element {
|
||||
const videoPlayer: HTMLVideoElement = document.getElementById("videoPlayer") as HTMLVideoElement;
|
||||
|
||||
function remSegment(remIndex: number) {
|
||||
setSegments(segments.filter((value: Segment, index: number) => index != remIndex));
|
||||
}
|
||||
|
||||
return <div className="scrollable">
|
||||
<div>
|
||||
{segments.map((segment, index) => {
|
||||
return (
|
||||
<div className="segmentEntry">
|
||||
<div className="segmentData"><input type="text"></input></div>
|
||||
<span>
|
||||
<div className="segmentData">
|
||||
<button
|
||||
onClick={() => {
|
||||
setSegments(segments.map((value: Segment, x: number) =>
|
||||
x == index ? {
|
||||
title: value.title,
|
||||
inTime: videoPlayer.currentTime,
|
||||
outTime: value.outTime
|
||||
} : value))
|
||||
}}
|
||||
>Mark In</button>
|
||||
<span className="timestamp"><b>{createTimestamp(segment.inTime)}</b></span>
|
||||
</div>
|
||||
<div className="segmentData">
|
||||
<button
|
||||
onClick={() => {
|
||||
setSegments(segments.map((value: Segment, x: number) =>
|
||||
x == index ? {
|
||||
title: value.title,
|
||||
inTime: value.inTime,
|
||||
outTime: videoPlayer.currentTime
|
||||
} : value))
|
||||
}}
|
||||
>Mark Out</button>
|
||||
<span className="timestamp"><b>{createTimestamp(segment.outTime)}</b></span>
|
||||
</div>
|
||||
</span>
|
||||
<div className="segmentData"><button onClick={() => remSegment(index)}>-</button></div>
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
|
||||
<button onClick={() => {setSegments([...segments, {
|
||||
title: "",
|
||||
inTime: 0,
|
||||
outTime: 0
|
||||
}])}}>+</button>
|
||||
</div>;
|
||||
}
|
||||
Reference in New Issue
Block a user