Finish sorting algorithm and list displays
This commit is contained in:
parent
e0f13e0db7
commit
f2d45a11b9
112
src/App.js
112
src/App.js
@ -398,12 +398,85 @@ function ListApp(p){
|
||||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
|
||||
async function itemComesBefore(retainer,item){
|
||||
let targetItem=""
|
||||
let result=false;
|
||||
switch(retainer){
|
||||
case 0:{
|
||||
targetItem=item1
|
||||
}break;
|
||||
case 1:{
|
||||
targetItem=item2
|
||||
}break;
|
||||
case 2:{
|
||||
targetItem=item3
|
||||
}break;
|
||||
case 3:{
|
||||
targetItem=item4
|
||||
}break;
|
||||
case 4:{
|
||||
targetItem=item5
|
||||
}break;
|
||||
}
|
||||
let itemData1={}
|
||||
let itemData2={}
|
||||
await axios.get(encodeURI("https://xivapi.com/search?string="+item))
|
||||
.then(async(data)=>{
|
||||
var results = data.data.Results
|
||||
for (var r of results) {
|
||||
if (r.Name===item&&r.UrlType==="Item") {
|
||||
return await axios.get(encodeURI("https://xivapi.com"+r.Url))
|
||||
}
|
||||
}
|
||||
throw new Error("Item 1 Not Found!");
|
||||
}
|
||||
)
|
||||
.then(async(data)=>{
|
||||
var results = data.data
|
||||
itemData1={...results}
|
||||
return await axios.get(encodeURI("https://xivapi.com/search?string="+targetItem))
|
||||
})
|
||||
.then(async(data)=>{
|
||||
var results = data.data.Results
|
||||
for (var r of results) {
|
||||
if (r.Name===targetItem&&r.UrlType==="Item") {
|
||||
return await axios.get(encodeURI("https://xivapi.com"+r.Url))
|
||||
}
|
||||
}
|
||||
throw new Error("Item 2 Not Found!");
|
||||
}
|
||||
)
|
||||
.then(async(data)=>{
|
||||
var results = data.data
|
||||
itemData2={...results}
|
||||
console.log(itemData1.Name+" vs "+itemData2.Name)
|
||||
if (itemData1.ItemSortCategory.ID<itemData2.ItemSortCategory.ID){
|
||||
result=true
|
||||
} else
|
||||
if (itemData1.ItemSortCategory.ID===itemData2.ItemSortCategory.ID&&
|
||||
itemData1.ItemUICategory.ID<itemData2.ItemUICategory.ID){
|
||||
result=true
|
||||
} else
|
||||
if (itemData1.ItemSortCategory.ID===itemData2.ItemSortCategory.ID&&
|
||||
itemData1.ItemUICategory.ID===itemData2.ItemUICategory.ID&&
|
||||
itemData1.ID<itemData2.ID){
|
||||
result=true
|
||||
} else {
|
||||
result=false
|
||||
}
|
||||
})
|
||||
.catch((err)=>{console.log(err);setChecking(false)})
|
||||
|
||||
return [result,itemData1]
|
||||
}
|
||||
|
||||
function submitForm(){
|
||||
let classID=Number(selectedCrafter)+8
|
||||
let filter="https://xivapi.com/search?filters=ClassJob.ID="+classID+",RecipeLevelTable.ClassJobLevel>="+minLevel+",RecipeLevelTable.ClassJobLevel<="+maxLevel
|
||||
let pageCount=0
|
||||
let currentPage=1
|
||||
let recipeData=[]
|
||||
setChecking(true)
|
||||
axios.get(encodeURI(filter))
|
||||
.then(async(resp)=>{
|
||||
let data=resp.data
|
||||
@ -429,8 +502,36 @@ function ListApp(p){
|
||||
})
|
||||
}
|
||||
})
|
||||
.finally(()=>{
|
||||
console.log(recipeData)
|
||||
.finally(async()=>{
|
||||
//console.log(recipeData)
|
||||
//setChecking(false)
|
||||
let craftedItems={}
|
||||
for(var recipe of recipeData){
|
||||
for (let i=0;i<5;i++){
|
||||
var ingredient=recipe["ItemIngredient"+i]
|
||||
if (ingredient!==null){
|
||||
craftedItems[ingredient.Name]=1
|
||||
}
|
||||
}
|
||||
}
|
||||
let retainerItems=[[],[],[],[],[],[]]
|
||||
for (var item of Object.keys(craftedItems)){
|
||||
let found=false
|
||||
for (var i=0;i<5;i++){
|
||||
let response = await itemComesBefore(i,item);
|
||||
if (response[0]===true){
|
||||
retainerItems[i]=[response[1],...retainerItems[i]]
|
||||
found=true
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (found===false){
|
||||
retainerItems[5]=[item,...retainerItems[5]]
|
||||
}
|
||||
await sleep(250)
|
||||
}
|
||||
setGroceryList(retainerItems)
|
||||
setChecking(false)
|
||||
})
|
||||
}
|
||||
|
||||
@ -530,6 +631,13 @@ function ListApp(p){
|
||||
<Button onKeyDown={(k)=>{if (k.key==='Enter') {submitForm()}}} disabled={checking} onClick={()=>{submitForm()}}>{checking?<Spinner animation="border"></Spinner>:"Compose"}</Button>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row><span>A</span></Row>
|
||||
{groceryList.map((list,i)=><><Row className="text-white">
|
||||
<h2>{retainerNames[i]}</h2>
|
||||
</Row>
|
||||
<Row className="text-white"><ul>
|
||||
{list.map((item)=><li>{item.Name}</li>)}
|
||||
</ul></Row></>)}
|
||||
</>
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user