react-native-actions-sheet-picker icon indicating copy to clipboard operation
react-native-actions-sheet-picker copied to clipboard

Unable to open the Picker in Expo 52 SDK on Android

Open MohammadUmer526 opened this issue 5 months ago • 0 comments

Hello,

We upgraded the Expo version form 51 to 52. The Picker is working fine on iOS but having issue on Android device.

When we try to pen the Picker; it shows jerk and not open.

Version:

react-native-actions-sheet-picker is ^0.3.5

Code:

const onSelectDate = (date: string) => {
  setSelectedDate(date);
  onClose('date');
};

const onSelectTimeSlot = (timeSlot: string) => {
  setSelectedTimeSlot(timeSlot);
  onClose('timeslot');
};


<View className="flex flex-1 bg-white">
    <Picker
      actionsSheetProps={{ keyboardHandlerEnabled: false }}
      data={data.appointments.map((appointment) => appointment.date)}
      id="date"
      label={t('ePurchaseAppointment.dateTitle')}
      searchable={false}
      setSelected={setSelectedDate}
      renderListItem={function (item, index: number) {
        return (
          <Pressable className="mt-8 flex-row justify-between" onPress={(i) => onSelectDate(item)}>
            <View className="inline-fex flex-row items-center gap-x-4">
              <Text className="text-[14px]" font="bold">
                {item}
              </Text>
            </View>
            <View
              className={
                'inline-flex h-5 w-5 items-start justify-start rounded-full border p-0.5' +
                (selectedDate == item ? ' border-primary' : '')
              }
            >
              {selectedDate === item && <View className="bg-primary h-full w-full rounded-full" />}
            </View>
          </Pressable>
        );
      }}
    />
    <Picker
      id="timeslot"
      label={t('ePurchaseAppointment.timeslotTitle')}
      searchable={false}
      setSelected={setSelectedTimeSlot}
      i18nIsDynamicList
      data={
        data.appointments
          .find((appointment) => appointment.date === selectedDate)
          ?.slots.map((timeslot) => timeslot.time) || []
      }
      actionsSheetProps={{ keyboardHandlerEnabled: false }}
      renderListItem={function (item, index: number) {
        return (
          <Pressable className="mt-8 flex-row justify-between" onPress={(i) => onSelectTimeSlot(item)}>
            <View className="inline-fex flex-row items-center gap-x-4">
              <Text className="text-[14px]" font="bold">
                {item}
              </Text>
            </View>
            <View
              className={
                'inline-flex h-5 w-5 items-start justify-start rounded-full border p-0.5' +
                (selectedTimeSlot == item ? ' border-primary' : '')
              }
            >
              {selectedTimeSlot === item && <View className="bg-primary h-full w-full rounded-full" />}
            </View>
          </Pressable>
        );
      }}
    />
    <View className="h-full">
      <View className="w-full flex-[0.5] gap-y-6 px-6 py-8">
        <Pressable
          className="flex h-[56] w-full flex-row items-center justify-between rounded-lg border border-[#DCDCDC] bg-white px-5 py-4"
          onPress={() =>
             onOpen('date')
            }
       
        >
          <Text font={'bold'} className="text-secondary text-[16px] font-[700]">
            {selectedDate ? new Date(selectedDate).toLocaleDateString('en') : t('ePurchaseAppointment.dateTitle')}
          </Text>
        </Pressable>
        <Pressable
          className="flex h-[56] w-full flex-row items-center justify-between rounded-lg border border-[#DCDCDC] bg-white px-5 py-4"
          onPress={() => onOpen('timeslot')}
       
        >
          <Text font={'bold'} className="text-secondary text-[16px] font-[700]">
            {selectedTimeSlot ? selectedTimeSlot : t('ePurchaseAppointment.timeslotTitle')}
          </Text>
        </Pressable>

        <View className="px-3">
          <Button
            disabled={!selectedDate || !selectedTimeSlot || submitOrder.isLoading}
            className={`mt-6 w-full items-center justify-center`}
            onPress={onSubmit}
          >
            {t('ePurchaseAppointment.submit')}
          </Button>
        </View>
      </View>
    </View>
  </View>

MohammadUmer526 avatar Jul 22 '25 09:07 MohammadUmer526