feat: SW-276 Optimized code
This commit is contained in:
@@ -19,7 +19,8 @@ export default function AdultSelector({ roomIndex = 0 }: AdultSelectorProps) {
|
|||||||
const intl = useIntl()
|
const intl = useIntl()
|
||||||
const adultsLabel = intl.formatMessage({ id: "Adults" })
|
const adultsLabel = intl.formatMessage({ id: "Adults" })
|
||||||
const { setValue } = useFormContext()
|
const { setValue } = useFormContext()
|
||||||
const { adults, children } = guestsRoomsStore().rooms[roomIndex]
|
const { adults, children, childrenInAdultsBed } =
|
||||||
|
guestsRoomsStore().rooms[roomIndex]
|
||||||
const { increaseAdults, decreaseAdults } = guestsRoomsStore()
|
const { increaseAdults, decreaseAdults } = guestsRoomsStore()
|
||||||
|
|
||||||
function increaseAdultsCount(roomIndex: number) {
|
function increaseAdultsCount(roomIndex: number) {
|
||||||
@@ -33,19 +34,16 @@ export default function AdultSelector({ roomIndex = 0 }: AdultSelectorProps) {
|
|||||||
if (adults > 1) {
|
if (adults > 1) {
|
||||||
decreaseAdults(roomIndex)
|
decreaseAdults(roomIndex)
|
||||||
setValue(`rooms.${roomIndex}.adults`, adults - 1)
|
setValue(`rooms.${roomIndex}.adults`, adults - 1)
|
||||||
let inAdultsBed = 0
|
if (childrenInAdultsBed > adults) {
|
||||||
let toUpdateIndex = -1
|
const toUpdateIndex = children.findIndex(
|
||||||
children.forEach((child, index) => {
|
(child, index) => child.bed == BedTypeEnum["In adults bed"]
|
||||||
if (child.bed == BedTypeEnum["In adults bed"]) {
|
|
||||||
inAdultsBed = inAdultsBed + 1
|
|
||||||
if (inAdultsBed > adults - 1) toUpdateIndex = index
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if (toUpdateIndex != -1) {
|
|
||||||
setValue(
|
|
||||||
`rooms.${roomIndex}.children.${toUpdateIndex}.bed`,
|
|
||||||
children[toUpdateIndex].age < 3 ? 1 : 2
|
|
||||||
)
|
)
|
||||||
|
if (toUpdateIndex != -1) {
|
||||||
|
setValue(
|
||||||
|
`rooms.${roomIndex}.children.${toUpdateIndex}.bed`,
|
||||||
|
children[toUpdateIndex].age < 3 ? 1 : 2
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ export default function ChildInfoSelector({
|
|||||||
}
|
}
|
||||||
|
|
||||||
function updateSelectedBed(bed: number) {
|
function updateSelectedBed(bed: number) {
|
||||||
if (bed == BedTypeEnum["In adults bed"] && childrenInAdultsBed < adults) {
|
if (bed == BedTypeEnum["In adults bed"]) {
|
||||||
increaseChildInAdultsBed(roomIndex)
|
increaseChildInAdultsBed(roomIndex)
|
||||||
} else if (child.bed == BedTypeEnum["In adults bed"]) {
|
} else if (child.bed == BedTypeEnum["In adults bed"]) {
|
||||||
decreaseChildInAdultsBed(roomIndex)
|
decreaseChildInAdultsBed(roomIndex)
|
||||||
|
|||||||
@@ -53,22 +53,22 @@ export const guestsRoomsStore = create<GuestsRooms>((set, get) => ({
|
|||||||
produce((state: GuestsRooms) => {
|
produce((state: GuestsRooms) => {
|
||||||
state.rooms[roomIndex].adults = state.rooms[roomIndex].adults - 1
|
state.rooms[roomIndex].adults = state.rooms[roomIndex].adults - 1
|
||||||
state.adultCount = state.adultCount - 1
|
state.adultCount = state.adultCount - 1
|
||||||
let childrenInAdultsBed = 0
|
if (
|
||||||
state.rooms[roomIndex].children = state.rooms[roomIndex].children.map(
|
state.rooms[roomIndex].childrenInAdultsBed >
|
||||||
(child) => {
|
|
||||||
if (child.bed == BedTypeEnum["In adults bed"]) {
|
|
||||||
childrenInAdultsBed = childrenInAdultsBed + 1
|
|
||||||
if (childrenInAdultsBed > state.rooms[roomIndex].adults)
|
|
||||||
child.bed =
|
|
||||||
child.age < 3
|
|
||||||
? BedTypeEnum["In crib"]
|
|
||||||
: BedTypeEnum["In extra bed"]
|
|
||||||
}
|
|
||||||
return child
|
|
||||||
}
|
|
||||||
)
|
|
||||||
state.rooms[roomIndex].childrenInAdultsBed =
|
|
||||||
state.rooms[roomIndex].adults
|
state.rooms[roomIndex].adults
|
||||||
|
) {
|
||||||
|
const toUpdateIndex = state.rooms[roomIndex].children.findIndex(
|
||||||
|
(child) => child.bed == BedTypeEnum["In adults bed"]
|
||||||
|
)
|
||||||
|
if (toUpdateIndex != -1) {
|
||||||
|
state.rooms[roomIndex].children[toUpdateIndex].bed =
|
||||||
|
state.rooms[roomIndex].children[toUpdateIndex].age < 3
|
||||||
|
? BedTypeEnum["In crib"]
|
||||||
|
: BedTypeEnum["In extra bed"]
|
||||||
|
state.rooms[roomIndex].childrenInAdultsBed =
|
||||||
|
state.rooms[roomIndex].adults
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
increaseChildren: (roomIndex) =>
|
increaseChildren: (roomIndex) =>
|
||||||
|
|||||||
Reference in New Issue
Block a user