From 65ae38918ad03eac5e51e0807ee8d6b0f5f59f99 Mon Sep 17 00:00:00 2001 From: Michael Kohler Date: Tue, 2 Nov 2021 23:10:22 +0100 Subject: [PATCH] fix: fix review selection with multiple languages --- web/src/components/language-info.tsx | 4 ++-- web/src/components/review.tsx | 2 +- web/src/urls.ts | 7 ++++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/web/src/components/language-info.tsx b/web/src/components/language-info.tsx index f33a854d..c75399eb 100644 --- a/web/src/components/language-info.tsx +++ b/web/src/components/language-info.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { Link } from 'react-router-dom'; import { Localized } from '@fluent/react'; -import { useLocaleUrl, getReviewUrl } from '../urls'; +import { useLocaleUrl, useReviewUrl } from '../urls'; type Props = { total: number; @@ -22,7 +22,7 @@ const LanguageInfo = (props: Props) => { const rejectedSentences = rejected; const localizedAddUrl = useLocaleUrl('/add'); - const localizedReviewUrl = getReviewUrl(language); + const localizedReviewUrl = useReviewUrl(language); return (
diff --git a/web/src/components/review.tsx b/web/src/components/review.tsx index d227c3f3..1411ea0f 100644 --- a/web/src/components/review.tsx +++ b/web/src/components/review.tsx @@ -71,7 +71,7 @@ export default function Review() { const onSelectLanguage = (language: string) => { setLanguage(language); - history.push(getReviewUrl(language)); + history.push(getReviewUrl(match.params.locale, language)); }; const onReviewed = (reviewedState: ReviewedState) => { diff --git a/web/src/urls.ts b/web/src/urls.ts index e3d7d9f8..8edfddb6 100644 --- a/web/src/urls.ts +++ b/web/src/urls.ts @@ -2,7 +2,7 @@ import { useRouteMatch } from 'react-router-dom'; type LocaleMatch = { locale: string }; -export const getReviewUrl = (language: string | undefined) => { +export const useReviewUrl = (language: string | undefined) => { const match = useRouteMatch(); const locale = match?.params?.locale; const prefix = locale ? `/${locale}` : ''; @@ -10,6 +10,11 @@ export const getReviewUrl = (language: string | undefined) => { return `${prefix}/review/${languageToReview}`; }; +export const getReviewUrl = (locale: string, language: string | undefined) => { + const languageToReview = language || ''; + return `/${locale}/review/${languageToReview}`; +}; + export const useLocaleUrl = (path: string) => { const match = useRouteMatch(); const locale = match?.params?.locale;