Enable saving to server
This commit is contained in:
parent
094ae4d7f9
commit
ea15696bae
3 changed files with 71 additions and 80 deletions
|
|
@ -88,6 +88,9 @@ const CharacterModal = ({
|
||||||
setOpen(modalOpen)
|
setOpen(modalOpen)
|
||||||
}, [modalOpen])
|
}, [modalOpen])
|
||||||
|
|
||||||
|
// Character properties: Perpetuity
|
||||||
|
const [perpetuity, setPerpetuity] = useState(false)
|
||||||
|
|
||||||
// Character properties: Ring
|
// Character properties: Ring
|
||||||
const [rings, setRings] = useState<CharacterOverMastery>({
|
const [rings, setRings] = useState<CharacterOverMastery>({
|
||||||
1: { ...emptyExtendedMastery, modifier: 1 },
|
1: { ...emptyExtendedMastery, modifier: 1 },
|
||||||
|
|
@ -128,61 +131,7 @@ const CharacterModal = ({
|
||||||
|
|
||||||
// Methods: Receive data from components
|
// Methods: Receive data from components
|
||||||
function receiveRingValues(overMastery: CharacterOverMastery) {
|
function receiveRingValues(overMastery: CharacterOverMastery) {
|
||||||
console.log(overMastery)
|
setRings(overMastery)
|
||||||
|
|
||||||
setRings({
|
|
||||||
1: {
|
|
||||||
modifier: overMastery[1].modifier,
|
|
||||||
strength: overMastery[1].strength,
|
|
||||||
},
|
|
||||||
2: {
|
|
||||||
modifier: overMastery[2].modifier,
|
|
||||||
strength: overMastery[2].strength,
|
|
||||||
},
|
|
||||||
3: {
|
|
||||||
modifier: overMastery[3].modifier,
|
|
||||||
strength: overMastery[3].strength,
|
|
||||||
},
|
|
||||||
4: {
|
|
||||||
if (overMastery[1]) {
|
|
||||||
setRings({
|
|
||||||
...rings,
|
|
||||||
1: {
|
|
||||||
modifier: 1,
|
|
||||||
strength: overMastery[1].strength,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
if (overMastery[2]) {
|
|
||||||
setRings({
|
|
||||||
...rings,
|
|
||||||
2: {
|
|
||||||
modifier: 2,
|
|
||||||
strength: overMastery[1].strength,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
if (overMastery[3]) {
|
|
||||||
setRings({
|
|
||||||
...rings,
|
|
||||||
3: {
|
|
||||||
modifier: overMastery[3].modifier,
|
|
||||||
strength: overMastery[3].strength,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
if (overMastery[4]) {
|
|
||||||
setRings({
|
|
||||||
...rings,
|
|
||||||
4: {
|
|
||||||
modifier: overMastery[4].modifier,
|
|
||||||
strength: overMastery[4].strength,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function receiveEarringValues(
|
function receiveEarringValues(
|
||||||
|
|
@ -212,22 +161,34 @@ const CharacterModal = ({
|
||||||
|
|
||||||
// Prepare the GridWeaponObject to send to the server
|
// Prepare the GridWeaponObject to send to the server
|
||||||
function prepareObject() {
|
function prepareObject() {
|
||||||
console.log('Rings:')
|
|
||||||
console.log(rings)
|
|
||||||
|
|
||||||
let object: GridCharacterObject = {
|
let object: GridCharacterObject = {
|
||||||
character: {
|
character: {
|
||||||
ring_modifier3: rings[3].modifier,
|
ring1: {
|
||||||
ring_modifier4: rings[4].modifier,
|
modifier: rings[1].modifier,
|
||||||
ring_strength1: rings[1].strength,
|
strength: rings[1].strength,
|
||||||
ring_strength2: rings[2].strength,
|
},
|
||||||
ring_strength3: rings[3].strength,
|
ring2: {
|
||||||
ring_strength4: rings[4].strength,
|
modifier: rings[2].modifier,
|
||||||
earring_modifier: earring.modifier,
|
strength: rings[2].strength,
|
||||||
earring_strength: earring.strength,
|
},
|
||||||
awakening_type: awakeningType,
|
ring3: {
|
||||||
awakening_level: awakeningLevel,
|
modifier: rings[3].modifier,
|
||||||
|
strength: rings[3].strength,
|
||||||
|
},
|
||||||
|
ring4: {
|
||||||
|
modifier: rings[4].modifier,
|
||||||
|
strength: rings[4].strength,
|
||||||
|
},
|
||||||
|
earring: {
|
||||||
|
modifier: earring.modifier,
|
||||||
|
strength: earring.strength,
|
||||||
|
},
|
||||||
|
awakening: {
|
||||||
|
type: awakeningType,
|
||||||
|
level: awakeningLevel,
|
||||||
|
},
|
||||||
transcendence_step: transcendenceStep,
|
transcendence_step: transcendenceStep,
|
||||||
|
perpetuity: perpetuity,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -237,11 +198,11 @@ const CharacterModal = ({
|
||||||
// Send the GridWeaponObject to the server
|
// Send the GridWeaponObject to the server
|
||||||
async function updateCharacter() {
|
async function updateCharacter() {
|
||||||
const updateObject = prepareObject()
|
const updateObject = prepareObject()
|
||||||
console.log(updateObject)
|
|
||||||
// return await api.endpoints.grid_characters
|
return await api.endpoints.grid_characters
|
||||||
// .update(gridCharacter.id, updateObject)
|
.update(gridCharacter.id, updateObject)
|
||||||
// .then((response) => processResult(response))
|
.then((response) => processResult(response))
|
||||||
// .catch((error) => processError(error))
|
.catch((error) => processError(error))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save the server's response to state
|
// Save the server's response to state
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ interface Props {
|
||||||
sendValues: (overMastery: CharacterOverMastery) => void
|
sendValues: (overMastery: CharacterOverMastery) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
const RingSelect = (props: Props) => {
|
const RingSelect = ({ gridCharacter, sendValues }: Props) => {
|
||||||
// Ring value states
|
// Ring value states
|
||||||
const [rings, setRings] = useState<CharacterOverMastery>({
|
const [rings, setRings] = useState<CharacterOverMastery>({
|
||||||
1: { ...emptyRing, modifier: 1 },
|
1: { ...emptyRing, modifier: 1 },
|
||||||
|
|
@ -33,7 +33,16 @@ const RingSelect = (props: Props) => {
|
||||||
})
|
})
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
props.sendValues(rings)
|
setRings({
|
||||||
|
1: gridCharacter.over_mastery[0],
|
||||||
|
2: gridCharacter.over_mastery[1],
|
||||||
|
3: gridCharacter.over_mastery[2],
|
||||||
|
4: gridCharacter.over_mastery[3],
|
||||||
|
})
|
||||||
|
}, [gridCharacter])
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
sendValues(rings)
|
||||||
}, [rings])
|
}, [rings])
|
||||||
|
|
||||||
function dataSet(index: number) {
|
function dataSet(index: number) {
|
||||||
|
|
@ -66,8 +75,21 @@ const RingSelect = (props: Props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
function receiveRingValues(index: number, left: number, right: number) {
|
function receiveRingValues(index: number, left: number, right: number) {
|
||||||
|
console.log(`Receiving values from ${index}: ${left} ${right}`)
|
||||||
if (index == 1 || index == 2) {
|
if (index == 1 || index == 2) {
|
||||||
setSyncedRingValues(index, right)
|
setSyncedRingValues(index, right)
|
||||||
|
} else if (index == 3 && left == 0) {
|
||||||
|
setRings({
|
||||||
|
...rings,
|
||||||
|
3: {
|
||||||
|
modifier: 0,
|
||||||
|
strength: 0,
|
||||||
|
},
|
||||||
|
4: {
|
||||||
|
modifier: 0,
|
||||||
|
strength: 0,
|
||||||
|
},
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
setRings({
|
setRings({
|
||||||
...rings,
|
...rings,
|
||||||
|
|
@ -80,6 +102,7 @@ const RingSelect = (props: Props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
function setSyncedRingValues(index: 1 | 2, value: number) {
|
function setSyncedRingValues(index: 1 | 2, value: number) {
|
||||||
|
console.log(`Setting synced value for ${index} with value ${value}`)
|
||||||
const atkValues = (dataSet(1)[0] as ItemSkill).values ?? []
|
const atkValues = (dataSet(1)[0] as ItemSkill).values ?? []
|
||||||
const hpValues = (dataSet(2)[0] as ItemSkill).values ?? []
|
const hpValues = (dataSet(2)[0] as ItemSkill).values ?? []
|
||||||
|
|
||||||
|
|
@ -88,11 +111,11 @@ const RingSelect = (props: Props) => {
|
||||||
setRings({
|
setRings({
|
||||||
...rings,
|
...rings,
|
||||||
1: {
|
1: {
|
||||||
modifier: rings[1].modifier,
|
modifier: 1,
|
||||||
strength: atkValues[found],
|
strength: atkValues[found],
|
||||||
},
|
},
|
||||||
2: {
|
2: {
|
||||||
modifier: rings[2].modifier,
|
modifier: 2,
|
||||||
strength: hpValues[found],
|
strength: hpValues[found],
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
@ -102,7 +125,7 @@ const RingSelect = (props: Props) => {
|
||||||
<div className="Rings">
|
<div className="Rings">
|
||||||
{[...Array(4)].map((e, i) => {
|
{[...Array(4)].map((e, i) => {
|
||||||
const ringIndex = i + 1
|
const ringIndex = i + 1
|
||||||
|
const ringStat = rings[ringIndex]
|
||||||
return (
|
return (
|
||||||
<SelectWithSelect
|
<SelectWithSelect
|
||||||
name={`ring-${ringIndex}`}
|
name={`ring-${ringIndex}`}
|
||||||
|
|
@ -110,8 +133,8 @@ const RingSelect = (props: Props) => {
|
||||||
key={`ring-${ringIndex}`}
|
key={`ring-${ringIndex}`}
|
||||||
dataSet={dataSet(ringIndex)}
|
dataSet={dataSet(ringIndex)}
|
||||||
leftSelectDisabled={i === 0 || i === 1}
|
leftSelectDisabled={i === 0 || i === 1}
|
||||||
leftSelectValue={rings[ringIndex].modifier}
|
leftSelectValue={ringStat.modifier ? ringStat.modifier : 0}
|
||||||
rightSelectValue={rings[ringIndex].strength}
|
rightSelectValue={ringStat.strength ? ringStat.strength : 0}
|
||||||
sendValues={(left: number, right: number) => {
|
sendValues={(left: number, right: number) => {
|
||||||
receiveRingValues(ringIndex, left, right)
|
receiveRingValues(ringIndex, left, right)
|
||||||
}}
|
}}
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,9 @@ const SelectWithInput = ({
|
||||||
function onClose() {
|
function onClose() {
|
||||||
setLeftSelectOpen(false)
|
setLeftSelectOpen(false)
|
||||||
setRightSelectOpen(false)
|
setRightSelectOpen(false)
|
||||||
|
|
||||||
|
setCurrentItemSkill(undefined)
|
||||||
|
setCurrentItemValue(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Methods: Rendering
|
// Methods: Rendering
|
||||||
|
|
@ -110,13 +113,17 @@ const SelectWithInput = ({
|
||||||
function handleLeftSelectChange(rawValue: string) {
|
function handleLeftSelectChange(rawValue: string) {
|
||||||
const value = parseInt(rawValue)
|
const value = parseInt(rawValue)
|
||||||
const skill = dataSet.find((sk) => sk.id === value)
|
const skill = dataSet.find((sk) => sk.id === value)
|
||||||
|
|
||||||
setCurrentItemSkill(skill)
|
setCurrentItemSkill(skill)
|
||||||
setCurrentItemValue(0)
|
setCurrentItemValue(0)
|
||||||
|
|
||||||
|
if (skill) sendValues(skill.id, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleRightSelectChange(rawValue: string) {
|
function handleRightSelectChange(rawValue: string) {
|
||||||
const value = parseFloat(rawValue)
|
const value = parseFloat(rawValue)
|
||||||
setCurrentItemValue(value)
|
setCurrentItemValue(value)
|
||||||
|
|
||||||
if (currentItemSkill) sendValues(currentItemSkill.id, value)
|
if (currentItemSkill) sendValues(currentItemSkill.id, value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue