use reviewsegment as type instead of list of strings

This commit is contained in:
Josh Hawkins 2025-10-12 07:29:06 -05:00
parent d01f353dc6
commit b97618a30e

View File

@ -135,11 +135,11 @@ export default function EventView({
// review interaction // review interaction
const [selectedReviews, setSelectedReviews] = useState<string[]>([]); const [selectedReviews, setSelectedReviews] = useState<ReviewSegment[]>([]);
const onSelectReview = useCallback( const onSelectReview = useCallback(
(review: ReviewSegment, ctrl: boolean) => { (review: ReviewSegment, ctrl: boolean) => {
if (selectedReviews.length > 0 || ctrl) { if (selectedReviews.length > 0 || ctrl) {
const index = selectedReviews.indexOf(review.id); const index = selectedReviews.findIndex((r) => r.id === review.id);
if (index != -1) { if (index != -1) {
if (selectedReviews.length == 1) { if (selectedReviews.length == 1) {
@ -153,7 +153,7 @@ export default function EventView({
} }
} else { } else {
const copy = [...selectedReviews]; const copy = [...selectedReviews];
copy.push(review.id); copy.push(review);
setSelectedReviews(copy); setSelectedReviews(copy);
} }
} else { } else {
@ -175,7 +175,7 @@ export default function EventView({
} }
if (selectedReviews.length < currentReviewItems.length) { if (selectedReviews.length < currentReviewItems.length) {
setSelectedReviews(currentReviewItems.map((seg) => seg.id)); setSelectedReviews(currentReviewItems);
} else { } else {
setSelectedReviews([]); setSelectedReviews([]);
} }
@ -429,7 +429,7 @@ type DetectionReviewProps = {
currentItems: ReviewSegment[] | null; currentItems: ReviewSegment[] | null;
itemsToReview?: number; itemsToReview?: number;
relevantPreviews?: Preview[]; relevantPreviews?: Preview[];
selectedReviews: string[]; selectedReviews: ReviewSegment[];
severity: ReviewSeverity; severity: ReviewSeverity;
filter?: ReviewFilter; filter?: ReviewFilter;
timeRange: { before: number; after: number }; timeRange: { before: number; after: number };
@ -439,7 +439,7 @@ type DetectionReviewProps = {
markAllItemsAsReviewed: (currentItems: ReviewSegment[]) => void; markAllItemsAsReviewed: (currentItems: ReviewSegment[]) => void;
onSelectReview: (review: ReviewSegment, ctrl: boolean) => void; onSelectReview: (review: ReviewSegment, ctrl: boolean) => void;
onSelectAllReviews: () => void; onSelectAllReviews: () => void;
setSelectedReviews: (reviewIds: string[]) => void; setSelectedReviews: (reviews: ReviewSegment[]) => void;
pullLatestData: () => void; pullLatestData: () => void;
}; };
function DetectionReview({ function DetectionReview({
@ -667,7 +667,7 @@ function DetectionReview({
case "r": case "r":
if (selectedReviews.length > 0 && !modifiers.repeat) { if (selectedReviews.length > 0 && !modifiers.repeat) {
currentItems?.forEach((item) => { currentItems?.forEach((item) => {
if (selectedReviews.includes(item.id)) { if (selectedReviews.some((r) => r.id === item.id)) {
item.has_been_reviewed = true; item.has_been_reviewed = true;
markItemAsReviewed(item); markItemAsReviewed(item);
} }
@ -723,7 +723,7 @@ function DetectionReview({
> >
{!loading && currentItems {!loading && currentItems
? currentItems.map((value) => { ? currentItems.map((value) => {
const selected = selectedReviews.includes(value.id); const selected = selectedReviews.some((r) => r.id === value.id);
return ( return (
<div <div