Отчёт.
This commit is contained in:
parent
e3f7da3e4b
commit
1bc1073b83
23
front/premium_store/.gitignore
vendored
Normal file
23
front/premium_store/.gitignore
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
/node_modules
|
||||||
|
/.pnp
|
||||||
|
.pnp.js
|
||||||
|
|
||||||
|
# testing
|
||||||
|
/coverage
|
||||||
|
|
||||||
|
# production
|
||||||
|
/build
|
||||||
|
|
||||||
|
# misc
|
||||||
|
.DS_Store
|
||||||
|
.env.local
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
2
front/premium_store/src/.env
Normal file
2
front/premium_store/src/.env
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
VITE_NODE_ENV=development
|
||||||
|
VITE_API_URL=http://localhost:8080
|
14
front/premium_store/src/components/AddClient.css
Normal file
14
front/premium_store/src/components/AddClient.css
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
.add-client-input{
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
border: 3px solid;
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: #505050;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add-level-button{
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: #505050;
|
||||||
|
background-color: #FFE430;
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
113
front/premium_store/src/components/AddClient.jsx
Normal file
113
front/premium_store/src/components/AddClient.jsx
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
import React, { useState, useEffect } from 'react';
|
||||||
|
import axios from 'axios';
|
||||||
|
import '../styles/App.css';
|
||||||
|
import ClientList from './items/GameClient/ClientList';
|
||||||
|
import './AddClient.css';
|
||||||
|
|
||||||
|
export default function AddClient() {
|
||||||
|
const [clientItems, setClientItems] = useState([]);
|
||||||
|
|
||||||
|
//для создания нового уровня
|
||||||
|
const [clientNickName, setClientNickName] = useState();
|
||||||
|
|
||||||
|
const [clientEmail, setClientEmail] = useState();
|
||||||
|
|
||||||
|
const [clientBalance, setClientBalance] = useState();
|
||||||
|
|
||||||
|
|
||||||
|
//загрузка всех имеющихся уровней при старте
|
||||||
|
useEffect(() => {
|
||||||
|
console.log('Обращение к БД');
|
||||||
|
axios.get('http://localhost:8080/client/')
|
||||||
|
.then((responce) => {
|
||||||
|
console.log(responce.data);
|
||||||
|
setClientItems(responce.data)
|
||||||
|
})
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
//обновить список уровней
|
||||||
|
function CheckArray(){
|
||||||
|
console.log('Обращение к БД');
|
||||||
|
axios.get('http://localhost:8080/client/')
|
||||||
|
.then((responce) => {
|
||||||
|
console.log(responce.data);
|
||||||
|
setClientItems(responce.data)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//добавление нового уровня
|
||||||
|
function addNewClient(){
|
||||||
|
console.log(clientNickName);
|
||||||
|
console.log(clientEmail);
|
||||||
|
console.log(clientBalance);
|
||||||
|
|
||||||
|
if(clientNickName === ''){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {//http://localhost:8080/client/?nickName=11&email=11&balance=11
|
||||||
|
axios.post('http://localhost:8080/client/?nickName=' + clientNickName + '&email=' + clientEmail + '&balance=' + clientBalance)
|
||||||
|
.then((response) => {
|
||||||
|
CheckArray();
|
||||||
|
setClientNickName('');
|
||||||
|
setClientEmail('');
|
||||||
|
setClientBalance('');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//добавили условную отрисовку
|
||||||
|
return(
|
||||||
|
<div>
|
||||||
|
<div className="Group_create_level">
|
||||||
|
<h1>Генератор клиентов</h1>
|
||||||
|
<div>
|
||||||
|
<p style={{fontWeight: "900", marginTop:"10px"}}>
|
||||||
|
Введите никнейм клиента:
|
||||||
|
<input
|
||||||
|
className="add-client-input"
|
||||||
|
value={clientNickName}
|
||||||
|
onChange={e => setClientNickName(e.target.value)}
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
<p style={{fontWeight: "900", marginTop:"10px"}}>
|
||||||
|
Введите почту клиента:
|
||||||
|
<input
|
||||||
|
className="add-client-input"
|
||||||
|
value={clientEmail}
|
||||||
|
onChange={e => setClientEmail(e.target.value)}
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
<p style={{fontWeight: "900", marginTop:"10px"}}>
|
||||||
|
Введите баланс клиента:
|
||||||
|
<input
|
||||||
|
className="add-client-input"
|
||||||
|
value={clientBalance}
|
||||||
|
onChange={e => setClientBalance(e.target.value)}
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<button className='add-level-button'
|
||||||
|
onClick={addNewClient}
|
||||||
|
>
|
||||||
|
Создать клиента
|
||||||
|
</button>
|
||||||
|
<button className='add-level-button'
|
||||||
|
onClick={CheckArray}
|
||||||
|
>
|
||||||
|
Вывести всех клиентов
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="Card_list">
|
||||||
|
{clientItems.length !== 0
|
||||||
|
?
|
||||||
|
<ClientList clientItems={clientItems}
|
||||||
|
/>
|
||||||
|
:
|
||||||
|
<h1 style={{textAlign: 'center'}}>В БД отсутствуют какие-либо клиенты!</h1>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
14
front/premium_store/src/components/AddLevel.css
Normal file
14
front/premium_store/src/components/AddLevel.css
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
.add-level-input{
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
border: 3px solid;
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: #505050;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add-level-button{
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: #505050;
|
||||||
|
background-color: #FFE430;
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
89
front/premium_store/src/components/AddLevel.jsx
Normal file
89
front/premium_store/src/components/AddLevel.jsx
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
import React, { useState, useEffect } from 'react';
|
||||||
|
import axios from 'axios';
|
||||||
|
import '../styles/App.css';
|
||||||
|
import LevelList from './items/Level/LevelList';
|
||||||
|
import './AddLevel.css';
|
||||||
|
|
||||||
|
//компонент для просмотра, создания и удаления уровней
|
||||||
|
const AddLevel = () => {
|
||||||
|
const [levelItems, setLevelItems] = useState([]);
|
||||||
|
|
||||||
|
//для создания нового уровня
|
||||||
|
const [level, setLevel] = useState({level: ''});
|
||||||
|
|
||||||
|
//загрузка всех имеющихся уровней при старте
|
||||||
|
useEffect(() => {
|
||||||
|
console.log('Обращение к БД');
|
||||||
|
axios.get('http://localhost:8080/level/')
|
||||||
|
.then((responce) => {
|
||||||
|
console.log(responce.data);
|
||||||
|
setLevelItems(responce.data)
|
||||||
|
})
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
//обновить список уровней
|
||||||
|
function CheckArray(){
|
||||||
|
console.log('Обращение к БД');
|
||||||
|
axios.get('http://localhost:8080/level/')
|
||||||
|
.then((responce) => {
|
||||||
|
console.log(responce.data);
|
||||||
|
setLevelItems(responce.data)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//добавление нового уровня
|
||||||
|
function addNewLevel(){
|
||||||
|
if(level.level === ''){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
axios.post('http://localhost:8080/level/?Level=' + parseInt(level.level, 10))
|
||||||
|
.then((response) => {
|
||||||
|
CheckArray();
|
||||||
|
setLevel({level: ''});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//добавили условную отрисовку
|
||||||
|
return(
|
||||||
|
<div>
|
||||||
|
<div className="Group_create_level">
|
||||||
|
<h1>Генератор уровней</h1>
|
||||||
|
<div>
|
||||||
|
<p style={{fontWeight: "900"}}>
|
||||||
|
Введите уровень:
|
||||||
|
<input
|
||||||
|
className="add-level-input"
|
||||||
|
value={level.level}
|
||||||
|
onChange={e => setLevel({level: e.target.value})}
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<button className='add-level-button'
|
||||||
|
onClick={addNewLevel}
|
||||||
|
>
|
||||||
|
Создать уровень
|
||||||
|
</button>
|
||||||
|
<button className='add-level-button'
|
||||||
|
onClick={CheckArray}
|
||||||
|
>
|
||||||
|
Вывести все уровни
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="Card_list">
|
||||||
|
{levelItems.length !== 0
|
||||||
|
?
|
||||||
|
<LevelList levelItems={levelItems}
|
||||||
|
/>
|
||||||
|
:
|
||||||
|
<h1 style={{textAlign: 'center'}}>В БД отсутствуют какие-либо уровни!</h1>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default AddLevel;
|
14
front/premium_store/src/components/AddNation.css
Normal file
14
front/premium_store/src/components/AddNation.css
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
.add-nation-input{
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
border: 3px solid;
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: #505050;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add-level-button{
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: #505050;
|
||||||
|
background-color: #FFE430;
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
89
front/premium_store/src/components/AddNation.jsx
Normal file
89
front/premium_store/src/components/AddNation.jsx
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
import React, { useState, useEffect } from 'react';
|
||||||
|
import axios from 'axios';
|
||||||
|
import '../styles/App.css';
|
||||||
|
import NationList from './items/Nation/NationList';
|
||||||
|
import './AddNation.css';
|
||||||
|
|
||||||
|
//компонент для просмотра, создания и удаления уровней
|
||||||
|
const AddNation = () => {
|
||||||
|
const [nationItems, setNationItems] = useState([]);
|
||||||
|
|
||||||
|
//для создания нового уровня
|
||||||
|
const [nation, setNation] = useState({nation: ''});
|
||||||
|
|
||||||
|
//загрузка всех имеющихся уровней при старте
|
||||||
|
useEffect(() => {
|
||||||
|
console.log('Обращение к БД');
|
||||||
|
axios.get('http://localhost:8080/nation/')
|
||||||
|
.then((responce) => {
|
||||||
|
console.log(responce.data);
|
||||||
|
setNationItems(responce.data)
|
||||||
|
})
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
//обновить список уровней
|
||||||
|
function CheckArray(){
|
||||||
|
console.log('Обращение к БД');
|
||||||
|
axios.get('http://localhost:8080/nation/')
|
||||||
|
.then((responce) => {
|
||||||
|
console.log(responce.data);
|
||||||
|
setNationItems(responce.data)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//добавление нового уровня
|
||||||
|
function addNewNation(){
|
||||||
|
if(nation.nation === ''){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
axios.post('http://localhost:8080/nation/?nation=' + nation.nation)
|
||||||
|
.then((response) => {
|
||||||
|
CheckArray();
|
||||||
|
setNation({nation: ''});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//добавили условную отрисовку
|
||||||
|
return(
|
||||||
|
<div>
|
||||||
|
<div className="Group_create_level">
|
||||||
|
<h1>Генератор наций</h1>
|
||||||
|
<div>
|
||||||
|
<p style={{fontWeight: "900"}}>
|
||||||
|
Введите нацию:
|
||||||
|
<input
|
||||||
|
className="add-nation-input"
|
||||||
|
value={nation.nation}
|
||||||
|
onChange={e => setNation({nation: e.target.value})}
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<button className='add-level-button'
|
||||||
|
onClick={addNewNation}
|
||||||
|
>
|
||||||
|
Создать нацию
|
||||||
|
</button>
|
||||||
|
<button className='add-level-button'
|
||||||
|
onClick={CheckArray}
|
||||||
|
>
|
||||||
|
Вывести все нации
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="Card_list">
|
||||||
|
{nationItems.length !== 0
|
||||||
|
?
|
||||||
|
<NationList nationItems={nationItems}
|
||||||
|
/>
|
||||||
|
:
|
||||||
|
<h1 style={{textAlign: 'center'}}>В БД отсутствуют какие-либо нации!</h1>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default AddNation;
|
15
front/premium_store/src/components/AddTank.css
Normal file
15
front/premium_store/src/components/AddTank.css
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
.add-tank-input{
|
||||||
|
margin-top: 10px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
border: 3px solid;
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: #505050;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add-level-button{
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: #505050;
|
||||||
|
background-color: #FFE430;
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
198
front/premium_store/src/components/AddTank.jsx
Normal file
198
front/premium_store/src/components/AddTank.jsx
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
import React, { useState, useEffect, useRef} from 'react';
|
||||||
|
import axios from 'axios';
|
||||||
|
import '../styles/App.css';
|
||||||
|
import TankList from './items/Tank/TankList';
|
||||||
|
import './AddTank.css';
|
||||||
|
|
||||||
|
const AddTank = () => {
|
||||||
|
const [tankItems, setTankItems] = useState([]);
|
||||||
|
|
||||||
|
//для создания нового танка
|
||||||
|
const [tankName, setTankName] = useState({tankName: ''});
|
||||||
|
|
||||||
|
const [tankCost, setTankCost] = useState({tankCost: ''});
|
||||||
|
|
||||||
|
const [nationItems, setNationItems] = useState([]);
|
||||||
|
|
||||||
|
const [levelItems, setLevelItems] = useState([]);
|
||||||
|
|
||||||
|
//храним выбранные нацию и уровень для нового танка
|
||||||
|
const [chooiceNation, setChooiceNation] = useState();
|
||||||
|
const [chooiceLevel, setChooiceLevel] = useState();
|
||||||
|
|
||||||
|
const [fileByte, setFileByte] = useState(null);
|
||||||
|
const inputRef = useRef();
|
||||||
|
|
||||||
|
//загрузка всех имеющихся танков, а также уровней и наций при старте
|
||||||
|
useEffect(() => {
|
||||||
|
console.log('Обращение к БД');
|
||||||
|
axios.get('http://localhost:8080/tank/')
|
||||||
|
.then((responce) => {
|
||||||
|
console.log(responce.data);
|
||||||
|
setTankItems(responce.data)
|
||||||
|
});
|
||||||
|
axios.get('http://localhost:8080/level/')
|
||||||
|
.then((responce) => {
|
||||||
|
console.log(responce.data);
|
||||||
|
setLevelItems(responce.data)
|
||||||
|
});
|
||||||
|
axios.get('http://localhost:8080/nation/')
|
||||||
|
.then((responce) => {
|
||||||
|
console.log(responce.data);
|
||||||
|
setNationItems(responce.data)
|
||||||
|
});
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
//обновить список танков
|
||||||
|
function CheckArray(){
|
||||||
|
console.log('Обращение к БД');
|
||||||
|
axios.get('http://localhost:8080/tank/')
|
||||||
|
.then((responce) => {
|
||||||
|
console.log(responce.data);
|
||||||
|
setTankItems(responce.data)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//добавление нового танка
|
||||||
|
async function addNewTank(){
|
||||||
|
console.log(tankName);
|
||||||
|
console.log(tankCost);
|
||||||
|
console.log(chooiceNation);
|
||||||
|
console.log(chooiceLevel);
|
||||||
|
//console.log(imageURL);
|
||||||
|
|
||||||
|
//const header = new Headers({ "Access-Control-Allow-Origin": "*" });
|
||||||
|
|
||||||
|
axios.post("http://localhost:8080/tank/?firstName=" + tankName.tankName +
|
||||||
|
"&id=" + chooiceNation.id + "&nationId=" + chooiceNation + "&levelId=" + chooiceLevel +
|
||||||
|
"&cost=" + tankCost.tankCost)
|
||||||
|
.then((response) => {
|
||||||
|
console.log("Успешное добавление");
|
||||||
|
console.log(response.data);
|
||||||
|
CheckArray();
|
||||||
|
setTankCost({tankCost: ''});
|
||||||
|
setTankName({tankName: ''});
|
||||||
|
});
|
||||||
|
|
||||||
|
//}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
//хранит картинку для танка
|
||||||
|
const [imageURL, setImageURL] = useState();
|
||||||
|
|
||||||
|
const fileReader = new FileReader();
|
||||||
|
fileReader.onloadend = () => {
|
||||||
|
const tempval = fileReader.result
|
||||||
|
setImageURL(tempval);
|
||||||
|
};
|
||||||
|
|
||||||
|
function handleOnChange(event) {
|
||||||
|
event.preventDefault();
|
||||||
|
const file = event.target.files[0];
|
||||||
|
fileReader.readAsDataURL(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
const getChoiceNation = (newId) => {
|
||||||
|
setChooiceNation(nationItems[newId - 1].id);
|
||||||
|
}
|
||||||
|
|
||||||
|
const getChoiceLevel = (newId) => {
|
||||||
|
setChooiceLevel(levelItems[newId - 1].id);
|
||||||
|
}
|
||||||
|
|
||||||
|
//для добавления картинок
|
||||||
|
/*<p style={{fontWeight: "900", marginTop: "10px"}}>
|
||||||
|
Выберите изображение:
|
||||||
|
<input className="add-tank-input" id="formFileSm" type="file"
|
||||||
|
accept="image/jpeg, image/png, image/jpg"
|
||||||
|
value=''
|
||||||
|
style={{marginTop: "10px"}}
|
||||||
|
//onChange={e => setTank({tankImage: e.target.value})}
|
||||||
|
//onChange={() => setTank({tankImage: inputRef.current.files[0]})}
|
||||||
|
onChange={handleOnChange}
|
||||||
|
//ref={inputRef}
|
||||||
|
/>
|
||||||
|
</p>*/
|
||||||
|
|
||||||
|
//добавили условную отрисовку
|
||||||
|
return(
|
||||||
|
<div>
|
||||||
|
<div className="Group_create_level">
|
||||||
|
<h1>Генератор танков</h1>
|
||||||
|
<div>
|
||||||
|
<p style={{fontWeight: "900"}}>
|
||||||
|
Выберите нацию:
|
||||||
|
<select
|
||||||
|
onChange={(event) => getChoiceNation(event.target.selectedIndex)}
|
||||||
|
>
|
||||||
|
<option selected>Выберите нацию</option>
|
||||||
|
{nationItems.map((nationItem) =>
|
||||||
|
<option
|
||||||
|
value={nationItem.nation}
|
||||||
|
key={nationItem.id}
|
||||||
|
>
|
||||||
|
{nationItem.nation}
|
||||||
|
</option>
|
||||||
|
)}
|
||||||
|
</select>
|
||||||
|
</p>
|
||||||
|
<p style={{fontWeight: "900"}}>
|
||||||
|
Выберите уровень:
|
||||||
|
<select style={{marginTop: "10px"}}
|
||||||
|
onChange={(event) => getChoiceLevel(event.target.selectedIndex)}
|
||||||
|
>
|
||||||
|
<option selected>Выберите уровень</option>
|
||||||
|
{levelItems.map((levelItem) =>
|
||||||
|
<option
|
||||||
|
value={levelItem.level}
|
||||||
|
key={levelItem.id}
|
||||||
|
>
|
||||||
|
{levelItem.level}
|
||||||
|
</option>
|
||||||
|
)}
|
||||||
|
</select>
|
||||||
|
</p>
|
||||||
|
<p style={{fontWeight: "900"}}>
|
||||||
|
Введите название:
|
||||||
|
<input
|
||||||
|
className="add-tank-input"
|
||||||
|
value={tankName.tankName}
|
||||||
|
onChange={e => setTankName({tankName: e.target.value})}
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
<p style={{fontWeight: "900"}}>
|
||||||
|
Введите стоимость:
|
||||||
|
<input
|
||||||
|
className="add-tank-input"
|
||||||
|
value={tankCost.tankCost}
|
||||||
|
onChange={e => setTankCost({tankCost: e.target.value})}
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<button className='add-level-button'
|
||||||
|
onClick={addNewTank}
|
||||||
|
>
|
||||||
|
Создать танк
|
||||||
|
</button>
|
||||||
|
<button className='add-level-button'
|
||||||
|
onClick={CheckArray}
|
||||||
|
>
|
||||||
|
Вывести все танки
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="Card_list">
|
||||||
|
{tankItems.length !== 0
|
||||||
|
?
|
||||||
|
<TankList tankItems={tankItems}
|
||||||
|
/>
|
||||||
|
:
|
||||||
|
<h1 style={{textAlign: 'center'}}>В БД отсутствуют какие-либо танки!</h1>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default AddTank
|
Loading…
Reference in New Issue
Block a user