related-ui-components 2.7.6 → 2.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"names":["useTheme","React","useCallback","useEffect","useMemo","useState","StyleSheet","Text","TouchableOpacity","View","I18nManager","NumericStepper","BottomSheetScrollView","jsx","_jsx","jsxs","_jsxs","DEFAULT_GUEST_CONFIG","key","name","description","defaultValue","minValue","maxValue","createNewRoom","guestConfig","newRoom","id","Date","now","toString","Math","random","substring","forEach","guest","HotelSummary","guestConfigData","guestConfigProp","selection","onSelectionChange","maxRooms","minRooms","roomTitlePrefix","removeRoomText","addRoomText","containerStyle","roomContainerStyle","roomHeaderStyle","roomTitleStyle","removeRoomButtonStyle","removeRoomTextStyle","guestRowStyle","guestLabelContainerStyle","guestNameStyle","guestDescriptionStyle","addRoomButtonStyle","addRoomButtonTextStyle","stepperContainerStyle","stepperButtonStyle","stepperButtonTextStyle","stepperValueTextStyle","roomListContainerStyle","theme","styles","themedStyles","isRTL","rooms","setRooms","length","Array","from","triggerSelectionChange","updatedRooms","addRoom","prevRooms","removeRoom","roomIdToRemove","filter","room","handleGuestChange","roomId","guestKey","action","guestInfo","find","g","valueChanged","map","currentVal","newValue","min","max","style","container","children","maxHeight","showsVerticalScrollIndicator","index","roomContainer","roomHeader","roomTitle","onPress","guestRow","guestLabelContainer","guestName","guestDescription","value","onIncrement","onDecrement","buttonStyle","buttonTextStyle","valueTextStyle","addRoomButton","addRoomButtonText","create","backgroundColor","surface","padding","width","marginBottom","paddingBottom","borderBottomWidth","hairlineWidth","borderBottomColor","border","flexDirection","justifyContent","alignItems","fontSize","fontWeight","color","onSurface","error","paddingVertical","flexShrink","opacity","marginTop","alignSelf","primary"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/TravelBooking/HotelSummary.tsx"],"mappings":";;AAAA,SAAoBA,QAAQ,QAAQ,sBAAa;AACjD,OAAOC,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AACxE,SAEEC,UAAU,EACVC,IAAI,EACJC,gBAAgB,EAChBC,IAAI,EAIJC,WAAW,QACN,cAAc;AACrB,SAASC,cAAc,QAA6B,4BAAmB;AACvE,SAASC,qBAAqB,QAAQ,sBAAsB;AAC5D;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAgBA,MAAMC,oBAAuC,GAAG,CAC9C;EACEC,GAAG,EAAE,QAAQ;EACbC,IAAI,EAAE,QAAQ;EACdC,WAAW,EAAE,eAAe;EAC5BC,YAAY,EAAE,CAAC;EACfC,QAAQ,EAAE,CAAC;EACXC,QAAQ,EAAE;AACZ,CAAC,EACD;EACEL,GAAG,EAAE,UAAU;EACfC,IAAI,EAAE,UAAU;EAChBC,WAAW,EAAE,kBAAkB;EAC/BC,YAAY,EAAE,CAAC;EACfC,QAAQ,EAAE,CAAC;EACXC,QAAQ,EAAE;AACZ,CAAC,CACF;AAED,MAAMC,aAAa,GAAIC,WAA8B,IAAgB;EACnE,MAAMC,OAAkB,GAAG;IACzBC,EAAE,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACF,QAAQ,CAAC,EAAE,CAAC,CAACG,SAAS,CAAC,CAAC,EAAE,CAAC;EACvE,CAAC;EACDR,WAAW,CAACS,OAAO,CAAEC,KAAK,IAAK;IAC7BT,OAAO,CAACS,KAAK,CAACjB,GAAG,CAAC,GAAGiB,KAAK,CAACd,YAAY;EACzC,CAAC,CAAC;EACF,OAAOK,OAAO;AAChB,CAAC;AA8BD,MAAMU,YAAyC,GAAGA,CAAC;EACjDC,eAAe,EAAEC,eAAe,GAAGrB,oBAAoB;EACvDsB,SAAS;EACTC,iBAAiB;EACjBC,QAAQ,GAAG,CAAC;EACZC,QAAQ,GAAG,CAAC;EACZC,eAAe,GAAG,MAAM;EACxBC,cAAc,GAAG,QAAQ;EACzBC,WAAW,GAAG,YAAY;EAC1BC,cAAc;EACdC,kBAAkB;EAClBC,eAAe;EACfC,cAAc;EACdC,qBAAqB;EACrBC,mBAAmB;EACnBC,aAAa;EACbC,wBAAwB;EACxBC,cAAc;EACdC,qBAAqB;EACrBC,kBAAkB;EAClBC,sBAAsB;EACtBC,qBAAqB;EACrBC,kBAAkB;EAClBC,sBAAsB;EACtBC,qBAAqB;EACrBC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAM,CAAC,GAAG/D,QAAQ,CAAC,CAAC;EAC5B,MAAMgE,MAAM,GAAG5D,OAAO,CAAC,MAAM6D,YAAY,CAACF,KAAK,EAAErD,WAAW,CAACwD,KAAK,CAAC,EAAE,CAACH,KAAK,CAAC,CAAC;EAE7E,MAAMtC,WAAW,GAAGrB,OAAO,CAAC,MAAMkC,eAAe,EAAE,CAACA,eAAe,CAAC,CAAC;EAErE,MAAM,CAAC6B,KAAK,EAAEC,QAAQ,CAAC,GAAG/D,QAAQ,CAChCkC,SAAS,IAAIA,SAAS,CAAC8B,MAAM,IAAI3B,QAAQ,GACrCH,SAAS,GACT+B,KAAK,CAACC,IAAI,CAAC;IAAEF,MAAM,EAAE3B;EAAS,CAAC,EAAE,MAAMlB,aAAa,CAACC,WAAW,CAAC,CACvE,CAAC;EAED,MAAM+C,sBAAsB,GAAGtE,WAAW,CACvCuE,YAAyB,IAAK;IAC7BjC,iBAAiB,GAAGiC,YAAY,CAAC;EACnC,CAAC,EACD,CAACjC,iBAAiB,CACpB,CAAC;EAED,MAAMkC,OAAO,GAAGxE,WAAW,CAAC,MAAM;IAChCkE,QAAQ,CAAEO,SAAS,IAAK;MACtB,IAAIA,SAAS,CAACN,MAAM,IAAI5B,QAAQ,EAAE;QAChC,OAAOkC,SAAS;MAClB;MACA,MAAMF,YAAY,GAAG,CAAC,GAAGE,SAAS,EAAEnD,aAAa,CAACC,WAAW,CAAC,CAAC;MAC/D+C,sBAAsB,CAACC,YAAY,CAAC;MACpC,OAAOA,YAAY;IACrB,CAAC,CAAC;EACJ,CAAC,EAAE,CAAChC,QAAQ,EAAE+B,sBAAsB,EAAE/C,WAAW,CAAC,CAAC;EAEnD,MAAMmD,UAAU,GAAG1E,WAAW,CAC3B2E,cAAsB,IAAK;IAC1BT,QAAQ,CAAEO,SAAS,IAAK;MACtB,IAAIA,SAAS,CAACN,MAAM,IAAI3B,QAAQ,EAAE;QAChC,OAAOiC,SAAS;MAClB;MACA,MAAMF,YAAY,GAAGE,SAAS,CAACG,MAAM,CAClCC,IAAI,IAAKA,IAAI,CAACpD,EAAE,KAAKkD,cACxB,CAAC;MACDL,sBAAsB,CAACC,YAAY,CAAC;MACpC,OAAOA,YAAY;IACrB,CAAC,CAAC;EACJ,CAAC,EACD,CAACD,sBAAsB,EAAE9B,QAAQ,CACnC,CAAC;EAED,MAAMsC,iBAAiB,GAAG9E,WAAW,CACnC,CACE+E,MAAc,EACdC,QAAgB,EAChBC,MAAiC,KAC9B;IACHf,QAAQ,CAAEO,SAAS,IAAK;MACtB,MAAMS,SAAS,GAAG3D,WAAW,CAAC4D,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACpE,GAAG,KAAKgE,QAAQ,CAAC;MAC7D,IAAI,CAACE,SAAS,EAAE,OAAOT,SAAS;MAEhC,MAAMrD,QAAQ,GAAG8D,SAAS,CAAC9D,QAAQ;MACnC,MAAMC,QAAQ,GAAG6D,SAAS,CAAC7D,QAAQ,IAAI,EAAE;MACzC,IAAIgE,YAAY,GAAG,KAAK;MAExB,MAAMd,YAAY,GAAGE,SAAS,CAACa,GAAG,CAAET,IAAI,IAAK;QAC3C,IAAIA,IAAI,CAACpD,EAAE,KAAKsD,MAAM,EAAE;UACtB,MAAMQ,UAAU,GAAGV,IAAI,CAACG,QAAQ,CAAC;UACjC,IAAIQ,QAAQ,GAAGD,UAAU;UAEzB,IAAIN,MAAM,KAAK,WAAW,EAAE;YAC1BO,QAAQ,GAAG3D,IAAI,CAAC4D,GAAG,CAACpE,QAAQ,EAAEkE,UAAU,GAAG,CAAC,CAAC;UAC/C,CAAC,MAAM,IAAIN,MAAM,KAAK,WAAW,EAAE;YACjCO,QAAQ,GAAG3D,IAAI,CAAC6D,GAAG,CAACtE,QAAQ,EAAEmE,UAAU,GAAG,CAAC,CAAC;UAC/C;UAEA,IAAIC,QAAQ,KAAKD,UAAU,EAAE;YAC3BF,YAAY,GAAG,IAAI;YACnB,OAAO;cAAE,GAAGR,IAAI;cAAE,CAACG,QAAQ,GAAGQ;YAAS,CAAC;UAC1C;QACF;QACA,OAAOX,IAAI;MACb,CAAC,CAAC;MAEF,IAAIQ,YAAY,EAAE;QAChBf,sBAAsB,CAACC,YAAY,CAAC;MACtC;MACA,OAAOA,YAAY;IACrB,CAAC,CAAC;EACJ,CAAC,EACD,CAACD,sBAAsB,EAAE/C,WAAW,CACtC,CAAC;EAEDtB,SAAS,CAAC,MAAM;IACdqC,iBAAiB,GAAG2B,KAAK,CAAC;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEnD,KAAA,CAACP,IAAI;IAACoF,KAAK,EAAE,CAAC7B,MAAM,CAAC8B,SAAS,EAAEhD,cAAc,CAAE;IAAAiD,QAAA,gBAC9CjF,IAAA,CAACF,qBAAqB;MAACiF,KAAK,EAAE,CAAC;QAACG,SAAS,EAAE;MAAG,CAAC,EAAElC,sBAAsB,CAAE;MAACmC,4BAA4B,EAAE,KAAM;MAAAF,QAAA,EAC7G5B,KAAK,CAACqB,GAAG,CAAC,CAACT,IAAI,EAAEmB,KAAK,kBACrBlF,KAAA,CAACP,IAAI;QAAeoF,KAAK,EAAE,CAAC7B,MAAM,CAACmC,aAAa,EAAEpD,kBAAkB,CAAE;QAAAgD,QAAA,gBACpE/E,KAAA,CAACP,IAAI;UAACoF,KAAK,EAAE,CAAC7B,MAAM,CAACoC,UAAU,EAAEpD,eAAe,CAAE;UAAA+C,QAAA,gBAChDjF,IAAA,CAACP,IAAI;YAACsF,KAAK,EAAE,CAAC7B,MAAM,CAACqC,SAAS,EAAEpD,cAAc,CAAE;YAAA8C,QAAA,EAC7C,GAAGpD,eAAe,IAAIuD,KAAK,GAAG,CAAC;UAAE,CAC9B,CAAC,EACJ/B,KAAK,CAACE,MAAM,GAAG3B,QAAQ,iBACxB5B,IAAA,CAACN,gBAAgB;YACfqF,KAAK,EAAE3C,qBAAsB;YAC7BoD,OAAO,EAAEA,CAAA,KAAM1B,UAAU,CAACG,IAAI,CAACpD,EAAE,CAAE;YAAAoE,QAAA,eAEnCjF,IAAA,CAACP,IAAI;cAACsF,KAAK,EAAE,CAAC7B,MAAM,CAACpB,cAAc,EAAEO,mBAAmB,CAAE;cAAA4C,QAAA,EACvDnD;YAAc,CACX;UAAC,CACS,CACnB;QAAA,CACG,CAAC,EAENnB,WAAW,CAAC+D,GAAG,CAAErD,KAAK,iBACrBnB,KAAA,CAACP,IAAI;UAAiBoF,KAAK,EAAE,CAAC7B,MAAM,CAACuC,QAAQ,EAAEnD,aAAa,CAAE;UAAA2C,QAAA,gBAC5D/E,KAAA,CAACP,IAAI;YACHoF,KAAK,EAAE,CACL7B,MAAM,CAACwC,mBAAmB,EAC1BnD,wBAAwB,CACxB;YAAA0C,QAAA,gBAEFjF,IAAA,CAACP,IAAI;cAACsF,KAAK,EAAE,CAAC7B,MAAM,CAACyC,SAAS,EAAEnD,cAAc,CAAE;cAAAyC,QAAA,EAC7C5D,KAAK,CAAChB;YAAI,CACP,CAAC,eACPL,IAAA,CAACP,IAAI;cACHsF,KAAK,EAAE,CACL7B,MAAM,CAAC0C,gBAAgB,EACvBnD,qBAAqB,CACrB;cAAAwC,QAAA,EAED5D,KAAK,CAACf;YAAW,CACd,CAAC;UAAA,CACH,CAAC,eACPN,IAAA,CAACH,cAAc;YACbgG,KAAK,EAAE5B,IAAI,CAAC5C,KAAK,CAACjB,GAAG,CAAE;YACvBI,QAAQ,EAAEa,KAAK,CAACb,QAAS;YACzBC,QAAQ,EAAEY,KAAK,CAACZ,QAAS;YACzBqF,WAAW,EAAEA,CAAA,KACX5B,iBAAiB,CAACD,IAAI,CAACpD,EAAE,EAAEQ,KAAK,CAACjB,GAAG,EAAE,WAAW,CAClD;YACD2F,WAAW,EAAEA,CAAA,KACX7B,iBAAiB,CAACD,IAAI,CAACpD,EAAE,EAAEQ,KAAK,CAACjB,GAAG,EAAE,WAAW,CAClD;YACD2E,KAAK,EAAEnC,qBAAsB;YAC7BoD,WAAW,EAAEnD,kBAAmB;YAChCoD,eAAe,EAAEnD,sBAAuB;YACxCoD,cAAc,EAAEnD;UAAsB,CACvC,CAAC;QAAA,GAjCO1B,KAAK,CAACjB,GAkCX,CACP,CAAC;MAAA,GArDO6D,IAAI,CAACpD,EAsDV,CACP;IAAC,CACqB,CAAC,EAEvBwC,KAAK,CAACE,MAAM,GAAG5B,QAAQ,iBACtB3B,IAAA,CAACN,gBAAgB;MACfqF,KAAK,EAAE,CAAC7B,MAAM,CAACiD,aAAa,EAAEzD,kBAAkB,CAAE;MAClD8C,OAAO,EAAE5B,OAAQ;MAAAqB,QAAA,eAEjBjF,IAAA,CAACP,IAAI;QAACsF,KAAK,EAAE,CAAC7B,MAAM,CAACkD,iBAAiB,EAAEzD,sBAAsB,CAAE;QAAAsC,QAAA,EAC7DlD;MAAW,CACR;IAAC,CACS,CACnB;EAAA,CACG,CAAC;AAEX,CAAC;AAED,MAAMoB,YAAY,GAAGA,CAACF,KAAgB,EAAEG,KAAc,KACpD5D,UAAU,CAAC6G,MAAM,CAAC;EAChBrB,SAAS,EAAE;IACTsB,eAAe,EAAErD,KAAK,CAACsD,OAAO;IAC9BC,OAAO,EAAE,EAAE;IACX;IACAC,KAAK,EAAE;EACT,CAAC;EACDpB,aAAa,EAAE;IACbqB,YAAY,EAAE,EAAE;IAChBC,aAAa,EAAE,EAAE;IACjBC,iBAAiB,EAAEpH,UAAU,CAACqH,aAAa;IAC3CC,iBAAiB,EAAE7D,KAAK,CAAC8D;EAC3B,CAAC;EACDzB,UAAU,EAAE;IACV0B,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBR,YAAY,EAAE;EAChB,CAAC;EACDnB,SAAS,EAAE;IACT4B,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAEpE,KAAK,CAACqE;EACf,CAAC;EACDxF,cAAc,EAAE;IACdqF,QAAQ,EAAE,EAAE;IACZE,KAAK,EAAEpE,KAAK,CAACsE,KAAK;IAClBH,UAAU,EAAE;EACd,CAAC;EACD3B,QAAQ,EAAE;IACRuB,aAAa,EAAC,KAAK;IACnBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBM,eAAe,EAAE;EACnB,CAAC;EACD9B,mBAAmB,EAAE;IACnBsB,aAAa,EAAE,QAAQ;IACvBE,UAAU,EAAG,YAAY;IACzBO,UAAU,EAAE;IACZ;IACA;EACF,CAAC;EACD9B,SAAS,EAAE;IACTwB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAEpE,KAAK,CAACqE;EACf,CAAC;EACD1B,gBAAgB,EAAE;IAChBuB,QAAQ,EAAE,EAAE;IACZE,KAAK,EAAEpE,KAAK,CAACqE,SAAS;IACtBI,OAAO,EAAE;EACX,CAAC;EACDvB,aAAa,EAAE;IACbwB,SAAS,EAAE,EAAE;IACbC,SAAS,EAAE;EACb,CAAC;EACDxB,iBAAiB,EAAE;IACjBe,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAEpE,KAAK,CAAC4E;EACf;AACF,CAAC,CAAC;AAEJ,eAAevG,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["useTheme","React","useCallback","useEffect","useMemo","useState","StyleSheet","Text","TouchableOpacity","View","I18nManager","NumericStepper","BottomSheetScrollView","RNPickerSelect","Ionicons","jsx","_jsx","jsxs","_jsxs","DEFAULT_GUEST_CONFIG","key","name","description","defaultValue","minValue","maxValue","ageRange","min","max","defaultAge","createNewRoom","guestConfig","newRoom","id","Date","now","toString","Math","random","substring","forEach","guest","Array","from","length","_","i","age","HotelSummary","guestConfigData","guestConfigProp","selection","onSelectionChange","maxRooms","minRooms","roomTitlePrefix","removeRoomText","addRoomText","formatChildAgeLabel","guestType","index","containerStyle","roomContainerStyle","roomHeaderStyle","roomTitleStyle","removeRoomButtonStyle","removeRoomTextStyle","guestRowStyle","guestLabelContainerStyle","guestNameStyle","guestDescriptionStyle","addRoomButtonStyle","addRoomButtonTextStyle","stepperContainerStyle","stepperButtonStyle","stepperButtonTextStyle","stepperValueTextStyle","roomListContainerStyle","agePickerRowStyle","agePickerLabelStyle","overrideTheme","theme","defaultTheme","styles","themedStyles","isRTL","rooms","setRooms","triggerSelectionChange","updatedRooms","addRoom","prevRooms","removeRoom","roomIdToRemove","filter","room","handleGuestCountChange","roomId","guestKey","action","guestInfo","find","g","valueChanged","map","currentVal","newRoomState","currentArray","newGuest","slice","newValue","handleIndividualAgeChange","guestId","newAge","undefined","guestArray","getAgePickerItems","config","label","value","style","container","children","maxHeight","showsVerticalScrollIndicator","roomContainer","roomHeader","roomTitle","onPress","guestRow","guestLabelContainer","guestName","guestDescription","onIncrement","onDecrement","buttonStyle","buttonTextStyle","valueTextStyle","individualGuest","guestIndex","agePickerRow","agePickerLabel","pickerContainer","onValueChange","items","placeholder","inputIOS","pickerInput","inputAndroid","iconContainer","pickerIconContainer","textInputProps","pointerEvents","useNativeAndroidPickerStyle","Icon","size","color","helper","addRoomButton","addRoomButtonText","create","backgroundColor","surface","padding","width","marginBottom","paddingBottom","borderBottomWidth","hairlineWidth","borderBottomColor","border","flexDirection","justifyContent","alignItems","fontSize","fontWeight","onSurface","error","paddingVertical","flexShrink","opacity","marginTop","alignSelf","primary","paddingHorizontal","background","borderColor","divider","onBackground","height","borderWidth","borderRadius","top","right"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/TravelBooking/HotelSummary.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAyDnD,QAAA,MAAM,GAAG,yBAwGR,CAAC;AAWF,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AA+BnD,QAAA,MAAM,GAAG,yBA6GR,CAAC;AAWF,eAAe,GAAG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselCardStack.d.ts","sourceRoot":"","sources":["../../../../../src/components/CarouselCardStack/CarouselCardStack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AA8B5D,UAAU,oBAAoB;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,UAAU,sBAAsB;IAC9B,IAAI,EAAE,oBAAoB,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAG,MAAM,CAAC;CAC3B;AAuBD,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAiNvD,CAAC;AAkDF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"CarouselCardStack.d.ts","sourceRoot":"","sources":["../../../../../src/components/CarouselCardStack/CarouselCardStack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAgC5D,UAAU,oBAAoB;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,UAAU,sBAAsB;IAC9B,IAAI,EAAE,oBAAoB,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA4GD,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAoIvD,CAAC;AAkDF,eAAe,iBAAiB,CAAC"}
@@ -1,6 +1,11 @@
1
+ import { ThemeType } from "../../theme";
1
2
  import React from "react";
2
3
  import { StyleProp, ViewStyle, TextStyle } from "react-native";
3
4
  import { NumericStepperProps } from "../NumericStepper";
5
+ export interface IndividualGuest {
6
+ id: string;
7
+ age: number;
8
+ }
4
9
  export interface RoomState {
5
10
  id: string;
6
11
  [key: string]: any;
@@ -12,6 +17,11 @@ export interface GuestConfigType {
12
17
  defaultValue: number;
13
18
  minValue: number;
14
19
  maxValue?: number;
20
+ ageRange?: {
21
+ min: number;
22
+ max: number;
23
+ };
24
+ defaultAge?: number;
15
25
  }
16
26
  export interface HotelSummaryProps {
17
27
  guestConfigData?: GuestConfigType[];
@@ -22,6 +32,7 @@ export interface HotelSummaryProps {
22
32
  roomTitlePrefix?: string;
23
33
  removeRoomText?: string;
24
34
  addRoomText?: string;
35
+ formatChildAgeLabel?: (guestType: string, index: number) => string;
25
36
  containerStyle?: StyleProp<ViewStyle>;
26
37
  roomContainerStyle?: StyleProp<ViewStyle>;
27
38
  roomListContainerStyle?: StyleProp<ViewStyle>;
@@ -33,12 +44,15 @@ export interface HotelSummaryProps {
33
44
  guestLabelContainerStyle?: StyleProp<ViewStyle>;
34
45
  guestNameStyle?: StyleProp<TextStyle>;
35
46
  guestDescriptionStyle?: StyleProp<TextStyle>;
47
+ agePickerRowStyle?: StyleProp<ViewStyle>;
48
+ agePickerLabelStyle?: StyleProp<TextStyle>;
36
49
  addRoomButtonStyle?: StyleProp<ViewStyle>;
37
50
  addRoomButtonTextStyle?: StyleProp<TextStyle>;
38
51
  stepperContainerStyle?: NumericStepperProps["style"];
39
52
  stepperButtonStyle?: NumericStepperProps["buttonStyle"];
40
53
  stepperButtonTextStyle?: NumericStepperProps["buttonTextStyle"];
41
54
  stepperValueTextStyle?: NumericStepperProps["valueTextStyle"];
55
+ overrideTheme?: ThemeType;
42
56
  }
43
57
  declare const HotelSummary: React.FC<HotelSummaryProps>;
44
58
  export default HotelSummary;
@@ -1 +1 @@
1
- {"version":3,"file":"HotelSummary.d.ts","sourceRoot":"","sources":["../../../../../src/components/TravelBooking/HotelSummary.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,EACL,SAAS,EAKT,SAAS,EACT,SAAS,EAGV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAkB,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIxE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA+BD,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,kBAAkB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,sBAAsB,CAAC,EAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/C,eAAe,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,kBAAkB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,sBAAsB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,qBAAqB,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACrD,kBAAkB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACxD,sBAAsB,CAAC,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAChE,qBAAqB,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;CAC/D;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgM7C,CAAC;AAkEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"HotelSummary.d.ts","sourceRoot":"","sources":["../../../../../src/components/TravelBooking/HotelSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,aAAa,CAAC;AAClD,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,EACL,SAAS,EAKT,SAAS,EACT,SAAS,EAGV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAkB,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAKxE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA2CD,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACnE,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,kBAAkB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,sBAAsB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,eAAe,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,iBAAiB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,kBAAkB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,sBAAsB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,qBAAqB,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACrD,kBAAkB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACxD,sBAAsB,CAAC,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAChE,qBAAqB,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC9D,aAAa,CAAC,EAAE,SAAS,CAAA;CAC1B;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA+S7C,CAAC;AAkGF,eAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "related-ui-components",
3
- "version": "2.7.6",
3
+ "version": "2.7.7",
4
4
  "main": "./src/index.ts",
5
5
  "scripts": {
6
6
  "start": "expo start",
package/src/app.tsx CHANGED
@@ -14,46 +14,20 @@ import {
14
14
  RedemptionOption,
15
15
  SelaDealCard,
16
16
  } from "./components";
17
- import { lightTheme, RelatedProvider, useTheme } from "./theme";
17
+ import { darkTheme, lightTheme, RelatedProvider, useTheme } from "./theme";
18
18
  import CircularProgressBar from "./components/ProgressBar/CircularProgressBar";
19
19
  import PhoneInput from "./components/Input/PhoneInput";
20
20
  import { BottomSheetStackProvider } from "./contexts";
21
21
  import { SafeAreaProvider } from "react-native-safe-area-context";
22
22
  import { Ionicons } from "@expo/vector-icons";
23
23
 
24
- // Sample data - replace with your actual image URLs
25
- const DUMMY_DATA = [
26
- {
27
- id: "1",
28
- image:
29
- "https://images.pexels.com/photos/3354648/pexels-photo-3354648.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1",
30
- title: "Mountain Lake",
31
- },
32
- // {
33
- // id: "2",
34
- // image:
35
- // "https://images.pexels.com/photos/163273/sunrise-speedboat-ocean-water-163273.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1",
36
- // title: "Sunset Cruise",
37
- // },
38
- {
39
- id: "3",
40
- image:
41
- "https://images.pexels.com/photos/1430677/pexels-photo-1430677.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1",
42
- title: "Ocean Horizon",
43
- },
44
- {
45
- id: "4",
46
- image:
47
- "https://images.pexels.com/photos/2387793/pexels-photo-2387793.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1",
48
- title: "Forest Trail",
49
- },
50
- // {
51
- // id: "5",
52
- // image:
53
- // "https://images.pexels.com/photos/302804/pexels-photo-302804.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1",
54
- // title: "City Lights",
55
- // },
56
- ];
24
+
25
+ const DUMMY_DATA = Array.from({ length: 10 }, (_, i) => ({
26
+ id: `image-${i + 1}`,
27
+ // Using a random query parameter ensures you get a different image for each ID
28
+ image: `https://picsum.photos/seed/picsum/400/600`,
29
+ title: `Image #${i + 1}`,
30
+ }));
57
31
 
58
32
  const App = () => {
59
33
  const { theme } = useTheme();
@@ -70,8 +44,6 @@ const App = () => {
70
44
  setProgress(newProgress);
71
45
  };
72
46
 
73
-
74
-
75
47
  return (
76
48
  <>
77
49
  <SafeAreaProvider>
@@ -80,6 +52,13 @@ const App = () => {
80
52
  <BottomSheetStackProvider>
81
53
  <StatusBar barStyle="light-content" />
82
54
  <SafeAreaView style={styles.appContainer}>
55
+ <CarouselCardStack
56
+ data={DUMMY_DATA}
57
+ // backgroundColor="#333" // Set a background color for the component area
58
+ // onActiveIndexChange={(index) => {
59
+ // console.log("Active item index:", index);
60
+ // }}
61
+ />
83
62
  {/* <CircularProgressBar
84
63
  progress={5}
85
64
  lineCap="round"
@@ -119,9 +98,9 @@ const App = () => {
119
98
  applyButtonTextStyle={{ color: theme.secondary }}
120
99
  headerStyle={{ borderBottomWidth: 0 }}
121
100
  ></Filters> */}
122
- <FlightSummary></FlightSummary>
101
+ {/* <FlightSummary></FlightSummary> */}
123
102
  {/* <FlightForm></FlightForm> */}
124
- {/* <HotelSummary></HotelSummary> */}
103
+ {/* <HotelSummary overrideTheme={darkTheme}></HotelSummary> */}
125
104
  {/* <HotelForm></HotelForm> */}
126
105
  {/* <DateRangePicker onDatesChange={()=>{}} labelContainerStyle={{backgroundColor:"red"}}></DateRangePicker> */}
127
106
  {/* <CarRentalForm onSelectionChange={console.log}></CarRentalForm> */}
@@ -25,9 +25,11 @@ const SIDE_CARD_TRANSLATE_X_FACTOR = Math.min(0.32, MAX_X_FACTOR);
25
25
  const SIDE_CARD_TRANSLATE_X = CARD_WIDTH * SIDE_CARD_TRANSLATE_X_FACTOR;
26
26
  const ACTIVE_CARD_SCALE = 1.0;
27
27
  const SPRING_CONFIG = { damping: 18, stiffness: 120, mass: 0.6 };
28
- const FADE_SPRING_CONFIG = { damping: 35, stiffness: 50, mass: 1.2 };
29
28
  const SIDE_CARD_ROTATION_DEGREES = 7;
30
29
 
30
+ // Only render visible items + buffer
31
+ const VISIBLE_RANGE = 2; // Items on each side of active item
32
+
31
33
  interface CarouselItemOriginal {
32
34
  id: string;
33
35
  image: string;
@@ -42,7 +44,7 @@ interface CarouselCardStackProps {
42
44
  data: CarouselItemOriginal[];
43
45
  cardHeight?: number;
44
46
  cardWidth?: number;
45
- backgroundColor? : string;
47
+ backgroundColor?: string;
46
48
  }
47
49
 
48
50
  const createVirtualData = (
@@ -66,6 +68,91 @@ const createVirtualData = (
66
68
  return [...prevSegment, ...currSegment, ...nextSegment];
67
69
  };
68
70
 
71
+ // Memoized card component
72
+ const CarouselCard = React.memo<{
73
+ item: CarouselItemVirtual;
74
+ index: number;
75
+ activeIndex: Animated.SharedValue<number>;
76
+ gestureTranslateX: Animated.SharedValue<number>;
77
+ cardWidth: number;
78
+ cardHeight: number;
79
+ virtualDataLength: number;
80
+ }>(({ item, index, activeIndex, gestureTranslateX, cardWidth, cardHeight, virtualDataLength }) => {
81
+ const animatedStyle = useAnimatedStyle(() => {
82
+ const currentCardDragOffset = gestureTranslateX.value / cardWidth;
83
+ const displayOffset = index - (activeIndex.value - currentCardDragOffset);
84
+
85
+ // Early return for items that are too far away to optimize performance
86
+ const absDisplayOffset = Math.abs(displayOffset);
87
+ if (absDisplayOffset > 2.5) {
88
+ return {
89
+ opacity: 0,
90
+ transform: [{ translateX: 0 }, { scale: 0.8 }, { rotateZ: '0deg' }],
91
+ zIndex: 0,
92
+ };
93
+ }
94
+
95
+ const scale = interpolate(
96
+ displayOffset,
97
+ [-1, 0, 1],
98
+ [SIDE_CARD_SCALE_FACTOR, ACTIVE_CARD_SCALE, SIDE_CARD_SCALE_FACTOR],
99
+ Extrapolation.CLAMP
100
+ );
101
+
102
+ const translateX = interpolate(
103
+ displayOffset,
104
+ [-1, 0, 1],
105
+ [-SIDE_CARD_TRANSLATE_X, 0, SIDE_CARD_TRANSLATE_X],
106
+ Extrapolation.CLAMP
107
+ );
108
+
109
+ const rotation = interpolate(
110
+ displayOffset,
111
+ [-1, 0, 1],
112
+ [-SIDE_CARD_ROTATION_DEGREES, 0, SIDE_CARD_ROTATION_DEGREES],
113
+ Extrapolation.CLAMP
114
+ );
115
+
116
+ const opacity = interpolate(
117
+ absDisplayOffset,
118
+ [0, 1, 2, 2.75],
119
+ [1, 1, 0.6, 0],
120
+ Extrapolation.CLAMP
121
+ );
122
+
123
+ const snappedDisplayOffset = index - Math.round(activeIndex.value);
124
+ const zIndex = virtualDataLength - Math.abs(snappedDisplayOffset);
125
+
126
+ return {
127
+ transform: [{ translateX }, { scale }, { rotateZ: `${rotation}deg` }],
128
+ opacity,
129
+ zIndex,
130
+ };
131
+ }, [index, cardWidth, virtualDataLength]);
132
+
133
+ return (
134
+ <Animated.View
135
+ style={[
136
+ styles.card,
137
+ { width: cardWidth, height: cardHeight },
138
+ animatedStyle,
139
+ ]}
140
+ >
141
+ <Image
142
+ source={{ uri: item.image }}
143
+ style={styles.cardImage}
144
+ resizeMode="cover"
145
+ fadeDuration={0}
146
+ />
147
+ {item.title && (
148
+ <View style={styles.titleContainer}>
149
+ <Text style={styles.cardTitle}>{item.title}</Text>
150
+ </View>
151
+ )}
152
+ </Animated.View>
153
+ );
154
+ });
155
+
69
156
  const CarouselCardStack: React.FC<CarouselCardStackProps> = ({
70
157
  data: originalData,
71
158
  cardHeight = CARD_HEIGHT,
@@ -73,7 +160,6 @@ const CarouselCardStack: React.FC<CarouselCardStackProps> = ({
73
160
  backgroundColor = "transparent"
74
161
  }) => {
75
162
  const { theme } = useTheme();
76
-
77
163
  const N_original = originalData.length;
78
164
 
79
165
  const virtualData = useMemo(
@@ -90,35 +176,29 @@ const CarouselCardStack: React.FC<CarouselCardStackProps> = ({
90
176
  gestureTranslateX.value = 0;
91
177
  }, [N_original, activeIndex, gestureTranslateX]);
92
178
 
93
- // Worklet to handle the loop reset
94
- const handleLoopReset = () => {
95
- "worklet";
96
- if (N_original === 0) return;
97
-
98
- const currentValue = Math.round(activeIndex.value);
99
-
100
- // If in the "next" segment (indices >= 2*N_original)
101
- if (currentValue >= N_original * 2) {
102
- activeIndex.value = currentValue - N_original;
103
- }
104
- // If in the "prev" segment (indices < N_original)
105
- else if (currentValue < N_original) {
106
- activeIndex.value = currentValue + N_original;
107
- }
108
- };
179
+ // Calculate visible items - moved outside of render
180
+ const visibleItems = useDerivedValue(() => {
181
+ const center = Math.round(activeIndex.value);
182
+ const start = Math.max(0, center - VISIBLE_RANGE);
183
+ const end = Math.min(virtualData.length - 1, center + VISIBLE_RANGE);
184
+
185
+ return virtualData.slice(start, end + 1).map((item, sliceIndex) => ({
186
+ item,
187
+ originalIndex: start + sliceIndex
188
+ }));
189
+ });
109
190
 
110
191
  useDerivedValue(() => {
111
- const currentValue = Math.round(activeIndex.value);
112
-
113
- // Only reset if we're at the boundaries and not currently animating (gestureTranslateX is 0)
114
- if (gestureTranslateX.value === 0) { // i.e., spring animation for gesture has finished
115
- if (currentValue >= N_original * 2) {
116
- activeIndex.value = currentValue - N_original;
117
- } else if (currentValue < N_original) {
118
- activeIndex.value = currentValue + N_original;
192
+ const currentValue = Math.round(activeIndex.value);
193
+
194
+ if (gestureTranslateX.value === 0) {
195
+ if (currentValue >= N_original * 2) {
196
+ activeIndex.value = currentValue - N_original;
197
+ } else if (currentValue < N_original) {
198
+ activeIndex.value = currentValue + N_original;
199
+ }
119
200
  }
120
- }
121
- });
201
+ });
122
202
 
123
203
  const panGesture = Gesture.Pan()
124
204
  .activeOffsetX([-10, 10])
@@ -140,22 +220,12 @@ const CarouselCardStack: React.FC<CarouselCardStackProps> = ({
140
220
  newTargetVirtualIndex = activeIndex.value - 1;
141
221
  }
142
222
 
143
- // Clamp to virtual data bounds
144
223
  newTargetVirtualIndex = Math.max(
145
224
  0,
146
225
  Math.min(newTargetVirtualIndex, virtualData.length - 1)
147
226
  );
148
227
 
149
- activeIndex.value = withSpring(
150
- newTargetVirtualIndex,
151
- SPRING_CONFIG,
152
- (finished) => {
153
- "worklet";
154
- if (finished) {
155
- handleLoopReset();
156
- }
157
- }
158
- );
228
+ activeIndex.value = withSpring(newTargetVirtualIndex, SPRING_CONFIG);
159
229
  gestureTranslateX.value = withSpring(0, SPRING_CONFIG);
160
230
  contextX.value = 0;
161
231
  });
@@ -175,100 +245,40 @@ const CarouselCardStack: React.FC<CarouselCardStackProps> = ({
175
245
  }
176
246
 
177
247
  return (
178
- <View style={[styles.container, { height: cardHeight + 60, backgroundColor: backgroundColor}]}>
248
+ <View style={[styles.container, { height: cardHeight + 60, backgroundColor }]}>
179
249
  <GestureDetector gesture={panGesture}>
180
250
  <Animated.View style={[styles.cardContainer, { height: cardHeight }]}>
181
- {virtualData.map((item, index) => {
182
- const animatedStyle = useAnimatedStyle(() => {
183
- const currentCardDragOffset = gestureTranslateX.value / cardWidth;
184
- const displayOffset =
185
- index - (activeIndex.value - currentCardDragOffset);
186
-
187
- const scale = interpolate(
188
- displayOffset,
189
- [-1, 0, 1],
190
- [
191
- SIDE_CARD_SCALE_FACTOR,
192
- ACTIVE_CARD_SCALE,
193
- SIDE_CARD_SCALE_FACTOR,
194
- ],
195
- Extrapolation.CLAMP
196
- );
197
-
198
- const translateX = interpolate(
199
- displayOffset,
200
- [-1, 0, 1],
201
- [-SIDE_CARD_TRANSLATE_X, 0, SIDE_CARD_TRANSLATE_X],
202
- Extrapolation.CLAMP
203
- );
204
-
205
- const rotation = interpolate(
206
- displayOffset,
207
- [-1, 0, 1],
208
- [
209
- -SIDE_CARD_ROTATION_DEGREES,
210
- 0,
211
- SIDE_CARD_ROTATION_DEGREES,
212
- ],
213
- Extrapolation.CLAMP,
214
- );
215
-
216
- const opacity = interpolate(
217
- Math.abs(displayOffset),
218
- [0, 1, 2, 2.75],
219
- [1, 1, 0.6, 0],
220
- Extrapolation.CLAMP
221
- );
222
-
223
- const snappedDisplayOffset =
224
- index - Math.round(activeIndex.value);
225
- const zIndex =
226
- virtualData.length - Math.abs(snappedDisplayOffset);
227
-
228
-
229
- return {
230
- transform: [{ translateX }, { scale }, { rotateZ: `${rotation}deg` }],
231
- opacity,
232
- zIndex,
233
- };
234
- });
235
-
236
- return (
237
- <Animated.View
238
- key={item.uniqueId}
239
- style={[
240
- styles.card,
241
- { width: cardWidth, height: cardHeight },
242
- animatedStyle,
243
- ]}
244
- >
245
- <Image source={{ uri: item.image }} style={styles.cardImage} />
246
- {item.title && (
247
- <View style={styles.titleContainer}>
248
- <Text style={styles.cardTitle}>{item.title}</Text>
249
- </View>
250
- )}
251
- </Animated.View>
252
- );
253
- })}
251
+ {/* Render all items but optimize with early returns in animations */}
252
+ {virtualData.map((item, index) => (
253
+ <CarouselCard
254
+ key={item.uniqueId}
255
+ item={item}
256
+ index={index}
257
+ activeIndex={activeIndex}
258
+ gestureTranslateX={gestureTranslateX}
259
+ cardWidth={cardWidth}
260
+ cardHeight={cardHeight}
261
+ virtualDataLength={virtualData.length}
262
+ />
263
+ ))}
254
264
  </Animated.View>
255
265
  </GestureDetector>
256
266
 
257
267
  {N_original > 0 && (
258
268
  <View style={styles.paginationContainer}>
259
269
  {originalData.map((_, i) => {
260
- const isActiveDot = useDerivedValue(() => {
261
- return activeDotIndex.value === i;
262
- });
263
270
  const dotStyle = useAnimatedStyle(() => {
271
+ const isActive = activeDotIndex.value === i;
264
272
  return {
265
- width: withSpring(isActiveDot.value ? 24 : 8, SPRING_CONFIG),
273
+ width: withSpring(isActive ? 24 : 8, SPRING_CONFIG),
266
274
  height: 8,
267
275
  borderRadius: 4,
268
- backgroundColor: isActiveDot.value ? theme.primary : "#FFFFFF",
276
+ backgroundColor: isActive ? theme.primary : "#FFFFFF",
269
277
  marginHorizontal: 4,
278
+ opacity: isActive ? 1 : 0.5,
270
279
  };
271
280
  });
281
+
272
282
  return <Animated.View key={`dot-${i}`} style={dotStyle} />;
273
283
  })}
274
284
  </View>
@@ -325,4 +335,4 @@ const styles = StyleSheet.create({
325
335
  },
326
336
  });
327
337
 
328
- export default CarouselCardStack;
338
+ export default CarouselCardStack;