feat: SW-276 Optimized code

This commit is contained in:
Hrishikesh Vaipurkar
2024-10-09 12:24:50 +02:00
parent ad42440817
commit 2c6ef3fea7
3 changed files with 27 additions and 29 deletions

View File

@@ -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
)
}
} }
} }
} }

View File

@@ -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)

View File

@@ -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) =>