mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-07-25 21:29:01 +03:00
* fix calendars greying out the current day after midnight The cutoff for disabling future days was computed with setHours(getHours() + 24, -1, 0, 0), which is not "24 hours from now" but tomorrow at the current hour minus one minute. Between 00:00 and 00:59 that lands back on today, and react-day-picker matches range matchers by calendar day, so today itself was disabled, leaving the export dialog's start time stuck on the previous day. TimezoneAwareCalendar also added the configured timezone's raw UTC offset instead of its difference from the browser's, widening the broken window to several hours in negative-offset zones and letting future days through in positive-offset ones. Derive the current date in the display timezone once, then build each cutoff in the space its calendar uses: ReviewActivityCalendar passes timeZone to react-day-picker so its day cells are TZDate and need a real instant, while TimezoneAwareCalendar is handed pre-shifted dates and needs a local one. Also corrects the today prop, which was off by the browser's offset, and the truthiness check that treated a configured timezone of UTC as unset. * pin react-zoom-pan-pinch to 3.6.1 3.7.0 attaches a ResizeObserver to the transform wrapper and content unconditionally and clamps the pan position into the current bounds on every resize. The history player hides itself with display:none while scrubbing and while a new hour of recordings loads, so the observer measures it as 0x0, collapses the bounds to zero, and snaps a zoomed in view back to the top left corner. Zoom scale survives, only the position is lost. That observer was only created for centerOnInit in 3.4.4 through 3.6.1 and 4.0.0 reverted it again, so 3.7.0 is the only affected release. The caret is what picked it up during the React 19 upgrade, so pin the version exactly. Reported in #23807
148 lines
5.0 KiB
JSON
148 lines
5.0 KiB
JSON
{
|
|
"name": "web-new",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite --host",
|
|
"postinstall": "patch-package",
|
|
"build": "tsc && vite build --base=/BASE_PATH/",
|
|
"lint": "eslint --ext .jsx,.js,.tsx,.ts --ignore-path .gitignore . && npm run e2e:lint",
|
|
"e2e:lint": "node e2e/scripts/lint-specs.mjs",
|
|
"lint:fix": "eslint --ext .jsx,.js,.tsx,.ts --ignore-path .gitignore --fix .",
|
|
"preview": "vite preview",
|
|
"prettier:write": "prettier -u -w --ignore-path .gitignore \"*.{ts,tsx,js,jsx,css,html}\"",
|
|
"test": "vitest",
|
|
"coverage": "vitest run --coverage",
|
|
"e2e:build": "tsc && vite build --base=/",
|
|
"e2e": "playwright test --config e2e/playwright.config.ts",
|
|
"e2e:ui": "playwright test --config e2e/playwright.config.ts --ui",
|
|
"e2e:headed": "playwright test --config e2e/playwright.config.ts --headed",
|
|
"i18n:extract": "i18next-cli extract",
|
|
"i18n:extract:ci": "i18next-cli extract --ci",
|
|
"i18n:status": "i18next-cli status"
|
|
},
|
|
"dependencies": {
|
|
"@cycjimmy/jsmpeg-player": "^6.1.2",
|
|
"@hookform/resolvers": "^3.10.0",
|
|
"@melloware/react-logviewer": "^6.1.2",
|
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
"@radix-ui/react-aspect-ratio": "^1.1.2",
|
|
"@radix-ui/react-checkbox": "^1.1.4",
|
|
"@radix-ui/react-collapsible": "^1.1.12",
|
|
"@radix-ui/react-context-menu": "^2.2.16",
|
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
"@radix-ui/react-hover-card": "^1.1.15",
|
|
"@radix-ui/react-label": "^2.1.2",
|
|
"@radix-ui/react-popover": "^1.1.6",
|
|
"@radix-ui/react-progress": "^1.1.8",
|
|
"@radix-ui/react-radio-group": "^1.2.3",
|
|
"@radix-ui/react-scroll-area": "^1.2.3",
|
|
"@radix-ui/react-select": "^2.1.6",
|
|
"@radix-ui/react-separator": "^1.1.7",
|
|
"@radix-ui/react-slider": "^1.2.3",
|
|
"@radix-ui/react-slot": "1.2.4",
|
|
"@radix-ui/react-switch": "^1.1.3",
|
|
"@radix-ui/react-tabs": "^1.1.3",
|
|
"@radix-ui/react-toggle": "^1.1.2",
|
|
"@radix-ui/react-toggle-group": "^1.1.2",
|
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
"@rjsf/core": "^6.4.1",
|
|
"@rjsf/shadcn": "^6.4.1",
|
|
"@rjsf/utils": "^6.4.1",
|
|
"@rjsf/validator-ajv8": "^6.4.1",
|
|
"apexcharts": "^3.52.0",
|
|
"axios": "^1.13.6",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.0.0",
|
|
"copy-to-clipboard": "^3.3.3",
|
|
"date-fns": "^3.6.0",
|
|
"date-fns-tz": "^3.2.0",
|
|
"framer-motion": "^12.38.0",
|
|
"hls.js": "^1.6.15",
|
|
"i18next": "^24.2.0",
|
|
"i18next-http-backend": "^3.0.1",
|
|
"idb-keyval": "^6.2.1",
|
|
"immer": "^10.1.1",
|
|
"js-yaml": "^4.1.1",
|
|
"konva": "^10.2.3",
|
|
"lodash": "^4.18.1",
|
|
"lucide-react": "^0.577.0",
|
|
"monaco-yaml": "^5.4.1",
|
|
"next-themes": "^0.4.6",
|
|
"nosleep.js": "^0.12.0",
|
|
"react": "^19.2.4",
|
|
"react-apexcharts": "^1.4.1",
|
|
"react-day-picker": "^9.14.0",
|
|
"react-device-detect": "^2.2.3",
|
|
"react-dom": "^19.2.4",
|
|
"react-dropzone": "^14.3.8",
|
|
"react-grid-layout": "^2.2.2",
|
|
"react-hook-form": "^7.72.0",
|
|
"react-i18next": "^15.2.0",
|
|
"react-icons": "^5.5.0",
|
|
"react-konva": "^19.2.3",
|
|
"react-markdown": "^9.0.1",
|
|
"react-router-dom": "^6.30.3",
|
|
"react-swipeable": "^7.0.2",
|
|
"react-zoom-pan-pinch": "3.6.1",
|
|
"remark-gfm": "^4.0.0",
|
|
"scroll-into-view-if-needed": "^3.1.0",
|
|
"sonner": "^2.0.7",
|
|
"sort-by": "^1.2.0",
|
|
"strftime": "^0.10.3",
|
|
"swr": "^2.4.1",
|
|
"tailwind-merge": "^2.4.0",
|
|
"tailwind-scrollbar": "^3.1.0",
|
|
"tailwindcss-animate": "^1.0.7",
|
|
"use-long-press": "^3.2.0",
|
|
"vaul": "^1.1.2",
|
|
"vite-plugin-monaco-editor": "^1.1.0",
|
|
"zod": "^3.23.8"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.59.1",
|
|
"@tailwindcss/forms": "^0.5.9",
|
|
"@testing-library/jest-dom": "^6.6.2",
|
|
"@types/js-yaml": "^4.0.9",
|
|
"@types/lodash": "^4.17.12",
|
|
"@types/node": "^20.14.10",
|
|
"@types/react": "^19.2.14",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@types/strftime": "^0.9.8",
|
|
"@typescript-eslint/eslint-plugin": "^7.5.0",
|
|
"@typescript-eslint/parser": "^7.5.0",
|
|
"@vitejs/plugin-react-swc": "^3.8.0",
|
|
"@vitest/coverage-v8": "^3.0.7",
|
|
"autoprefixer": "^10.4.20",
|
|
"eslint": "^8.57.0",
|
|
"eslint-config-prettier": "^9.1.0",
|
|
"eslint-plugin-jest": "^28.2.0",
|
|
"eslint-plugin-prettier": "^5.0.1",
|
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
"eslint-plugin-react-refresh": "^0.4.8",
|
|
"eslint-plugin-vitest-globals": "^1.5.0",
|
|
"fake-indexeddb": "^6.0.0",
|
|
"i18next-cli": "^1.5.11",
|
|
"jest-websocket-mock": "^2.5.0",
|
|
"jsdom": "^24.1.1",
|
|
"monaco-editor": "^0.52.2",
|
|
"msw": "^2.3.5",
|
|
"patch-package": "^8.0.1",
|
|
"postcss": "^8.5.8",
|
|
"prettier": "^3.3.3",
|
|
"prettier-plugin-tailwindcss": "^0.6.5",
|
|
"tailwindcss": "^3.4.9",
|
|
"typescript": "^5.9.3",
|
|
"vite": "^6.4.2",
|
|
"vitest": "^3.0.7"
|
|
},
|
|
"overrides": {
|
|
"@radix-ui/react-compose-refs": "1.1.2",
|
|
"@radix-ui/react-popper": "1.2.8",
|
|
"@radix-ui/react-slot": "1.2.4"
|
|
}
|
|
}
|