diff --git a/src/main/webapp/src/pages/competition/editor/CMAdmin.jsx b/src/main/webapp/src/pages/competition/editor/CMAdmin.jsx index 54b7546..0389c44 100644 --- a/src/main/webapp/src/pages/competition/editor/CMAdmin.jsx +++ b/src/main/webapp/src/pages/competition/editor/CMAdmin.jsx @@ -15,16 +15,16 @@ export function CMAdmin() { const categoryListener = ({data}) => { if (!cat || data.id !== cat.id) return - setCat({ - ...cat, + setCat(cat_ => ({ + ...cat_, name: data.name, liceName: data.liceName, type: data.type - }) + })) } dispatch({type: 'addListener', payload: {callback: categoryListener, code: 'sendCategory'}}) return () => dispatch({type: 'removeListener', payload: categoryListener}) - }, []); + }, [cat]); return <>
@@ -60,8 +60,15 @@ function CategoryHeader({cat, setCatId}) { data ]) } + const sendAddCategory = ({data}) => { + setCats([...cats, data]) + } dispatch({type: 'addListener', payload: {callback: categoryListener, code: 'sendCategory'}}) - return () => dispatch({type: 'removeListener', payload: categoryListener}) + dispatch({type: 'addListener', payload: {callback: sendAddCategory, code: 'sendAddCategory'}}) + return () => { + dispatch({type: 'removeListener', payload: categoryListener}) + dispatch({type: 'removeListener', payload: sendAddCategory}) + } }, [cats]); useEffect(() => { @@ -88,7 +95,7 @@ function CategoryHeader({cat, setCatId}) {
Edition de la catégorie
- {cats && cats.sort((a, b) => a.name.localeCompare(b.name)).map(c => ( ))} {cats && } @@ -270,8 +277,6 @@ function ModalContent({state, setCatId, setConfirm, confirmRef}) { error: 'Erreur lors de la création de la catégorie' } ).then(id => { - setCatId(id); - if (tournoi) { const trees = build_tree(size, loserMatch) console.log("Creating trees for new category:", trees); @@ -282,7 +287,9 @@ function ModalContent({state, setCatId, setConfirm, confirmRef}) { success: 'Arbres créés !', error: 'Erreur lors de la création des arbres' } - ) + ).finally(() => setCatId(id)) + } else { + setCatId(id); } }) } diff --git a/src/main/webapp/src/pages/competition/editor/CategoryAdminContent.jsx b/src/main/webapp/src/pages/competition/editor/CategoryAdminContent.jsx index b1bd59c..b3066c5 100644 --- a/src/main/webapp/src/pages/competition/editor/CategoryAdminContent.jsx +++ b/src/main/webapp/src/pages/competition/editor/CategoryAdminContent.jsx @@ -47,10 +47,10 @@ export function CategoryContent({cat, catId, setCat}) { const treeListener = ({data}) => { if (!cat || data.length < 1 || data[0].categorie !== cat.id) return - setCat({ - ...cat, - trees: data.map(d => from_sendTree(d, true)) - }) + setCat(cat_ => ({ + ...cat_, + trees: data.sort((a, b) => a.level - b.level).map(d => from_sendTree(d, true)) + })) let matches2 = []; let combsToAdd = []; @@ -103,7 +103,7 @@ export function CategoryContent({cat, catId, setCat}) { name: data.name, liceName: data.liceName, type: data.type, - trees: data.trees.map(d => from_sendTree(d, true)) + trees: data.trees.sort((a, b) => a.level - b.level).map(d => from_sendTree(d, true)) }) let matches2 = [];