Remove helmet

This commit is contained in:
Jordan Eldredge 2025-06-09 10:52:03 -07:00
parent 74061b782e
commit a9ee896053
5 changed files with 8 additions and 116 deletions

View file

@ -14,5 +14,5 @@ import LegacyApp from "../legacy-client/src/App";
import SearchLogo from "./SearchLogo";
export default function App() {
return <LegacyApp next={true} searchLogo={<SearchLogo />} />;
return <LegacyApp searchLogo={<SearchLogo />} />;
}

View file

@ -1,7 +1,6 @@
"use client";
import React, { useCallback } from "react";
import { connect } from "react-redux";
import Head from "./Head";
import About from "./About";
import Feedback from "./Feedback";
import Header from "./Header";
@ -63,7 +62,6 @@ function App(props) {
return (
<div>
{props.next || <Head />}
<Header searchLogo={props.searchLogo} />
<div {...getRootProps()}>
{props.uploadViewOpen || isDragActive ? (

View file

@ -1,90 +0,0 @@
import React, { useMemo } from "react";
import { connect, useSelector } from "react-redux";
import { Helmet } from "react-helmet";
import * as Selectors from "./redux/selectors";
// import { SCREENSHOT_WIDTH, SCREENSHOT_HEIGHT } from "./constants";
const DESCRIPTION =
"Infinite scroll through 80k Winamp skins with interactive preview";
function useImageTags({ url, width, height, alt }) {
return [
<meta property="og:image" content={url} key={1} />,
<meta property="og:image:width" content={width} key={2} />,
<meta property="og:image:height" content={height} key={3} />,
<meta property="og:image:type" content="image/png" key={4} />,
<meta property="og:image:alt" content={alt} key={5} />,
<meta name="twitter:image" content={url} key={6} />,
<meta property="twitter:image:alt" content={alt} key={7} />,
];
}
function Head({ url: relativeUrl, pageTitle, previewImageUrl }) {
useMemo(() => {
// HACK! Helmet does not remove the values that are hard coded in index.html.
// So, once JS loads, we remove them ourselves being careful not to only remove things that we will rerender.
const elements = window.document.head.querySelectorAll(
"meta, title, link[rel='canonical']"
);
Array.prototype.forEach.call(elements, function (node) {
node.parentNode.removeChild(node);
});
}, []);
const focusedSkinFile = useSelector(Selectors.getFocusedSkinFile);
let readme = focusedSkinFile?.content?.slice(0, 300);
const description = readme || DESCRIPTION;
const pageUrl = `https://skins.webamp.org${relativeUrl}`;
const imageTags = useImageTags(
previewImageUrl
? {
alt: "Screenshot of many Winamp skins in a grid.",
url: previewImageUrl,
//width: SCREENSHOT_WIDTH,
//height: SCREENSHOT_HEIGHT,
width: 1200,
height: 600,
}
: {
alt: "Screenshot of many Winamp skins in a grid.",
url: "https://skin-museum-og-captbaritone-webamp.vercel.app/api/og",
width: "1844",
height: "1297",
}
);
return (
<Helmet canUseDOM={true}>
<meta charSet="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<meta name="theme-color" content="#000000" />
<title>{pageTitle}</title>
<meta name="description" content={description} />
<link rel="canonical" href={pageUrl} />
<meta property="og:url" content={pageUrl} />
<meta property="og:title" content={pageTitle} />
<meta property="og:description" content={description} />
<meta property="og:type" content="website" />
<meta property="og:site-name" content="Winamp Skin Museum" />
<meta name="twitter:site" content="@winampskins" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:creator" content="@captbaritone" />
<meta name="twitter:title" content={pageTitle} />
<meta name="twitter:description" content={description} />
{imageTags}
</Helmet>
);
}
const mapStateToProps = (state) => ({
url: Selectors.getUrl(state),
pageTitle: Selectors.getPageTitle(state),
previewImageUrl: Selectors.getPreviewImageUrl(state),
});
export default connect(mapStateToProps)(Head);

View file

@ -33,7 +33,6 @@
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-dropzone": "^11.1.0",
"react-helmet": "^6.1.0",
"react-window": "^1.8.1",
"redux-observable": "^1.0.0",
"rxjs": "^6.3.3",

View file

@ -11805,11 +11805,16 @@ graphql-yoga@^5.10.10:
lru-cache "^10.0.0"
tslib "^2.8.1"
graphql@16.8.1, graphql@^16.8.1, graphql@^16.9.0:
graphql@^16.8.1:
version "16.8.1"
resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07"
integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==
graphql@^16.9.0:
version "16.11.0"
resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.11.0.tgz#96d17f66370678027fdf59b2d4c20b4efaa8a633"
integrity sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==
grats@^0.0.31:
version "0.0.31"
resolved "https://registry.yarnpkg.com/grats/-/grats-0.0.31.tgz#f094786584a0f2fb345b38e6c37330d3f4f391cd"
@ -18215,7 +18220,7 @@ prompts@^2.0.1, prompts@^2.4.2:
kleur "^3.0.3"
sisteransi "^1.0.5"
prop-types@^15.7.2, prop-types@^15.8.1:
prop-types@^15.8.1:
version "15.8.1"
resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
@ -18539,21 +18544,6 @@ react-error-overlay@6.0.9:
resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz"
integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==
react-fast-compare@^3.1.1:
version "3.2.2"
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49"
integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==
react-helmet@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726"
integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==
dependencies:
object-assign "^4.1.1"
prop-types "^15.7.2"
react-fast-compare "^3.1.1"
react-side-effect "^2.1.0"
"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^18.0.0:
version "18.2.0"
resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
@ -18599,11 +18589,6 @@ react-shallow-renderer@^16.13.1:
object-assign "^4.1.1"
react-is "^16.12.0 || ^17.0.0 || ^18.0.0"
react-side-effect@^2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.2.tgz#dc6345b9e8f9906dc2eeb68700b615e0b4fe752a"
integrity sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==
react-test-renderer@^17.0.1:
version "17.0.2"
resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz"