fix: fixed eslint errors
Some checks failed
Frontend CI / Lint and Build Frontend (pull_request) Failing after 21s
Some checks failed
Frontend CI / Lint and Build Frontend (pull_request) Failing after 21s
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import './Footer.css';
|
import './Footer.css';
|
||||||
import { useLanguage } from '../contexts/LanguageContext';
|
import { useLanguage } from '../hooks/useLanguage';
|
||||||
|
|
||||||
const Footer = () => {
|
const Footer = () => {
|
||||||
const { t } = useLanguage();
|
const { t } = useLanguage();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import { useLanguage } from '../contexts/LanguageContext';
|
import { useLanguage } from '../hooks/useLanguage';
|
||||||
import LanguageSwitcher from './LanguageSwitcher';
|
import LanguageSwitcher from './LanguageSwitcher';
|
||||||
import './Header.css';
|
import './Header.css';
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useLanguage } from '../contexts/LanguageContext';
|
import { useLanguage } from '../hooks/useLanguage';
|
||||||
import './LanguageSwitcher.css';
|
import './LanguageSwitcher.css';
|
||||||
|
|
||||||
const LanguageSwitcher = () => {
|
const LanguageSwitcher = () => {
|
||||||
|
|||||||
@@ -1,86 +1,5 @@
|
|||||||
import React, { createContext, useContext, useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
|
import { LanguageContext, translations } from './languageContextData';
|
||||||
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ä!',
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export const LanguageProvider = ({ children }) => {
|
export const LanguageProvider = ({ children }) => {
|
||||||
const [language, setLanguage] = useState('en');
|
const [language, setLanguage] = useState('en');
|
||||||
|
|||||||
75
frontend/src/contexts/languageContextData.js
Normal file
75
frontend/src/contexts/languageContextData.js
Normal file
@@ -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ä!',
|
||||||
|
}
|
||||||
|
};
|
||||||
10
frontend/src/hooks/useLanguage.js
Normal file
10
frontend/src/hooks/useLanguage.js
Normal file
@@ -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;
|
||||||
|
};
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import React, { useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
import { Header, Footer, Button, Card } from '../components';
|
import { Header, Footer, Button, Card } from '../components';
|
||||||
import { useLanguage } from '../contexts/LanguageContext';
|
import { useLanguage } from '../hooks/useLanguage';
|
||||||
import './Home.css';
|
import './Home.css';
|
||||||
|
|
||||||
const Home = () => {
|
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) => {
|
const handleFilterChange = (filterName, value) => {
|
||||||
setFilters(prev => ({
|
setFilters(prev => ({
|
||||||
|
|||||||
Reference in New Issue
Block a user