diff --git a/src/Admin/Pages/Pages/SubPages/Gamefication.js b/src/Admin/Pages/Pages/SubPages/Gamefication.js index e006a743ccf5025340d9f82f35f6a0d2017ec1f7..92149ab63d272c4e3098fce01b1b88bf49610f99 100644 --- a/src/Admin/Pages/Pages/SubPages/Gamefication.js +++ b/src/Admin/Pages/Pages/SubPages/Gamefication.js @@ -91,6 +91,8 @@ const Gamefication = () => { const [items, setItems] = useState([]); const [stateOpt, setStateOpt] = useState(1) const [typeOpt, setTypeOpt] = useState("") + const [name, setName] = useState("") + const [valueNameField, setValueNameField] = useState("") const [open, setOpen] = useState(false) const [deleteItem, setDeleteItem] = useState({}) const [snackInfo, setSnackInfo] = useState({ @@ -366,17 +368,27 @@ const Gamefication = () => { const handleChangeStateItem = (index, state) => { const currItems = [...items] - currItems[index].state = state + currItems.splice(index, 1) setItems(currItems) } - const buildUrl = (objType, state) => { - if (objType && (state >= 0 && state <= 2)) - return Url("/items", `"state" : ${stateOpt}, "item_type" : "${typeOpt}"`, currPage, "DESC") + const buildUrl = (objType, state, name) => { + if (objType && (state >= 0 && state <= 2) && name) + return Url("/items", `"state" : ${state}, "item_type" : "${objType}", "name" : "${name}"`, currPage, "DESC") + + else if (objType && name) + return Url("/items", `"item_type" : "${objType}", "name" : "${name}"`, currPage, "DESC") + else if (objType && (state >= 0 && state <= 2)) + return Url("/items", `"item_type" : "${objType}", "state" : ${state}`, currPage, "DESC") + else if (name && (state >= 0 && state <= 2)) + return Url("/items", `"name" : "${name}", "state" : ${state}`, currPage, "DESC") + else if (objType) - return Url("/items", `"item_type" : "${typeOpt}"`, currPage, "DESC") + return Url("/items", `"item_type" : "${objType}"`, currPage, "DESC") else if (state >= 0 && state <= 2) - return Url("/items", `"state" : ${stateOpt}`, currPage, "DESC") + return Url("/items", `"state" : ${state}`, currPage, "DESC") + else if (name) + return Url("/items", `"name" : ${name}`, currPage, "DESC") else return Url("/items", "", currPage, "DESC") } @@ -387,7 +399,7 @@ const Gamefication = () => { else setIsLoadingMoreItems(true) getRequest( - buildUrl(typeOpt, stateOpt), + buildUrl(typeOpt, stateOpt, name), (data, header) => { const arrData = [...data] if (arrData.length === 0) { @@ -411,10 +423,12 @@ const Gamefication = () => { setIsLoadingMoreItems(false) } ) - }, [currPage, typeOpt, stateOpt]) + }, [currPage, typeOpt, stateOpt, name]) useEffect(() => { setTypeOpt("") + setName("") + setValueNameField("") setStateOpt(1) }, [showFilter]) @@ -526,6 +540,16 @@ const Gamefication = () => { ))} </TextField> </Grid> + <Grid item> + <TextField + label="Nome" + value={valueNameField} + onChange={(e) => { setValueNameField(e.target.value) }} + onBlur={(e) => { setName(e.target.value) }} + helperText="Por favor, ao digitar o nome que você quer filtar, retire o foco do campo de texto" + > + </TextField> + </Grid> </Grid> ) : null} </MobilePageHeader> @@ -716,6 +740,16 @@ const Gamefication = () => { ))} </TextField> </Grid> + <Grid item> + <TextField + label="Nome" + value={valueNameField} + onChange={(e) => { setValueNameField(e.target.value) }} + onBlur={(e) => { setName(e.target.value) }} + helperText="Por favor, ao digitar o nome que você quer filtar, retire o foco do campo de texto" + > + </TextField> + </Grid> </Grid> ) : null} </PageHeader> diff --git a/src/Admin/Pages/Pages/SubPages/GameficationAchieves.js b/src/Admin/Pages/Pages/SubPages/GameficationAchieves.js index a58bd59fae6557507e5fe1eab40dc0205d087b89..fcf6c5bca1506496d6e0fe901e17b62638668601 100644 --- a/src/Admin/Pages/Pages/SubPages/GameficationAchieves.js +++ b/src/Admin/Pages/Pages/SubPages/GameficationAchieves.js @@ -74,7 +74,6 @@ const GameficationAchieves = () => { "ESTADO", "ID", "NAME", - "TIPO", "CRIADO EM", "ATUALIZADO EM", "AÇÕES", @@ -88,7 +87,8 @@ const GameficationAchieves = () => { const [showFilter, setShowFilter] = useState(false); const [items, setItems] = useState([]); const [stateOpt, setStateOpt] = useState(1) - const [typeOpt, setTypeOpt] = useState("") + const [name, setName] = useState("") + const [valueNameField, setValueNameField] = useState("") const [open, setOpen] = useState(false) const [deleteItem, setDeleteItem] = useState({}) const [snackInfo, setSnackInfo] = useState({ @@ -104,14 +104,6 @@ const GameficationAchieves = () => { { name: 2, value: "Removido" }, ]; - const typesOptions = [ - { name: "avatar_frame", value: "Moldura de avatar" }, - { name: "badge", value: "Insígnia" }, - { name: "card_frame", value: "Moldura de card do usuário" }, - { name: "cover_frame", value: "Moldura de capa" }, - - ]; - //handle snack info const HandleSnack = (message, state, icon, color) => { setSnackInfo({ @@ -368,11 +360,11 @@ const GameficationAchieves = () => { setItems(currItems) } - const buildUrl = (objType, state) => { - if (objType && (state >= 0 && state <= 2)) - return Url("/achievements", `"state" : ${stateOpt}, "item_type" : "${typeOpt}"`, currPage, "DESC") - else if (objType) - return Url("/achievements", `"item_type" : "${typeOpt}"`, currPage, "DESC") + const buildUrl = (name, state) => { + if (name && (state >= 0 && state <= 2)) + return Url("/achievements", `"state" : ${stateOpt}, "name" : "${name}"`, currPage, "DESC") + else if (name) + return Url("/achievements", `"name" : "${name}"`, currPage, "DESC") else if (state >= 0 && state <= 2) return Url("/achievements", `"state" : ${stateOpt}`, currPage, "DESC") else @@ -385,7 +377,7 @@ const GameficationAchieves = () => { else setIsLoadingMoreItems(true) getRequest( - buildUrl(typeOpt, stateOpt), + buildUrl(name, stateOpt), (data, header) => { const arrData = [...data] if (arrData.length === 0) { @@ -409,10 +401,10 @@ const GameficationAchieves = () => { setIsLoadingMoreItems(false) } ) - }, [currPage, typeOpt, stateOpt]) + }, [currPage, name, stateOpt]) useEffect(() => { - setTypeOpt("") + setName("") setStateOpt(1) }, [showFilter]) @@ -470,7 +462,7 @@ const GameficationAchieves = () => { name: "Novo", isLoading: false, func: () => { - history.push("/admin/createItem") + history.push("/admin/createAchievements") }, icon: <AddRoundedIcon />, }, @@ -507,22 +499,12 @@ const GameficationAchieves = () => { </Grid> <Grid item> <TextField - select - label="Tipo" - value={typeOpt} - onChange={(e) => { setTypeOpt(e.target.value) }} - helperText="Por favor, selecione uma das opções" - > - {typesOptions.map((option, index) => ( - <MenuItem - key={option.value} - value={option.name} - name={option.value} - > - {option.value} - </MenuItem> - ))} - </TextField> + label="Nome" + value={valueNameField} + onChange={(e) => { setValueNameField(e.target.value) }} + onBlur={(e) => { setName(e.target.value) }} + helperText="Por favor, ao digitar o nome que você quer filtar, retire o foco do campo de texto" + /> </Grid> </Grid> ) : null} @@ -595,7 +577,7 @@ const GameficationAchieves = () => { { row.requirements.map((req) => { return ( - <li key={req.created_at}> + <li key={req.created_at}> {req.description} </li> ) @@ -659,7 +641,7 @@ const GameficationAchieves = () => { name: "Novo", isLoading: false, func: () => { - history.push("/admin/createItem") + history.push("/admin/createAchievements") }, icon: <AddRoundedIcon />, }, @@ -696,22 +678,12 @@ const GameficationAchieves = () => { </Grid> <Grid item> <TextField - select - label="Tipo" - value={typeOpt} - onChange={(e) => { setTypeOpt(e.target.value) }} - helperText="Por favor, selecione uma das opções" - > - {typesOptions.map((option, index) => ( - <MenuItem - key={option.value} - value={option.name} - name={option.value} - > - {option.value} - </MenuItem> - ))} - </TextField> + label="Nome" + value={valueNameField} + onChange={(e) => { setValueNameField(e.target.value) }} + onBlur={(e) => { setName(e.target.value) }} + helperText="Por favor, ao digitar o nome que você quer filtar, retire o foco do campo de texto" + /> </Grid> </Grid> ) : null} @@ -751,9 +723,6 @@ const GameficationAchieves = () => { </StyledTableCell> <StyledTableCell align="right">{row.id}</StyledTableCell> <StyledTableCell align="right">{row.name}</StyledTableCell> - <StyledTableCell align="right"> - {row.item_type} - </StyledTableCell> <StyledTableCell align="right"> {DisplayDate(row.created_at)} </StyledTableCell>