From 0f5910756b4b1577d2deb2aa76ce5d6ef8ecab3c Mon Sep 17 00:00:00 2001 From: Kelvin Date: Sat, 11 Jan 2025 14:33:57 -0300 Subject: [PATCH] feature button to go back to top and translates --- src/locales/ar/translation.json | 3 +- src/locales/be/translation.json | 3 +- src/locales/bg/translation.json | 3 +- src/locales/ca/translation.json | 3 +- src/locales/cs/translation.json | 3 +- src/locales/da/translation.json | 3 +- src/locales/de/translation.json | 3 +- src/locales/en/translation.json | 3 +- src/locales/es/translation.json | 3 +- src/locales/et/translation.json | 3 +- src/locales/fa/translation.json | 5 ++- src/locales/fr/translation.json | 3 +- src/locales/hu/translation.json | 3 +- src/locales/id/translation.json | 3 +- src/locales/it/translation.json | 3 +- src/locales/kk/translation.json | 3 +- src/locales/ko/translation.json | 3 +- src/locales/nb/translation.json | 3 +- src/locales/nl/translation.json | 3 +- src/locales/pl/translation.json | 3 +- src/locales/pt-BR/translation.json | 3 +- src/locales/pt-PT/translation.json | 3 +- src/locales/ro/translation.json | 3 +- src/locales/ru/translation.json | 3 +- src/locales/tr/translation.json | 3 +- src/locales/uk/translation.json | 3 +- src/locales/zh/translation.json | 3 +- .../src/pages/catalogue/catalogue.tsx | 45 ++++++++++--------- 28 files changed, 79 insertions(+), 49 deletions(-) diff --git a/src/locales/ar/translation.json b/src/locales/ar/translation.json index a4724b21..50f12e06 100644 --- a/src/locales/ar/translation.json +++ b/src/locales/ar/translation.json @@ -47,7 +47,8 @@ }, "catalogue": { "next_page": "الصفحة التالية", - "previous_page": "الصفحة السابقة" + "previous_page": "الصفحة السابقة", + "go_up_buttom": "العودة إلى الأعلى" }, "game_details": { "open_download_options": "افتح خيارات التنزيل", diff --git a/src/locales/be/translation.json b/src/locales/be/translation.json index 6618e4f3..25d6549b 100644 --- a/src/locales/be/translation.json +++ b/src/locales/be/translation.json @@ -31,7 +31,8 @@ }, "catalogue": { "next_page": "Наступная старонка", - "previous_page": "Папярэдняя старонка" + "previous_page": "Папярэдняя старонка", + "go_up_buttom": "Вярнуцца да пачатку" }, "game_details": { "open_download_options": "Адкрыць варыянты сцягвання", diff --git a/src/locales/bg/translation.json b/src/locales/bg/translation.json index 3112bb08..24197197 100644 --- a/src/locales/bg/translation.json +++ b/src/locales/bg/translation.json @@ -47,7 +47,8 @@ }, "catalogue": { "next_page": "Следваща страница", - "previous_page": "Предишна страница" + "previous_page": "Предишна страница", + "go_up_buttom": "Обратно към върха" }, "game_details": { "open_download_options": "Варианти за изтегляне", diff --git a/src/locales/ca/translation.json b/src/locales/ca/translation.json index acf4b3c7..d3a925e8 100644 --- a/src/locales/ca/translation.json +++ b/src/locales/ca/translation.json @@ -41,7 +41,8 @@ }, "catalogue": { "next_page": "Pàgina següent", - "previous_page": "Pàgina anterior" + "previous_page": "Pàgina anterior", + "go_up_buttom": "Torneu a la part superior" }, "game_details": { "open_download_options": "Obre les opcions de baixada", diff --git a/src/locales/cs/translation.json b/src/locales/cs/translation.json index c1291444..a4b833b9 100644 --- a/src/locales/cs/translation.json +++ b/src/locales/cs/translation.json @@ -47,7 +47,8 @@ }, "catalogue": { "next_page": "Další strana", - "previous_page": "Předchozí strana" + "previous_page": "Předchozí strana", + "go_up_buttom": "Vraťte se na vrchol" }, "game_details": { "open_download_options": "Otevřít možnosti stahování", diff --git a/src/locales/da/translation.json b/src/locales/da/translation.json index 711c81a3..63337236 100644 --- a/src/locales/da/translation.json +++ b/src/locales/da/translation.json @@ -45,7 +45,8 @@ }, "catalogue": { "next_page": "Næste side", - "previous_page": "Forrige side" + "previous_page": "Forrige side", + "go_up_buttom": "Gå tilbage til toppen" }, "game_details": { "open_download_options": "Åben download muligheder", diff --git a/src/locales/de/translation.json b/src/locales/de/translation.json index bf1eff60..b6bccf10 100644 --- a/src/locales/de/translation.json +++ b/src/locales/de/translation.json @@ -41,7 +41,8 @@ }, "catalogue": { "next_page": "Nächste Seite", - "previous_page": "Vorherige Seite" + "previous_page": "Vorherige Seite", + "go_up_buttom": "Zurück nach oben gehen" }, "game_details": { "open_download_options": "Download-Optionen öffnen", diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index c93cad1a..b3527052 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -54,7 +54,8 @@ "download_sources": "Download sources", "result_count": "{{resultCount}} results", "filter_count": "{{filterCount}} available", - "clear_filters": "Clear {{filterCount}} selected" + "clear_filters": "Clear {{filterCount}} selected", + "go_up_buttom": "Back to top" }, "game_details": { "open_download_options": "Open download options", diff --git a/src/locales/es/translation.json b/src/locales/es/translation.json index 931ee058..f7becf67 100644 --- a/src/locales/es/translation.json +++ b/src/locales/es/translation.json @@ -54,7 +54,8 @@ "download_sources": "Fuentes de descarga", "result_count": "{{resultCount}} resultados", "filter_count": "{{filterCount}} disponibles", - "clear_filters": "Limpiar {{filterCount}} seleccionados" + "clear_filters": "Limpiar {{filterCount}} seleccionados", + "go_up_buttom": "Vuelve a la cima" }, "game_details": { "open_download_options": "Ver opciones de descargas", diff --git a/src/locales/et/translation.json b/src/locales/et/translation.json index 91b4a63a..738a2a4c 100644 --- a/src/locales/et/translation.json +++ b/src/locales/et/translation.json @@ -46,7 +46,8 @@ }, "catalogue": { "next_page": "Järgmine leht", - "previous_page": "Eelmine leht" + "previous_page": "Eelmine leht", + "go_up_buttom": "Minge tippu" }, "game_details": { "open_download_options": "Ava allalaadimise valikud", diff --git a/src/locales/fa/translation.json b/src/locales/fa/translation.json index 2409635f..dda1c304 100644 --- a/src/locales/fa/translation.json +++ b/src/locales/fa/translation.json @@ -31,7 +31,8 @@ }, "catalogue": { "next_page": "صفحه‌ی بعدی", - "previous_page": "صفحه‌ی قبلی" + "previous_page": "صفحه‌ی قبلی", + "go_up_buttom": "به بالا برگردید" }, "game_details": { "open_download_options": "بازکردن آپشن‌های دانلود", @@ -135,4 +136,4 @@ "modal": { "close": "دکمه‌ی خروج" } -} +} \ No newline at end of file diff --git a/src/locales/fr/translation.json b/src/locales/fr/translation.json index 4d310681..17c706f8 100644 --- a/src/locales/fr/translation.json +++ b/src/locales/fr/translation.json @@ -120,6 +120,7 @@ }, "catalogue": { "next_page": "Page suivante", - "previous_page": "Page précédente" + "previous_page": "Page précédente", + "go_up_buttom": "Retourner au sommet" } } diff --git a/src/locales/hu/translation.json b/src/locales/hu/translation.json index 0863d1e8..8d03c88d 100644 --- a/src/locales/hu/translation.json +++ b/src/locales/hu/translation.json @@ -31,7 +31,8 @@ }, "catalogue": { "next_page": "Következő olda", - "previous_page": "Előző olda" + "previous_page": "Előző olda", + "go_up_buttom": "Menj vissza a tetejére" }, "game_details": { "open_download_options": "Letöltési lehetőségek", diff --git a/src/locales/id/translation.json b/src/locales/id/translation.json index ba4a06f1..57159600 100644 --- a/src/locales/id/translation.json +++ b/src/locales/id/translation.json @@ -41,7 +41,8 @@ }, "catalogue": { "next_page": "Halaman Berikutnya", - "previous_page": "Halaman Sebelumnya" + "previous_page": "Halaman Sebelumnya", + "go_up_buttom": "Kembali ke atas" }, "game_details": { "open_download_options": "Buka opsi unduhan", diff --git a/src/locales/it/translation.json b/src/locales/it/translation.json index cf763320..ee3cbc57 100644 --- a/src/locales/it/translation.json +++ b/src/locales/it/translation.json @@ -31,7 +31,8 @@ }, "catalogue": { "next_page": "Pagina successiva", - "previous_page": "Pagina precedente" + "previous_page": "Pagina precedente", + "go_up_buttom": "Torna in cima" }, "game_details": { "open_download_options": "Apri opzioni di download", diff --git a/src/locales/kk/translation.json b/src/locales/kk/translation.json index 6d5d8404..3fd1751c 100644 --- a/src/locales/kk/translation.json +++ b/src/locales/kk/translation.json @@ -40,7 +40,8 @@ }, "catalogue": { "next_page": "Келесі бет", - "previous_page": "Алдыңғы бет" + "previous_page": "Алдыңғы бет", + "go_up_buttom": "Жоғарыға оралу" }, "game_details": { "open_download_options": "Жүктеу нұсқаларын ашу", diff --git a/src/locales/ko/translation.json b/src/locales/ko/translation.json index 2656bb45..7eb79115 100644 --- a/src/locales/ko/translation.json +++ b/src/locales/ko/translation.json @@ -31,7 +31,8 @@ }, "catalogue": { "next_page": "다음 페이지", - "previous_page": "이전 페이지" + "previous_page": "이전 페이지", + "go_up_buttom": "상단으로 돌아갑니다" }, "game_details": { "open_download_options": "다운로드 선택지 열기", diff --git a/src/locales/nb/translation.json b/src/locales/nb/translation.json index 5c5f6882..f97c3225 100644 --- a/src/locales/nb/translation.json +++ b/src/locales/nb/translation.json @@ -45,7 +45,8 @@ }, "catalogue": { "next_page": "Neste side", - "previous_page": "Forrige side" + "previous_page": "Forrige side", + "go_up_buttom": "Gå tilbake til toppen" }, "game_details": { "open_download_options": "Åpne nedlastingsmuligheter", diff --git a/src/locales/nl/translation.json b/src/locales/nl/translation.json index bb7abf59..e12034d0 100644 --- a/src/locales/nl/translation.json +++ b/src/locales/nl/translation.json @@ -31,7 +31,8 @@ }, "catalogue": { "next_page": "Volgende Pagina", - "previous_page": "Vorige Pagina" + "previous_page": "Vorige Pagina", + "go_up_buttom": "Ga terug naar de top" }, "game_details": { "open_download_options": "Open download Instellingen", diff --git a/src/locales/pl/translation.json b/src/locales/pl/translation.json index 945c857a..38c70160 100644 --- a/src/locales/pl/translation.json +++ b/src/locales/pl/translation.json @@ -31,7 +31,8 @@ }, "catalogue": { "next_page": "Następna strona", - "previous_page": "Poprzednia strona" + "previous_page": "Poprzednia strona", + "go_up_buttom": "Wróć na szczyt" }, "game_details": { "open_download_options": "Otwórz opcje pobierania", diff --git a/src/locales/pt-BR/translation.json b/src/locales/pt-BR/translation.json index 1c880176..a4a602a6 100644 --- a/src/locales/pt-BR/translation.json +++ b/src/locales/pt-BR/translation.json @@ -295,7 +295,8 @@ "download_sources": "Fontes de download", "result_count": "{{resultCount}} resultados", "filter_count": "{{filterCount}} disponíveis", - "clear_filters": "Limpar {{filterCount}} selecionados" + "clear_filters": "Limpar {{filterCount}} selecionados", + "go_up_buttom": "Voltar ao topo" }, "modal": { "close": "Botão de fechar" diff --git a/src/locales/pt-PT/translation.json b/src/locales/pt-PT/translation.json index ce081b3f..92cc1e46 100644 --- a/src/locales/pt-PT/translation.json +++ b/src/locales/pt-PT/translation.json @@ -273,7 +273,8 @@ }, "catalogue": { "next_page": "Página seguinte", - "previous_page": "Página anterior" + "previous_page": "Página anterior", + "go_up_buttom": "Voltar ao topo" }, "modal": { "close": "Botão de fechar" diff --git a/src/locales/ro/translation.json b/src/locales/ro/translation.json index 69d14071..7ebca0af 100644 --- a/src/locales/ro/translation.json +++ b/src/locales/ro/translation.json @@ -32,7 +32,8 @@ }, "catalogue": { "next_page": "Pagina următoare", - "previous_page": "Pagina anterioară" + "previous_page": "Pagina anterioară", + "go_up_buttom": "Înapoi în vârf" }, "game_details": { "open_download_options": "Deschide opțiunile de descărcare", diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index 741f5e16..677b2b8d 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -54,7 +54,8 @@ "download_sources": "Источники загрузки", "result_count": "{{resultCount}} результатов", "filter_count": "{{filterCount}} доступных", - "clear_filters": "Очистить {{filterCount}} выбранных" + "clear_filters": "Очистить {{filterCount}} выбранных", + "go_up_buttom": "Вернуться на вершину" }, "game_details": { "open_download_options": "Открыть источники", diff --git a/src/locales/tr/translation.json b/src/locales/tr/translation.json index 6757fdf5..d35ce02d 100644 --- a/src/locales/tr/translation.json +++ b/src/locales/tr/translation.json @@ -31,7 +31,8 @@ }, "catalogue": { "next_page": "Sonraki sayfa", - "previous_page": "Önceki sayfa" + "previous_page": "Önceki sayfa", + "go_up_buttom": "Tepeye dön" }, "game_details": { "open_download_options": "İndirme seçeneklerini aç", diff --git a/src/locales/uk/translation.json b/src/locales/uk/translation.json index ed4b3d58..25be7f19 100644 --- a/src/locales/uk/translation.json +++ b/src/locales/uk/translation.json @@ -40,7 +40,8 @@ }, "catalogue": { "next_page": "Наступна сторінка", - "previous_page": "Попередня сторінка" + "previous_page": "Попередня сторінка", + "go_up_buttom": "Назад до вершини" }, "game_details": { "open_download_options": "Відкрити варіанти завантаження", diff --git a/src/locales/zh/translation.json b/src/locales/zh/translation.json index 664877fa..d6b8300d 100644 --- a/src/locales/zh/translation.json +++ b/src/locales/zh/translation.json @@ -46,7 +46,8 @@ }, "catalogue": { "next_page": "下一页", - "previous_page": "上一页" + "previous_page": "上一页", + "go_up_buttom": "回到顶部" }, "game_details": { "open_download_options": "打开下载菜单", diff --git a/src/renderer/src/pages/catalogue/catalogue.tsx b/src/renderer/src/pages/catalogue/catalogue.tsx index 0e142b45..7a8cef48 100644 --- a/src/renderer/src/pages/catalogue/catalogue.tsx +++ b/src/renderer/src/pages/catalogue/catalogue.tsx @@ -32,9 +32,11 @@ const filterCategoryColors = { publishers: "hsl(200deg 50% 30%)", }; + + const PAGE_SIZE = 20; const TOTAL_ITEMS_TO_SHOW_GO_UP_BUTTOM = 10; -// const LIMIT_SCROLL_TO_DISAPEAR_GO_UP_BUTTOM = 225; +const LIMIT_SCROLL_TO_DISAPEAR_GO_UP_BUTTOM = 500; export default function Catalogue() { const abortControllerRef = useRef(null); @@ -84,29 +86,33 @@ export default function Catalogue() { }, 500) ).current; - useEffect(() => { - results.length > 0 && results.length <= TOTAL_ITEMS_TO_SHOW_GO_UP_BUTTOM - ? setWantGoUpButtonIsVisible(true) - : setWantGoUpButtonIsVisible(false); - console.log(cataloguePageRef.current?.scrollTop); - }, [results]); + const isGoUpButtonVisible = (results: any[], scrollTop: number) => { + const withinLimit = results.length > 0 && results.length <= TOTAL_ITEMS_TO_SHOW_GO_UP_BUTTOM; + return withinLimit && scrollTop >= LIMIT_SCROLL_TO_DISAPEAR_GO_UP_BUTTOM; + }; useEffect(() => { - const handleScroll = () => { + const withinLimit = results.length > 0 && results.length <= TOTAL_ITEMS_TO_SHOW_GO_UP_BUTTOM; + setWantGoUpButtonIsVisible(withinLimit); + }, [results]) + + useEffect(() => { + const handleScroll = debounce(() => { if (cataloguePageRef.current) { - console.log(cataloguePageRef.current.scrollTop); - // setScrollPosition(cataloguePageRef.current.scrollTop); + const scrollTop = cataloguePageRef.current.scrollTop + setWantGoUpButtonIsVisible(isGoUpButtonVisible(results, scrollTop)) } - }; - - if (cataloguePageRef.current) { - cataloguePageRef.current.addEventListener("scroll", handleScroll); + }, 100) + + const ref = cataloguePageRef.current + if (ref) { + ref.addEventListener("scroll", handleScroll); } return () => { - cataloguePageRef.current?.removeEventListener("scroll", handleScroll); + ref?.removeEventListener("scroll", handleScroll); }; - }, []); + }, [results]); useEffect(() => { setResults([]); @@ -264,7 +270,6 @@ export default function Catalogue() { top: 0, behavior: "smooth", }); - setWantGoUpButtonIsVisible(false); } }; @@ -372,14 +377,12 @@ export default function Catalogue() { {wantGoUpButtonIsVisible && ( -
- -
)}