- updated version to 1.0.23, enhance audio file handling, and improve UTC synchronization checks

This commit is contained in:
2026-01-06 12:28:08 +00:00
parent 79e759d811
commit ac9b3cc1ea
8 changed files with 73 additions and 18 deletions

View File

@@ -84,15 +84,23 @@ const SoundUpload = () => {
if (currentUrlRef.current) {
URL.revokeObjectURL(currentUrlRef.current);
}
if (e.target?.files && e.target?.files[0]?.type === "audio/mpeg") {
currentUrlRef.current = URL.createObjectURL(e.target.files[0]);
const files = e.target?.files;
if (
files &&
(files[0]?.type === "audio/mp3" ||
files[0]?.type === "audio/mpeg" ||
files[0]?.name.endsWith(".wav"))
) {
const file = e.target?.files;
if(file === null) return;
currentUrlRef.current = URL.createObjectURL(file[0]);
const url = currentUrlRef.current;
setFieldValue("soundUrl", url);
setFieldValue("name", e.target.files[0].name);
setFieldValue("soundFileName", e.target.files[0].name);
setFieldValue("soundFile", e.target.files[0]);
setFieldValue("name", file[0].name);
setFieldValue("soundFileName", file[0].name);
setFieldValue("soundFile", file[0]);
setFieldValue("uploadedAt", Date.now());
if (e?.target?.files[0]?.size >= 1 * 1024 * 1024) {
if (file[0]?.size >= 1 * 1024 * 1024) {
setFieldError("soundFile", "larger than 1mb");
toast.error("File larger than 1MB");
return;

View File

@@ -5,16 +5,29 @@ import { timezones } from "./timezones";
import SystemFileUpload from "./SystemFileUpload";
import type { SystemValues, SystemValuesErrors } from "../../../types/types";
import { useDNSSettings, useSystemConfig } from "../../../hooks/useSystemConfig";
import { ValidateIPaddress } from "../../../utils/utils";
import { ValidateIPaddress, isUtcOutOfSync } from "../../../utils/utils";
import { toast } from "sonner";
// import { useSystemStatus } from "../../../hooks/useSystemStatus";
import { useSystemStatus } from "../../../hooks/useSystemStatus";
const SystemConfigFields = () => {
const { saveSystemSettings, systemSettingsData, saveSystemSettingsLoading } = useSystemConfig();
// const { systemStatusQuery } = useSystemStatus();
const { systemStatusQuery } = useSystemStatus();
const { hardRebootMutation } = useReboots();
const { dnsQuery, dnsMutation } = useDNSSettings();
if (systemStatusQuery?.isLoading || !systemStatusQuery?.data) {
return <div>Loading...</div>;
}
const utcTime = systemStatusQuery?.data?.SystemStatus?.utctime;
const localDate = systemStatusQuery?.data?.SystemStatus?.localdate;
const localTime = systemStatusQuery?.data?.SystemStatus?.localtime;
const utcOutOfSync = isUtcOutOfSync({
utctime: utcTime,
localdate: localDate,
localtime: localTime,
});
const sntpInterval = systemSettingsData?.sntpInterval;
const dnsPrimary = dnsQuery?.data?.propNameServerPrimary?.value;
const dnsSecondary = dnsQuery?.data?.propNameServerSecondary?.value;
@@ -71,6 +84,13 @@ const SystemConfigFields = () => {
>
{({ values, errors, touched, isSubmitting }) => (
<Form className="flex flex-col space-y-5 px-2">
<div>
{utcOutOfSync?.outOfSync ? (
<span className="text-red-800 bg-red-300 border border-red-800 rounded-lg p-2">UTC is out of sync</span>
) : (
<span className="text-green-300 bg-green-800 border border-green-600 rounded-lg p-2">UTC is in sync</span>
)}
</div>
<FormGroup>
<label htmlFor="deviceName" className="font-medium whitespace-nowrap md:w-1/2 text-left">
Device Name

View File

@@ -227,10 +227,6 @@ const SightingModal = ({ isSightingModalOpen, handleClose, sighting, onDelete }:
<dt className="text-gray-300">Motion</dt>
<dd className="font-medium text-2xl ">{sighting?.motion ?? "-"}</dd>
</div>
<div>
<dt className="text-gray-300">Seen Count</dt>
<dd className="font-medium text-2xl">{sighting?.seenCount ?? "-"}</dd>
</div>
{sighting?.make && sighting.make.trim() && sighting.make.toLowerCase() !== "disabled" && (
<div>