diff --git a/src/App.tsx b/src/App.tsx
index 2cf5239da..4697cab06 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,27 +1,42 @@
-import React from 'react';
+import React, { useState } from 'react';
import './App.scss';
import { GoodsList } from './GoodsList';
-// import { getAll, get5First, getRed } from './api/goods';
-// or
-// import * as goodsAPI from './api/goods';
+import { getAll, get5First, getRedGoods } from './api/goods';
+import { Good } from './types/Good';
-export const App: React.FC = () => (
-
-
Dynamic list of Goods
+export const App: React.FC = () => {
+ const [goods, setGoods] = useState([]);
-
+ const loadAll = () => {
+ getAll().then(setGoods);
+ };
-
+ const load5Goods = () => {
+ get5First().then(setGoods);
+ };
-
+ const loadRedGoods = () => {
+ getRedGoods().then(setGoods);
+ };
-
-
-);
+ return (
+
+
Dynamic list of Goods
+
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/src/GoodsList.tsx b/src/GoodsList.tsx
index ca92d7573..f1ac29c71 100644
--- a/src/GoodsList.tsx
+++ b/src/GoodsList.tsx
@@ -8,7 +8,7 @@ type Props = {
export const GoodsList: React.FC = ({ goods }) => (
{goods.map(good => (
- -
+
-
{good.name}
))}
diff --git a/src/api/goods.ts b/src/api/goods.ts
index 551d0c275..a99968400 100644
--- a/src/api/goods.ts
+++ b/src/api/goods.ts
@@ -8,9 +8,15 @@ export function getAll(): Promise {
}
export const get5First = () => {
- return getAll().then(goods => goods); // sort and get the first 5
+ return getAll().then(goods => {
+ const sortedGoods = goods.sort((a, b) => a.name.localeCompare(b.name));
+
+ return sortedGoods.slice(0, 5);
+ });
};
export const getRedGoods = () => {
- return getAll().then(goods => goods); // get only red
+ return getAll().then(goods => {
+ return goods.filter(good => good.color === 'red');
+ });
};