fix: cat update/add refresh
This commit is contained in:
parent
e06df24002
commit
c47c04c29e
@ -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 <>
|
||||
<div className="card">
|
||||
@ -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}) {
|
||||
<div className="col-auto">
|
||||
<div className="input-group">
|
||||
<h5 style={{margin: "auto 0.5em auto 0"}}>Edition de la catégorie</h5>
|
||||
<select className="form-select" onChange={handleCatChange}>
|
||||
<select className="form-select" onChange={handleCatChange} value={cat?.id || ""}>
|
||||
{cats && cats.sort((a, b) => a.name.localeCompare(b.name)).map(c => (
|
||||
<option key={c.id} value={c.id}>{c.name}</option>))}
|
||||
{cats && <option value={-1}>Nouvelle...</option>}
|
||||
@ -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);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -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 = [];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user