From 3756e90ee500d73ddd6bcfb91027275831632ed5 Mon Sep 17 00:00:00 2001 From: Kongzibapt <53861741+Kongzibapt@users.noreply.github.com> Date: Sun, 31 Jan 2021 15:11:02 +0100 Subject: [PATCH] Ajout de ArticlesByCategory --- src/css/Views/ticket.css | 14 ++++++ src/js/Components/Articles.js | 8 ++-- src/js/Components/ArticlesByCategory.js | 58 +++++++++++++++++++++++++ src/js/Components/SearchBar.js | 1 - src/js/Views/Stock.js | 36 +++++++++++++-- src/js/Views/Ticket.js | 5 +++ 6 files changed, 114 insertions(+), 8 deletions(-) create mode 100644 src/js/Components/ArticlesByCategory.js diff --git a/src/css/Views/ticket.css b/src/css/Views/ticket.css index e69de29..1938140 100644 --- a/src/css/Views/ticket.css +++ b/src/css/Views/ticket.css @@ -0,0 +1,14 @@ +#emptyTicketBox{ + height:50vh; + display:flex; + justify-content: center; + align-items: center; +} + +#emptyTicket{ + color : white; + text-align: center; + font-family: 'Wellfleet', cursive; + font-size:max(2.5vw,30px); + width:25%; +} \ No newline at end of file diff --git a/src/js/Components/Articles.js b/src/js/Components/Articles.js index a1734a8..b3b33d7 100644 --- a/src/js/Components/Articles.js +++ b/src/js/Components/Articles.js @@ -10,16 +10,16 @@ class Articles extends React.Component { } } - - - + componentDidMount(){ + + } render() { return (
- { + { this.props.articles.map((article) => )} diff --git a/src/js/Components/ArticlesByCategory.js b/src/js/Components/ArticlesByCategory.js new file mode 100644 index 0000000..9a60d14 --- /dev/null +++ b/src/js/Components/ArticlesByCategory.js @@ -0,0 +1,58 @@ +import React from 'react'; +import '../../css/Components/articles.css' +import ArticleDetails from './ArticleDetails' + +class ArticlesByCategory extends React.Component { + constructor(props){ + super(props) + this.state = { + mouseEnter:false, + articles:this.props.articles + } + } + + componentDidMount(){ + console.log(this.props.articles) + this.splitArticlesCategories() + } + + splitArticlesCategories = () => { + let counterTab = 0; + let divided = []; + divided.push([this.state.articles[0]]) + for (let i = 1; i{ + console.log(this.state.articles) + }) + + } + + + render() { + return ( +
+
+ {this.state.articles[0][0] && + this.state.articles.map((divided) => + <> +

{divided[0].category.name}

+ {divided.map((article) => + + )} + + ) + } +
+
+ ) + } + } + + export default ArticlesByCategory \ No newline at end of file diff --git a/src/js/Components/SearchBar.js b/src/js/Components/SearchBar.js index f52c049..300ce23 100644 --- a/src/js/Components/SearchBar.js +++ b/src/js/Components/SearchBar.js @@ -1,4 +1,3 @@ -import axios from 'axios'; import React from 'react'; import '../../css/Components/searchbar.css'; diff --git a/src/js/Views/Stock.js b/src/js/Views/Stock.js index 03a7454..9e5291d 100644 --- a/src/js/Views/Stock.js +++ b/src/js/Views/Stock.js @@ -2,6 +2,7 @@ import React from 'react'; import '../../css/Views/stock.css'; import Header from '../Components/Header'; import Articles from '../Components/Articles'; +import ArticlesByCategory from '../Components/ArticlesByCategory'; import Navbar from '../Components/Navbar'; import CreateArticle from '../Components/CreateArticle'; import 'react-perfect-scrollbar/dist/css/styles.css'; @@ -29,7 +30,10 @@ export default class Stock extends React.Component { article:{}, imageFile:{}, articles:[], - categoryToModify:'' + categoryToModify:'', + categorySorted:false, + dividedArticles:[], + onSortedCategories:false } } @@ -38,6 +42,29 @@ export default class Stock extends React.Component { } // Implémenter la fonction sortArticles : + sortArticles = (sortType) => { + + let sorted; + if (sortType === "name"){ + sorted = [...this.state.articles].sort((a, b) => a.name.localeCompare(b.name)) + } else { + sorted = [...this.state.articles].sort((a, b) => b[sortType] - a[sortType]); + } + + if (sortType === 'category_id'){ + this.setState({articles:sorted},() => { + this.setState({onSortedCategories:true}) + }) + }else{ + this.setState({articles:sorted},() => { + console.log(this.state.articles) + + }) + } + + + + } getArticles = () => { axios.get('https://etud.insa-toulouse.fr/~proximo/v2/api/articles') @@ -137,6 +164,7 @@ export default class Stock extends React.Component { } + render() { @@ -155,8 +183,10 @@ export default class Stock extends React.Component {
- {this.state.articles && this.state.articles[0]? - + {this.state.articles && this.state.articles[0] ? + this.state.onSortedCategories ? + + : : }
diff --git a/src/js/Views/Ticket.js b/src/js/Views/Ticket.js index 57aea19..69371c8 100644 --- a/src/js/Views/Ticket.js +++ b/src/js/Views/Ticket.js @@ -27,6 +27,11 @@ export default class Stock extends React.Component {
+
+

+ Scanne tes articles pour remplir le ticket de caisse ! +

+
)}