increase annotation offset consts

This commit is contained in:
Josh Hawkins 2026-03-26 10:20:28 -05:00
parent fe1bb4b5e1
commit 996967dece
3 changed files with 36 additions and 24 deletions

View File

@ -9,15 +9,16 @@ import { toast } from "sonner";
import { Trans, useTranslation } from "react-i18next"; import { Trans, useTranslation } from "react-i18next";
import { LuExternalLink, LuInfo, LuMinus, LuPlus } from "react-icons/lu"; import { LuExternalLink, LuInfo, LuMinus, LuPlus } from "react-icons/lu";
import { cn } from "@/lib/utils"; import { cn } from "@/lib/utils";
import {
ANNOTATION_OFFSET_MAX,
ANNOTATION_OFFSET_MIN,
ANNOTATION_OFFSET_STEP,
} from "@/lib/const";
import { isMobile } from "react-device-detect"; import { isMobile } from "react-device-detect";
import { useIsAdmin } from "@/hooks/use-is-admin"; import { useIsAdmin } from "@/hooks/use-is-admin";
import { useDocDomain } from "@/hooks/use-doc-domain"; import { useDocDomain } from "@/hooks/use-doc-domain";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
const OFFSET_MIN = -2500;
const OFFSET_MAX = 2500;
const OFFSET_STEP = 50;
type Props = { type Props = {
className?: string; className?: string;
}; };
@ -43,7 +44,10 @@ export default function AnnotationOffsetSlider({ className }: Props) {
(delta: number) => { (delta: number) => {
setAnnotationOffset((prev) => { setAnnotationOffset((prev) => {
const next = prev + delta; const next = prev + delta;
return Math.max(OFFSET_MIN, Math.min(OFFSET_MAX, next)); return Math.max(
ANNOTATION_OFFSET_MIN,
Math.min(ANNOTATION_OFFSET_MAX, next),
);
}); });
}, },
[setAnnotationOffset], [setAnnotationOffset],
@ -114,17 +118,17 @@ export default function AnnotationOffsetSlider({ className }: Props) {
size="icon" size="icon"
className="size-8 shrink-0" className="size-8 shrink-0"
aria-label="-50ms" aria-label="-50ms"
onClick={() => stepOffset(-OFFSET_STEP)} onClick={() => stepOffset(-ANNOTATION_OFFSET_STEP)}
disabled={annotationOffset <= OFFSET_MIN} disabled={annotationOffset <= ANNOTATION_OFFSET_MIN}
> >
<LuMinus className="size-4" /> <LuMinus className="size-4" />
</Button> </Button>
<div className="w-full flex-1 landscape:flex"> <div className="w-full flex-1 landscape:flex">
<Slider <Slider
value={[annotationOffset]} value={[annotationOffset]}
min={OFFSET_MIN} min={ANNOTATION_OFFSET_MIN}
max={OFFSET_MAX} max={ANNOTATION_OFFSET_MAX}
step={OFFSET_STEP} step={ANNOTATION_OFFSET_STEP}
onValueChange={handleChange} onValueChange={handleChange}
/> />
</div> </div>
@ -134,8 +138,8 @@ export default function AnnotationOffsetSlider({ className }: Props) {
size="icon" size="icon"
className="size-8 shrink-0" className="size-8 shrink-0"
aria-label="+50ms" aria-label="+50ms"
onClick={() => stepOffset(OFFSET_STEP)} onClick={() => stepOffset(ANNOTATION_OFFSET_STEP)}
disabled={annotationOffset >= OFFSET_MAX} disabled={annotationOffset >= ANNOTATION_OFFSET_MAX}
> >
<LuPlus className="size-4" /> <LuPlus className="size-4" />
</Button> </Button>

View File

@ -13,10 +13,11 @@ import { Slider } from "@/components/ui/slider";
import { Trans, useTranslation } from "react-i18next"; import { Trans, useTranslation } from "react-i18next";
import { useDocDomain } from "@/hooks/use-doc-domain"; import { useDocDomain } from "@/hooks/use-doc-domain";
import { useIsAdmin } from "@/hooks/use-is-admin"; import { useIsAdmin } from "@/hooks/use-is-admin";
import {
const OFFSET_MIN = -2500; ANNOTATION_OFFSET_MAX,
const OFFSET_MAX = 2500; ANNOTATION_OFFSET_MIN,
const OFFSET_STEP = 50; ANNOTATION_OFFSET_STEP,
} from "@/lib/const";
type AnnotationSettingsPaneProps = { type AnnotationSettingsPaneProps = {
event: Event; event: Event;
@ -49,7 +50,10 @@ export function AnnotationSettingsPane({
(delta: number) => { (delta: number) => {
setAnnotationOffset((prev) => { setAnnotationOffset((prev) => {
const next = prev + delta; const next = prev + delta;
return Math.max(OFFSET_MIN, Math.min(OFFSET_MAX, next)); return Math.max(
ANNOTATION_OFFSET_MIN,
Math.min(ANNOTATION_OFFSET_MAX, next),
);
}); });
}, },
[setAnnotationOffset], [setAnnotationOffset],
@ -128,16 +132,16 @@ export function AnnotationSettingsPane({
size="icon" size="icon"
className="size-8 shrink-0" className="size-8 shrink-0"
aria-label="-50ms" aria-label="-50ms"
onClick={() => stepOffset(-OFFSET_STEP)} onClick={() => stepOffset(-ANNOTATION_OFFSET_STEP)}
disabled={annotationOffset <= OFFSET_MIN} disabled={annotationOffset <= ANNOTATION_OFFSET_MIN}
> >
<LuMinus className="size-4" /> <LuMinus className="size-4" />
</Button> </Button>
<Slider <Slider
value={[annotationOffset]} value={[annotationOffset]}
min={OFFSET_MIN} min={ANNOTATION_OFFSET_MIN}
max={OFFSET_MAX} max={ANNOTATION_OFFSET_MAX}
step={OFFSET_STEP} step={ANNOTATION_OFFSET_STEP}
onValueChange={handleSliderChange} onValueChange={handleSliderChange}
className="flex-1" className="flex-1"
/> />
@ -147,8 +151,8 @@ export function AnnotationSettingsPane({
size="icon" size="icon"
className="size-8 shrink-0" className="size-8 shrink-0"
aria-label="+50ms" aria-label="+50ms"
onClick={() => stepOffset(OFFSET_STEP)} onClick={() => stepOffset(ANNOTATION_OFFSET_STEP)}
disabled={annotationOffset >= OFFSET_MAX} disabled={annotationOffset >= ANNOTATION_OFFSET_MAX}
> >
<LuPlus className="size-4" /> <LuPlus className="size-4" />
</Button> </Button>

View File

@ -1,6 +1,10 @@
/** ONNX embedding models that require local model downloads. GenAI providers are not in this list. */ /** ONNX embedding models that require local model downloads. GenAI providers are not in this list. */
export const JINA_EMBEDDING_MODELS = ["jinav1", "jinav2"] as const; export const JINA_EMBEDDING_MODELS = ["jinav1", "jinav2"] as const;
export const ANNOTATION_OFFSET_MIN = -10000;
export const ANNOTATION_OFFSET_MAX = 5000;
export const ANNOTATION_OFFSET_STEP = 50;
export const supportedLanguageKeys = [ export const supportedLanguageKeys = [
"en", "en",
"es", "es",