Miscellaneous fixes (#23217)
Some checks are pending
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions

* fix hardcoded leading-slash hrefs to respect FRIGATE_BASE_PATH

* update docs for default detector
This commit is contained in:
Josh Hawkins 2026-05-17 15:40:33 -05:00 committed by GitHub
parent 7413ce08d4
commit 32daf6f494
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 52 additions and 12 deletions

View File

@ -72,7 +72,7 @@ This does not affect using hardware for accelerating other tasks such as [semant
# Officially Supported Detectors
Frigate provides a number of builtin detector types. By default, Frigate will use a single OpenVINO detector running on the CPU. Other detectors may require additional configuration as described below. When using multiple detectors they will run in dedicated processes, but pull from a common queue of detection requests from across all cameras.
Frigate provides a number of builtin detector types. By default, Frigate will use a single CPU detector. Other detectors may require additional configuration as described below. When using multiple detectors they will run in dedicated processes, but pull from a common queue of detection requests from across all cameras.
## Edge TPU Detector

View File

@ -6,6 +6,7 @@ import {
isRedirectingToLogin,
setRedirectingToLogin,
} from "@/api/auth-redirect";
import { baseUrl } from "@/api/baseUrl";
export default function ProtectedRoute({
requiredRoles,
@ -24,7 +25,7 @@ export default function ProtectedRoute({
!isRedirectingToLogin()
) {
setRedirectingToLogin(true);
window.location.href = "/login";
window.location.href = `${baseUrl}login`;
}
}, [auth.isLoading, auth.isAuthenticated, auth.user]);

View File

@ -94,7 +94,11 @@ export default function ReviewCard({
toast.success(t("export.toast.success"), {
position: "top-center",
action: (
<a href="/export" target="_blank" rel="noopener noreferrer">
<a
href={`${baseUrl}export`}
target="_blank"
rel="noopener noreferrer"
>
<Button>{t("export.toast.view")}</Button>
</a>
),

View File

@ -1,4 +1,5 @@
import { useApiHost } from "@/api";
import { baseUrl } from "@/api/baseUrl";
import { useCameraFriendlyName } from "@/hooks/use-camera-friendly-name";
import { useTranslation } from "react-i18next";
import useSWR from "swr";
@ -79,7 +80,7 @@ export function ChatAttachmentChip({
<Tooltip>
<TooltipTrigger asChild>
<a
href={`/explore?event_id=${eventId}`}
href={`${baseUrl}explore?event_id=${eventId}`}
target="_blank"
rel="noopener noreferrer"
className={cn(

View File

@ -1,4 +1,5 @@
import { useApiHost } from "@/api";
import { baseUrl } from "@/api/baseUrl";
import { useTranslation } from "react-i18next";
import { LuExternalLink } from "react-icons/lu";
import {
@ -54,7 +55,7 @@ export function ChatEventThumbnailsRow({
<Tooltip>
<TooltipTrigger asChild>
<a
href={`/explore?event_id=${event.id}`}
href={`${baseUrl}explore?event_id=${event.id}`}
target="_blank"
rel="noopener noreferrer"
onClick={(e) => e.stopPropagation()}

View File

@ -116,7 +116,11 @@ export default function SearchResultActions({
closeButton: true,
dismissible: false,
action: (
<a href="/replay" target="_blank" rel="noopener noreferrer">
<a
href={`${baseUrl}replay`}
target="_blank"
rel="noopener noreferrer"
>
<Button>
{t("dialog.toast.goToReplay", { ns: "views/replay" })}
</Button>

View File

@ -1,4 +1,5 @@
import { useCallback, useState } from "react";
import { baseUrl } from "@/api/baseUrl";
import {
Dialog,
DialogContent,
@ -227,7 +228,11 @@ export default function DebugReplayDialog({
closeButton: true,
dismissible: false,
action: (
<a href="/replay" target="_blank" rel="noopener noreferrer">
<a
href={`${baseUrl}replay`}
target="_blank"
rel="noopener noreferrer"
>
<Button>{t("dialog.toast.goToReplay")}</Button>
</a>
),

View File

@ -163,7 +163,11 @@ export default function ExportDialog({
toast.success(t("export.toast.queued"), {
position: "top-center",
action: (
<a href="/export" target="_blank" rel="noopener noreferrer">
<a
href={`${baseUrl}export`}
target="_blank"
rel="noopener noreferrer"
>
<Button>{t("export.toast.view")}</Button>
</a>
),

View File

@ -1,4 +1,5 @@
import { useCallback, useState } from "react";
import { baseUrl } from "@/api/baseUrl";
import { Drawer, DrawerContent, DrawerTrigger } from "../ui/drawer";
import { Button } from "../ui/button";
import { FaArrowDown, FaCalendarAlt, FaCog, FaFilter } from "react-icons/fa";
@ -190,7 +191,11 @@ export default function MobileReviewSettingsDrawer({
toast.success(t("export.toast.queued", { ns: "components/dialog" }), {
position: "top-center",
action: (
<a href="/export" target="_blank" rel="noopener noreferrer">
<a
href={`${baseUrl}export`}
target="_blank"
rel="noopener noreferrer"
>
<Button>
{t("export.toast.view", { ns: "components/dialog" })}
</Button>

View File

@ -8,6 +8,7 @@ import {
} from "@/components/ui/dropdown-menu";
import { HiDotsHorizontal } from "react-icons/hi";
import { useApiHost } from "@/api";
import { baseUrl } from "@/api/baseUrl";
import { useNavigate } from "react-router-dom";
import { useTranslation } from "react-i18next";
import { Event } from "@/types/event";
@ -79,7 +80,11 @@ export default function EventMenu({
closeButton: true,
dismissible: false,
action: (
<a href="/replay" target="_blank" rel="noopener noreferrer">
<a
href={`${baseUrl}replay`}
target="_blank"
rel="noopener noreferrer"
>
<Button>
{t("dialog.toast.goToReplay", { ns: "views/replay" })}
</Button>

View File

@ -49,6 +49,7 @@ import { FiMoreVertical } from "react-icons/fi";
import { IoMdArrowRoundBack } from "react-icons/io";
import useSWR from "swr";
import MotionReviewTimeline from "@/components/timeline/MotionReviewTimeline";
import { baseUrl } from "@/api/baseUrl";
import { Button } from "@/components/ui/button";
import BlurredIconButton from "@/components/button/BlurredIconButton";
import {
@ -284,7 +285,11 @@ export default function EventView({
{
position: "top-center",
action: (
<a href="/export" target="_blank" rel="noopener noreferrer">
<a
href={`${baseUrl}export`}
target="_blank"
rel="noopener noreferrer"
>
<Button>
{t("export.toast.view", { ns: "components/dialog" })}
</Button>

View File

@ -3,6 +3,7 @@ import { useTranslation } from "react-i18next";
import useSWR from "swr";
import axios from "axios";
import { isDesktop, isMobile } from "react-device-detect";
import { baseUrl } from "@/api/baseUrl";
import Logo from "@/components/Logo";
import { FrigateConfig } from "@/types/frigateConfig";
import { TimeRange } from "@/types/timeline";
@ -363,7 +364,11 @@ export default function MotionSearchView({
{
position: "top-center",
action: (
<a href="/export" target="_blank" rel="noopener noreferrer">
<a
href={`${baseUrl}export`}
target="_blank"
rel="noopener noreferrer"
>
<Button>
{t("export.toast.view", { ns: "components/dialog" })}
</Button>