From cadd2425559ccd4d4d88c814a43af2fd60c39e8e Mon Sep 17 00:00:00 2001 From: tomolld Date: Mon, 23 Dec 2024 10:40:47 +0900 Subject: [PATCH 1/2] =?UTF-8?q?LocaleLink=20=E3=81=A8=20NavLocaleLink=20?= =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=9D=E3=83=BC=E3=83=8D=E3=83=B3=E3=83=88?= =?UTF-8?q?=E3=81=A7=20useMatches=20=E3=82=92=20useParams=20=E3=81=AB?= =?UTF-8?q?=E7=BD=AE=E3=81=8D=E6=8F=9B=E3=81=88=E3=80=81=E3=83=AB=E3=83=BC?= =?UTF-8?q?=E3=83=88=E3=83=87=E3=83=BC=E3=82=BF=E3=81=AE=E5=8F=96=E5=BE=97?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E3=82=92=E7=B0=A1=E7=B4=A0=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/app/components/LocaleLink.tsx | 10 ++-------- web/app/components/NavLocaleLink.tsx | 12 ++---------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/web/app/components/LocaleLink.tsx b/web/app/components/LocaleLink.tsx index 2a13b2d0..6b95a947 100644 --- a/web/app/components/LocaleLink.tsx +++ b/web/app/components/LocaleLink.tsx @@ -1,11 +1,6 @@ // LocaleLink.tsx -import { Link, useMatches } from "@remix-run/react"; +import { Link, useParams } from "@remix-run/react"; -function useRootData() { - const matches = useMatches(); - const rootMatch = matches.find((match) => match.id === "root"); - return rootMatch?.data as { locale: string } | undefined; -} export function LocaleLink({ to, @@ -16,8 +11,7 @@ export function LocaleLink({ children: React.ReactNode; className?: string; }) { - const rootData = useRootData(); - const locale = rootData?.locale ?? "en"; + const { locale } = useParams(); const path = `/${locale}${to}`; diff --git a/web/app/components/NavLocaleLink.tsx b/web/app/components/NavLocaleLink.tsx index 8cfd1d28..135be3c2 100644 --- a/web/app/components/NavLocaleLink.tsx +++ b/web/app/components/NavLocaleLink.tsx @@ -1,10 +1,5 @@ -import { NavLink, type NavLinkProps, useMatches } from "@remix-run/react"; +import { NavLink, type NavLinkProps, useParams } from "@remix-run/react"; -function useRootData() { - const matches = useMatches(); - const rootMatch = matches.find((match) => match.id === "root"); - return rootMatch?.data as { locale?: string } | undefined; -} // NavLinkProps を継承 type NavLocaleLinkProps = Omit & { @@ -17,17 +12,14 @@ export function NavLocaleLink({ children, ...rest }: NavLocaleLinkProps) { - const rootData = useRootData(); - const locale = rootData?.locale ?? "en"; + const { locale } = useParams(); - // 先頭のスラッシュを削除したうえで "/:locale" を付与 const normalized = to.startsWith("/") ? to.slice(1) : to; const path = `/${locale}/${normalized}`; return ( From a0c068b39938bf548a2de8396d1868b7d456ec48 Mon Sep 17 00:00:00 2001 From: tomolld Date: Mon, 23 Dec 2024 10:40:58 +0900 Subject: [PATCH 2/2] f --- web/app/components/LocaleLink.tsx | 3 +-- web/app/components/NavLocaleLink.tsx | 9 ++------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/web/app/components/LocaleLink.tsx b/web/app/components/LocaleLink.tsx index 6b95a947..be6054c6 100644 --- a/web/app/components/LocaleLink.tsx +++ b/web/app/components/LocaleLink.tsx @@ -1,7 +1,6 @@ // LocaleLink.tsx import { Link, useParams } from "@remix-run/react"; - export function LocaleLink({ to, children, @@ -11,7 +10,7 @@ export function LocaleLink({ children: React.ReactNode; className?: string; }) { - const { locale } = useParams(); + const { locale } = useParams(); const path = `/${locale}${to}`; diff --git a/web/app/components/NavLocaleLink.tsx b/web/app/components/NavLocaleLink.tsx index 135be3c2..b3fb7357 100644 --- a/web/app/components/NavLocaleLink.tsx +++ b/web/app/components/NavLocaleLink.tsx @@ -1,6 +1,5 @@ import { NavLink, type NavLinkProps, useParams } from "@remix-run/react"; - // NavLinkProps を継承 type NavLocaleLinkProps = Omit & { to: string; @@ -12,17 +11,13 @@ export function NavLocaleLink({ children, ...rest }: NavLocaleLinkProps) { - const { locale } = useParams(); + const { locale } = useParams(); const normalized = to.startsWith("/") ? to.slice(1) : to; const path = `/${locale}/${normalized}`; return ( - + {children} );