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 !
+
+
)}