From 36b108f1ee3778587a48762e909458de44518f49 Mon Sep 17 00:00:00 2001 From: RailTH Date: Fri, 19 Apr 2024 14:44:10 +1100 Subject: [PATCH] Coding template request to api and other fixes --- reactapp/src/App.tsx | 97 ++----------------- reactapp/src/assets/icons/profile-avatar.svg | 1 + reactapp/src/assets/img/profile-avatar.png | Bin 24229 -> 0 bytes reactapp/src/components/ProductCard.tsx | 8 +- reactapp/src/components/ProfileInfo.tsx | 4 +- reactapp/src/utils/types.ts | 2 +- 6 files changed, 18 insertions(+), 94 deletions(-) create mode 100644 reactapp/src/assets/icons/profile-avatar.svg delete mode 100644 reactapp/src/assets/img/profile-avatar.png diff --git a/reactapp/src/App.tsx b/reactapp/src/App.tsx index 5161f20..f0c2a8f 100644 --- a/reactapp/src/App.tsx +++ b/reactapp/src/App.tsx @@ -2,7 +2,6 @@ import HomePage from "./pages/HomePage"; import PaymentPage from "./pages/PaymentPage"; import ProductPage from "./pages/ProductPage"; import ProfilePage from "./pages/ProfilePage"; -import productImage from './assets/img/product-image-1.webp'; import ScamPage from "./pages/ScamPage"; import InfoPage from "./pages/InfoPage"; import Header from "./components/Header"; @@ -21,17 +20,17 @@ export default function App() { isPopupMapVisible: false, }); - const [details, setDetails] = useState([]); - + const [products, setProducts] = useState([]); + const [selectedCategory, setSelectedCategory] = useState('all'); + const [searchQuery, setSearchQuery] = useState(''); + useEffect(() => { - let data; - axios.get('http://localhost:8000') - .then(res => { - data = res.data; - setDetails(data); + axios.get('http://your-api-endpoint/products') + .then(response => { + setProducts(response.data); }) - .catch(err => { - console.log(err); + .catch(error => { + console.error('There was an error fetching the products', error); }); }, []); @@ -42,89 +41,13 @@ export default function App() { })); }; - const [products, setProducts] = useState([ - { - id: 1, - name: 'Шоколадка Mr. Beast', - category: 'foods', - price: 2000, - image: {productImage} - }, - { - id: 2, - name: 'Салат', - category: 'foods', - price: 200, - image: {productImage} - }, - { - id: 3, - name: 'Футболка', - category: 'clothes', - price: 1500, - image: {productImage} - }, - { - id: 4, - name: 'Мороженое', - category: 'foods', - price: 150, - image: {productImage} - }, - { - id: 5, - name: 'Фигурка', - category: 'figures', - price: 1799, - image: {productImage} - }, - { - id: 6, - name: 'Трансформер', - category: 'toys', - price: 19999, - image: {productImage} - }, - { - id: 7, - name: 'Старая игрушка Баз-Лайтер', - category: 'toys', - price: 2564235634563456, - image: {productImage} - }, - { - id: 8, - name: 'Комплект одежды', - category: 'clothes', - price: 756, - image: {productImage} - }, - { - id: 9, - name: 'Книга про ботанику', - category: 'books', - price: 2345, - image: {productImage} - }, - { - id: 10, - name: 'Книга белая', - category: 'books', - price: 150, - image: {productImage} - }, - ]); - const [selectedCategory, setSelectedCategory] = useState('all'); - - const [searchQuery, setSearchQuery] = useState(''); - const handleSearchChange = (query: string) => { setSearchQuery(query); }; const filteredProducts = products.filter(product => (selectedCategory === 'all' || product.category === selectedCategory) && - product.name.toLowerCase().includes(searchQuery.toLowerCase()) + product.title.toLowerCase().includes(searchQuery.toLowerCase()) ); const handleSelectCategory = (category: Category | 'all') => { diff --git a/reactapp/src/assets/icons/profile-avatar.svg b/reactapp/src/assets/icons/profile-avatar.svg new file mode 100644 index 0000000..5bfb508 --- /dev/null +++ b/reactapp/src/assets/icons/profile-avatar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/reactapp/src/assets/img/profile-avatar.png b/reactapp/src/assets/img/profile-avatar.png deleted file mode 100644 index ac55c7a7287eb88b8966cf6eb5bc49c20454d697..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24229 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 M07*qoM6N<$g3#)z*8l(j diff --git a/reactapp/src/components/ProductCard.tsx b/reactapp/src/components/ProductCard.tsx index e0f9946..3d6d257 100644 --- a/reactapp/src/components/ProductCard.tsx +++ b/reactapp/src/components/ProductCard.tsx @@ -6,17 +6,17 @@ interface ProductCardProps { } export default function ProductCard({ product }: ProductCardProps) { - const PriceAsString = product.price.toString(); + const priceAsString = product.price.toLocaleString('ru-RU'); return(
- + {product.title}
- {PriceAsString} + {priceAsString}
- {product.name} + {product.title}
) diff --git a/reactapp/src/components/ProfileInfo.tsx b/reactapp/src/components/ProfileInfo.tsx index 87b1555..fcbdb9f 100644 --- a/reactapp/src/components/ProfileInfo.tsx +++ b/reactapp/src/components/ProfileInfo.tsx @@ -1,10 +1,10 @@ import React from "react"; -import ProfileAvatar from '../assets/img/profile-avatar.png'; +import ProfileAvatar from '../assets/icons/profile-avatar.svg'; import '../ProfileStyle.scss'; export default function ProfileInfo() { return( -
+
Роман Константинов
diff --git a/reactapp/src/utils/types.ts b/reactapp/src/utils/types.ts index 5196dd7..f18a445 100644 --- a/reactapp/src/utils/types.ts +++ b/reactapp/src/utils/types.ts @@ -2,7 +2,7 @@ export type Category = 'toys' | 'clothes' | 'figures' | 'foods' | 'books'; export interface Product { id: number; - name: string; + title: string; category: Category; price: number; image: any;