From 19cba1606bcca7a67239d78af3121389d3a7ab6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jarno=20Kiesil=C3=A4inen?= Date: Sat, 2 Aug 2025 16:37:14 +0300 Subject: [PATCH] fix: fixed eslint errors --- frontend/src/components/Footer.jsx | 2 +- frontend/src/components/Header.jsx | 2 +- frontend/src/components/LanguageSwitcher.jsx | 2 +- frontend/src/contexts/LanguageContext.jsx | 85 +------------------- frontend/src/contexts/languageContextData.js | 75 +++++++++++++++++ frontend/src/hooks/useLanguage.js | 10 +++ frontend/src/pages/Home.jsx | 8 +- 7 files changed, 91 insertions(+), 93 deletions(-) create mode 100644 frontend/src/contexts/languageContextData.js create mode 100644 frontend/src/hooks/useLanguage.js diff --git a/frontend/src/components/Footer.jsx b/frontend/src/components/Footer.jsx index c0d7a8f..fdbe63d 100644 --- a/frontend/src/components/Footer.jsx +++ b/frontend/src/components/Footer.jsx @@ -1,6 +1,6 @@ import React from 'react'; import './Footer.css'; -import { useLanguage } from '../contexts/LanguageContext'; +import { useLanguage } from '../hooks/useLanguage'; const Footer = () => { const { t } = useLanguage(); diff --git a/frontend/src/components/Header.jsx b/frontend/src/components/Header.jsx index 74df815..2af746d 100644 --- a/frontend/src/components/Header.jsx +++ b/frontend/src/components/Header.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { Link } from 'react-router-dom'; -import { useLanguage } from '../contexts/LanguageContext'; +import { useLanguage } from '../hooks/useLanguage'; import LanguageSwitcher from './LanguageSwitcher'; import './Header.css'; diff --git a/frontend/src/components/LanguageSwitcher.jsx b/frontend/src/components/LanguageSwitcher.jsx index 0e5d04e..1a397ac 100644 --- a/frontend/src/components/LanguageSwitcher.jsx +++ b/frontend/src/components/LanguageSwitcher.jsx @@ -1,5 +1,5 @@ import React from 'react'; -import { useLanguage } from '../contexts/LanguageContext'; +import { useLanguage } from '../hooks/useLanguage'; import './LanguageSwitcher.css'; const LanguageSwitcher = () => { diff --git a/frontend/src/contexts/LanguageContext.jsx b/frontend/src/contexts/LanguageContext.jsx index de0df80..e601770 100644 --- a/frontend/src/contexts/LanguageContext.jsx +++ b/frontend/src/contexts/LanguageContext.jsx @@ -1,86 +1,5 @@ -import React, { createContext, useContext, useState } from 'react'; - -const LanguageContext = createContext(); - -export const useLanguage = () => { - const context = useContext(LanguageContext); - if (!context) { - throw new Error('useLanguage must be used within a LanguageProvider'); - } - return context; -}; - -const translations = { - en: { - // Header - home: 'Home', - about: 'About', - contact: 'Contact', - - // CTA Section - readyToStart: 'Ready to get started?', - ctaSubtitle: 'Join thousands of developers building amazing applications with our modern stack.', - startBuilding: 'Start Building', - - // Language Switcher - language: 'Language', - english: 'English', - finnish: 'Finnish', - - // Search Page - searchPlaceholder: 'Enter your search query...', - searchButton: 'Search', - searchResults: 'Search Results', - searchResultsSubtitle: 'Here are the results for your search query.', - searchResultsPlaceholder: 'Search results will appear here. Try entering a search term above to get started.', - - // Search Filters - dogFriendly: 'Dog Friendly', - accessible: 'Accessible', - familyFriendly: 'Family Friendly', - peopleCount: 'People', - priceRange: 'Price', - any: 'Any', - - // Footer - footerDescription: 'Find fun things to do!', - }, - fi: { - // Header - home: 'Koti', - about: 'Tietoja', - contact: 'Yhteystiedot', - - - // CTA Section - readyToStart: 'Valmiina aloittamaan?', - ctaSubtitle: 'Liity tuhansien kehittäjien joukkoon, jotka rakentavat upeita sovelluksia modernilla teknologiapinoamme.', - startBuilding: 'Aloita rakentaminen', - - // Language Switcher - language: 'Kieli', - english: 'Englanti', - finnish: 'Suomi', - - // Search Page - searchPlaceholder: 'Syötä hakukyselysi...', - searchButton: 'Hae', - searchResults: 'Hakutulokset', - searchResultsSubtitle: 'Tässä ovat hakutulokset kyselysi perusteella.', - searchResultsPlaceholder: 'Hakutulokset näkyvät täällä. Kokeile syöttää hakusana yllä aloittaaksesi.', - - // Search Filters - dogFriendly: 'Koiraystävällinen', - accessible: 'Esteetön', - familyFriendly: 'Lapsiystävällinen', - peopleCount: 'Henkilöt', - priceRange: 'Hinta', - any: 'Mikä tahansa', - - // Footer - footerDescription: 'Löydä hauskaa tekemistä!', - } -}; +import React, { useState } from 'react'; +import { LanguageContext, translations } from './languageContextData'; export const LanguageProvider = ({ children }) => { const [language, setLanguage] = useState('en'); diff --git a/frontend/src/contexts/languageContextData.js b/frontend/src/contexts/languageContextData.js new file mode 100644 index 0000000..6ddf7b5 --- /dev/null +++ b/frontend/src/contexts/languageContextData.js @@ -0,0 +1,75 @@ +import { createContext } from 'react'; + +export const LanguageContext = createContext(); + +export const translations = { + en: { + // Header + home: 'Home', + about: 'About', + contact: 'Contact', + + // CTA Section + readyToStart: 'Ready to get started?', + ctaSubtitle: 'Join thousands of developers building amazing applications with our modern stack.', + startBuilding: 'Start Building', + + // Language Switcher + language: 'Language', + english: 'English', + finnish: 'Finnish', + + // Search Page + searchPlaceholder: 'Enter your search query...', + searchButton: 'Search', + searchResults: 'Search Results', + searchResultsSubtitle: 'Here are the results for your search query.', + searchResultsPlaceholder: 'Search results will appear here. Try entering a search term above to get started.', + + // Search Filters + dogFriendly: 'Dog Friendly', + accessible: 'Accessible', + familyFriendly: 'Family Friendly', + peopleCount: 'People', + priceRange: 'Price', + any: 'Any', + + // Footer + footerDescription: 'Find fun things to do!', + }, + fi: { + // Header + home: 'Koti', + about: 'Tietoja', + contact: 'Yhteystiedot', + + + // CTA Section + readyToStart: 'Valmiina aloittamaan?', + ctaSubtitle: 'Liity tuhansien kehittäjien joukkoon, jotka rakentavat upeita sovelluksia modernilla teknologiapinoamme.', + startBuilding: 'Aloita rakentaminen', + + // Language Switcher + language: 'Kieli', + english: 'Englanti', + finnish: 'Suomi', + + // Search Page + searchPlaceholder: 'Syötä hakukyselysi...', + searchButton: 'Hae', + searchResults: 'Hakutulokset', + searchResultsSubtitle: 'Tässä ovat hakutulokset kyselysi perusteella.', + searchResultsPlaceholder: 'Hakutulokset näkyvät täällä. Kokeile syöttää hakusana yllä aloittaaksesi.', + + // Search Filters + dogFriendly: 'Koiraystävällinen', + accessible: 'Esteetön', + familyFriendly: 'Lapsiystävällinen', + peopleCount: 'Henkilöt', + priceRange: 'Hinta', + any: 'Mikä tahansa', + + // Footer + footerDescription: 'Löydä hauskaa tekemistä!', + } +}; \ No newline at end of file diff --git a/frontend/src/hooks/useLanguage.js b/frontend/src/hooks/useLanguage.js new file mode 100644 index 0000000..82efa83 --- /dev/null +++ b/frontend/src/hooks/useLanguage.js @@ -0,0 +1,10 @@ +import { useContext } from 'react'; +import { LanguageContext } from '../contexts/languageContextData'; + +export const useLanguage = () => { + const context = useContext(LanguageContext); + if (!context) { + throw new Error('useLanguage must be used within a LanguageProvider'); + } + return context; +}; \ No newline at end of file diff --git a/frontend/src/pages/Home.jsx b/frontend/src/pages/Home.jsx index 4fb4299..21bf963 100644 --- a/frontend/src/pages/Home.jsx +++ b/frontend/src/pages/Home.jsx @@ -1,6 +1,6 @@ import React, { useState } from 'react'; import { Header, Footer, Button, Card } from '../components'; -import { useLanguage } from '../contexts/LanguageContext'; +import { useLanguage } from '../hooks/useLanguage'; import './Home.css'; const Home = () => { @@ -68,13 +68,7 @@ const Home = () => { } ]; - const handleGetStarted = () => { - alert('Get Started button clicked!'); - }; - const handleLearnMore = () => { - alert('Learn More button clicked!'); - }; const handleFilterChange = (filterName, value) => { setFilters(prev => ({