From 4a60fe3d22492e731ea55afc74fff13294640cae Mon Sep 17 00:00:00 2001 From: David Luzar <5153846+dwelle@users.noreply.github.com> Date: Tue, 29 Apr 2025 18:45:17 +0200 Subject: [PATCH] fix: remove `noreferrer` on internal links (#9452) * fix: remove `noreferrer` on internal links * fix snaps * fix lint --- .eslintrc.json | 6 ++++++ excalidraw-app/components/AI.tsx | 2 +- excalidraw-app/components/EncryptedIcon.tsx | 2 +- excalidraw-app/components/ExcalidrawPlusAppLink.tsx | 2 +- .../tests/__snapshots__/MobileMenu.test.tsx.snap | 2 +- packages/excalidraw/components/HelpDialog.tsx | 4 ++-- packages/excalidraw/components/PublishLibrary.tsx | 2 +- .../components/dropdownMenu/DropdownMenuItemLink.tsx | 5 +++-- .../components/welcome-screen/WelcomeScreen.Center.tsx | 2 +- .../tests/__snapshots__/excalidraw.test.tsx.snap | 8 ++++---- 10 files changed, 21 insertions(+), 14 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 8263b08a9a..89f8227361 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -32,6 +32,12 @@ "name": "jotai", "message": "Do not import from \"jotai\" directly. Use our app-specific modules (\"editor-jotai\" or \"app-jotai\")." } + ], + "react/jsx-no-target-blank": [ + "error", + { + "allowReferrer": true + } ] } } diff --git a/excalidraw-app/components/AI.tsx b/excalidraw-app/components/AI.tsx index 4469d74f66..9a222a968e 100644 --- a/excalidraw-app/components/AI.tsx +++ b/excalidraw-app/components/AI.tsx @@ -73,7 +73,7 @@ export const AIComponents = ({
You can also try Excalidraw+ to get more requests.
+ }/plus?utm_source=excalidraw&utm_medium=app&utm_content=d2c" target="_blank" rel="noopener">Excalidraw+ to get more requests. `, diff --git a/excalidraw-app/components/EncryptedIcon.tsx b/excalidraw-app/components/EncryptedIcon.tsx index 552e7ca82f..f7d8ca6012 100644 --- a/excalidraw-app/components/EncryptedIcon.tsx +++ b/excalidraw-app/components/EncryptedIcon.tsx @@ -10,7 +10,7 @@ export const EncryptedIcon = () => { className="encrypted-icon tooltip" href="https://plus.excalidraw.com/blog/end-to-end-encryption" target="_blank" - rel="noopener noreferrer" + rel="noopener" aria-label={t("encrypted.link")} > diff --git a/excalidraw-app/components/ExcalidrawPlusAppLink.tsx b/excalidraw-app/components/ExcalidrawPlusAppLink.tsx index 76be9a8f07..04cd963022 100644 --- a/excalidraw-app/components/ExcalidrawPlusAppLink.tsx +++ b/excalidraw-app/components/ExcalidrawPlusAppLink.tsx @@ -10,7 +10,7 @@ export const ExcalidrawPlusAppLink = () => { import.meta.env.VITE_APP_PLUS_APP }?utm_source=excalidraw&utm_medium=app&utm_content=signedInUserRedirectButton#excalidraw-redirect`} target="_blank" - rel="noreferrer" + rel="noopener" className="plus-button" > Go to Excalidraw+ diff --git a/excalidraw-app/tests/__snapshots__/MobileMenu.test.tsx.snap b/excalidraw-app/tests/__snapshots__/MobileMenu.test.tsx.snap index 77fc147574..53b16c40ff 100644 --- a/excalidraw-app/tests/__snapshots__/MobileMenu.test.tsx.snap +++ b/excalidraw-app/tests/__snapshots__/MobileMenu.test.tsx.snap @@ -198,7 +198,7 @@ exports[`Test MobileMenu > should initialize with welcome screen and hide once u
( className="HelpDialog__btn" href="https://docs.excalidraw.com" target="_blank" - rel="noopener noreferrer" + rel="noopener" >
{ExternalLinkIcon}
{t("helpDialog.documentation")} @@ -30,7 +30,7 @@ const Header = () => ( className="HelpDialog__btn" href="https://plus.excalidraw.com/blog" target="_blank" - rel="noopener noreferrer" + rel="noopener" >
{ExternalLinkIcon}
{t("helpDialog.blog")} diff --git a/packages/excalidraw/components/PublishLibrary.tsx b/packages/excalidraw/components/PublishLibrary.tsx index c1db912961..580b909d4b 100644 --- a/packages/excalidraw/components/PublishLibrary.tsx +++ b/packages/excalidraw/components/PublishLibrary.tsx @@ -389,7 +389,7 @@ const PublishLibrary = ({
{el} diff --git a/packages/excalidraw/components/dropdownMenu/DropdownMenuItemLink.tsx b/packages/excalidraw/components/dropdownMenu/DropdownMenuItemLink.tsx index 1457f5ae79..d4f549c845 100644 --- a/packages/excalidraw/components/dropdownMenu/DropdownMenuItemLink.tsx +++ b/packages/excalidraw/components/dropdownMenu/DropdownMenuItemLink.tsx @@ -16,7 +16,7 @@ const DropdownMenuItemLink = ({ onSelect, className = "", selected, - rel = "noreferrer", + rel = "noopener", ...rest }: { href: string; @@ -31,11 +31,12 @@ const DropdownMenuItemLink = ({ const handleClick = useHandleDropdownMenuItemClick(rest.onClick, onSelect); return ( + // eslint-disable-next-line react/jsx-no-target-blank {children} diff --git a/packages/excalidraw/tests/__snapshots__/excalidraw.test.tsx.snap b/packages/excalidraw/tests/__snapshots__/excalidraw.test.tsx.snap index bbcc8d7e0b..bb87746c0d 100644 --- a/packages/excalidraw/tests/__snapshots__/excalidraw.test.tsx.snap +++ b/packages/excalidraw/tests/__snapshots__/excalidraw.test.tsx.snap @@ -21,7 +21,7 @@ exports[` > > should render main menu with host menu it
> Test UIOptions prop > Test canvasActions > should rende aria-label="GitHub" class="dropdown-menu-item dropdown-menu-item-base" href="https://github.com/excalidraw/excalidraw" - rel="noreferrer" + rel="noopener" target="_blank" title="GitHub" > @@ -426,7 +426,7 @@ exports[` > Test UIOptions prop > Test canvasActions > should rende aria-label="X" class="dropdown-menu-item dropdown-menu-item-base" href="https://x.com/excalidraw" - rel="noreferrer" + rel="noopener" target="_blank" title="X" > @@ -472,7 +472,7 @@ exports[` > Test UIOptions prop > Test canvasActions > should rende aria-label="Discord" class="dropdown-menu-item dropdown-menu-item-base" href="https://discord.gg/UexuTaE" - rel="noreferrer" + rel="noopener" target="_blank" title="Discord" >