Compare commits

...

3 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
586154d4e1 Update CHANGELOG.md (#12734)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-09 22:27:24 +00:00
Bram
b819231a01 feat: add CopycatWarningToast component for user warnings (#12733)
Introduced a new CopycatWarningToast component that displays a warning about copycat sites. The toast appears at the top-center of the screen and can be dismissed, with the dismissal state stored in local storage to prevent reappearing. Integrated the component into the RootLayout for global visibility.
2026-03-09 23:27:01 +01:00
community-scripts-pr-app[bot]
3ec9eba736 chore: update github-versions.json (#12732)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-09 18:17:57 +00:00
4 changed files with 45 additions and 13 deletions

View File

@@ -451,6 +451,12 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- tools: add Alpine (apk) support to ensure_dependencies and is_package_installed [@MickLesk](https://github.com/MickLesk) ([#12703](https://github.com/community-scripts/ProxmoxVE/pull/12703)) - tools: add Alpine (apk) support to ensure_dependencies and is_package_installed [@MickLesk](https://github.com/MickLesk) ([#12703](https://github.com/community-scripts/ProxmoxVE/pull/12703))
- tools.func: extend hwaccel with ROCm [@MickLesk](https://github.com/MickLesk) ([#12707](https://github.com/community-scripts/ProxmoxVE/pull/12707)) - tools.func: extend hwaccel with ROCm [@MickLesk](https://github.com/MickLesk) ([#12707](https://github.com/community-scripts/ProxmoxVE/pull/12707))
### 🌐 Website
- #### ✨ New Features
- feat: add CopycatWarningToast component for user warnings [@BramSuurdje](https://github.com/BramSuurdje) ([#12733](https://github.com/community-scripts/ProxmoxVE/pull/12733))
## 2026-03-08 ## 2026-03-08
### 🚀 Updated Scripts ### 🚀 Updated Scripts

View File

@@ -1,5 +1,5 @@
{ {
"generated": "2026-03-09T12:12:17Z", "generated": "2026-03-09T18:17:48Z",
"versions": [ "versions": [
{ {
"slug": "2fauth", "slug": "2fauth",
@@ -228,9 +228,9 @@
{ {
"slug": "configarr", "slug": "configarr",
"repo": "raydak-labs/configarr", "repo": "raydak-labs/configarr",
"version": "v1.23.0", "version": "v1.24.0",
"pinned": false, "pinned": false,
"date": "2026-02-23T12:28:13Z" "date": "2026-03-09T15:16:08Z"
}, },
{ {
"slug": "convertx", "slug": "convertx",
@@ -837,9 +837,9 @@
{ {
"slug": "manyfold", "slug": "manyfold",
"repo": "manyfold3d/manyfold", "repo": "manyfold3d/manyfold",
"version": "v0.133.1", "version": "v0.134.0",
"pinned": false, "pinned": false,
"date": "2026-02-26T15:50:34Z" "date": "2026-03-09T13:20:45Z"
}, },
{ {
"slug": "mealie", "slug": "mealie",
@@ -998,9 +998,9 @@
{ {
"slug": "opencloud", "slug": "opencloud",
"repo": "opencloud-eu/opencloud", "repo": "opencloud-eu/opencloud",
"version": "v5.1.0", "version": "v5.2.0",
"pinned": true, "pinned": true,
"date": "2026-02-16T15:04:28Z" "date": "2026-03-09T13:32:31Z"
}, },
{ {
"slug": "opengist", "slug": "opengist",
@@ -1362,9 +1362,9 @@
{ {
"slug": "scanopy", "slug": "scanopy",
"repo": "scanopy/scanopy", "repo": "scanopy/scanopy",
"version": "v0.14.16", "version": "v0.14.17",
"pinned": false, "pinned": false,
"date": "2026-03-08T06:39:25Z" "date": "2026-03-09T05:04:49Z"
}, },
{ {
"slug": "scraparr", "slug": "scraparr",
@@ -1586,9 +1586,9 @@
{ {
"slug": "tracearr", "slug": "tracearr",
"repo": "connorgallopo/Tracearr", "repo": "connorgallopo/Tracearr",
"version": "v1.4.21", "version": "v1.4.22",
"pinned": false, "pinned": false,
"date": "2026-03-03T18:43:20Z" "date": "2026-03-09T17:39:52Z"
}, },
{ {
"slug": "tracktor", "slug": "tracktor",
@@ -1838,9 +1838,9 @@
{ {
"slug": "zoraxy", "slug": "zoraxy",
"repo": "tobychui/zoraxy", "repo": "tobychui/zoraxy",
"version": "v3.3.2-rc2", "version": "v3.3.2-rc3",
"pinned": false, "pinned": false,
"date": "2026-02-27T03:31:25Z" "date": "2026-03-09T13:56:45Z"
}, },
{ {
"slug": "zwave-js-ui", "slug": "zwave-js-ui",

View File

@@ -5,6 +5,7 @@ import { Inter } from "next/font/google";
import Script from "next/script"; import Script from "next/script";
import React from "react"; import React from "react";
import { CopycatWarningToast } from "@/components/copycat-warning-toast";
import { ThemeProvider } from "@/components/theme-provider"; import { ThemeProvider } from "@/components/theme-provider";
import { analytics, basePath } from "@/config/site-config"; import { analytics, basePath } from "@/config/site-config";
import QueryProvider from "@/components/query-provider"; import QueryProvider from "@/components/query-provider";
@@ -116,6 +117,7 @@ export default function RootLayout({
<div className="w-full max-w-[1440px] "> <div className="w-full max-w-[1440px] ">
{children} {children}
<Toaster richColors /> <Toaster richColors />
<CopycatWarningToast />
</div> </div>
</div> </div>
<Footer /> <Footer />

View File

@@ -0,0 +1,24 @@
"use client";
import { useEffect } from "react";
import { toast } from "sonner";
const STORAGE_KEY = "copycat-warning-dismissed";
export function CopycatWarningToast() {
useEffect(() => {
if (typeof window === "undefined")
return;
if (localStorage.getItem(STORAGE_KEY) === "true")
return;
toast.warning("Beware of copycat sites. Always verify the URL is correct before trusting or running scripts.", {
position: "top-center",
duration: Number.POSITIVE_INFINITY,
closeButton: true,
onDismiss: () => localStorage.setItem(STORAGE_KEY, "true"),
});
}, []);
return null;
}