Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(Popover): popover content now closes on ESC key press #4557

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

sarkaaa
Copy link
Member

@sarkaaa sarkaaa commented Dec 19, 2024

closes https://kiwicom.atlassian.net/browse/FEPLT-2185

This Pull Request meets the following criteria:

For new components:

  • Unit and visual regression tests have been added/adjusted for my new feature
  • New Components are registered in index.js of my project
  • New Components have d.ts files and are exported in index.d.ts

Description by Callstackai

This PR adds functionality to close the Popover component when the ESC key is pressed, along with visual regression tests for this feature.

Diagrams of code changes
sequenceDiagram
    participant User
    participant Popover
    participant Document
    participant EventListener

    User->>Popover: Opens popover
    Popover->>Document: Adds ESC key event listener
    User->>Document: Presses ESC key
    Document->>EventListener: Triggers keydown event
    EventListener->>Popover: Handles ESC key press
    Popover->>Popover: setShown(false)
    Popover->>Popover: clearShownTimeout()
    Popover->>Popover: resolveCallback(false)
    Popover->>Popover: setRenderWithTimeout(false)
    Popover->>Document: Removes ESC key event listener
    Popover->>User: Closes popover
Loading
Files Changed
FileSummary
packages/orbit-components/src/Popover/Popover.ct.tsxAdded a test to verify that the Popover closes when the ESC key is pressed.
packages/orbit-components/src/Popover/Popover.stories.tsxUpdated Button components to use 'asComponent="div"' for better accessibility.
packages/orbit-components/src/Popover/index.tsxImplemented the ESC key handling logic to close the Popover.

Copy link
Contributor

Storybook staging is available at https://kiwicom-orbit-sarka-popover-esc-close.surge.sh

Copy link
Contributor

github-actions bot commented Dec 19, 2024

Size Change: +111 B (+0.02%)

Total Size: 459 kB

Filename Size Change
packages/orbit-components/lib/icons/ColoredMessenger.js 787 B +1 B (+0.13%)
packages/orbit-components/lib/Popover/index.js 1.49 kB +110 B (+7.99%) 🔍
ℹ️ View Unchanged
Filename Size
packages/orbit-components/lib/Accordion/AccordionContext.js 333 B
packages/orbit-components/lib/Accordion/AccordionSection/components/SectionContent.js 289 B
packages/orbit-components/lib/Accordion/AccordionSection/components/SectionFooter.js 405 B
packages/orbit-components/lib/Accordion/AccordionSection/components/SectionHeader.js 759 B
packages/orbit-components/lib/Accordion/AccordionSection/index.js 824 B
packages/orbit-components/lib/Accordion/index.js 652 B
packages/orbit-components/lib/AirportIllustration/index.js 340 B
packages/orbit-components/lib/Alert/AlertButton/consts.js 374 B
packages/orbit-components/lib/Alert/AlertButton/helpers/getAlertButtonBoxShadow.js 576 B
packages/orbit-components/lib/Alert/AlertButton/helpers/getAlertButtonIconForeground.js 267 B
packages/orbit-components/lib/Alert/AlertButton/helpers/getAlertButtonStyles.js 505 B
packages/orbit-components/lib/Alert/AlertButton/helpers/getAlertButtonTypeToken.js 771 B
packages/orbit-components/lib/Alert/AlertButton/index.js 621 B
packages/orbit-components/lib/Alert/consts.js 295 B
packages/orbit-components/lib/Alert/index.js 1.61 kB
packages/orbit-components/lib/Badge/consts.js 268 B
packages/orbit-components/lib/Badge/index.js 695 B
packages/orbit-components/lib/BadgeList/BadgeListItem/index.js 986 B
packages/orbit-components/lib/BadgeList/consts.js 266 B
packages/orbit-components/lib/BadgeList/index.js 337 B
packages/orbit-components/lib/Box/helpers/getBackground.js 220 B
packages/orbit-components/lib/Box/helpers/getBorderRadius.js 212 B
packages/orbit-components/lib/Box/helpers/getColor.js 210 B
packages/orbit-components/lib/Box/helpers/getElevation.js 209 B
packages/orbit-components/lib/Box/helpers/getMargin.js 351 B
packages/orbit-components/lib/Box/helpers/getOverflow.js 207 B
packages/orbit-components/lib/Box/helpers/getPadding.js 355 B
packages/orbit-components/lib/Box/helpers/getPosition.js 206 B
packages/orbit-components/lib/Box/helpers/getTextAlign.js 215 B
packages/orbit-components/lib/Box/helpers/getWrap.js 211 B
packages/orbit-components/lib/Box/helpers/index.js 607 B
packages/orbit-components/lib/Box/helpers/tailwindClasses.js 1.32 kB
packages/orbit-components/lib/Box/index.js 2.02 kB
packages/orbit-components/lib/Breadcrumbs/BreadcrumbsItem/index.js 924 B
packages/orbit-components/lib/Breadcrumbs/index.js 851 B
packages/orbit-components/lib/Button/consts.js 337 B
packages/orbit-components/lib/Button/index.js 1.21 kB
packages/orbit-components/lib/ButtonGroup/index.js 346 B
packages/orbit-components/lib/ButtonLink/consts.js 289 B
packages/orbit-components/lib/ButtonLink/helpers/getButtonLinkCommonProps.js 271 B
packages/orbit-components/lib/ButtonLink/helpers/getButtonLinkIconForeground.js 432 B
packages/orbit-components/lib/ButtonLink/helpers/getButtonLinkStyles.js 474 B
packages/orbit-components/lib/ButtonLink/helpers/getButtonLinkTypeToken.js 388 B
packages/orbit-components/lib/ButtonLink/index.js 918 B
packages/orbit-components/lib/ButtonMobileStore/consts.js 342 B
packages/orbit-components/lib/ButtonMobileStore/index.js 616 B
packages/orbit-components/lib/CallOutBanner/index.js 743 B
packages/orbit-components/lib/Card/CardSection/components/Expandable.js 395 B
packages/orbit-components/lib/Card/CardSection/index.js 1.47 kB
packages/orbit-components/lib/Card/components/Header.js 799 B
packages/orbit-components/lib/Card/index.js 859 B
packages/orbit-components/lib/CarrierLogo/consts.js 343 B
packages/orbit-components/lib/CarrierLogo/index.js 1.26 kB
packages/orbit-components/lib/Checkbox/index.js 1.22 kB
packages/orbit-components/lib/ChoiceGroup/components/Feedback.js 554 B
packages/orbit-components/lib/ChoiceGroup/components/FilterWrapper.js 634 B
packages/orbit-components/lib/ChoiceGroup/consts.js 236 B
packages/orbit-components/lib/ChoiceGroup/index.js 1.19 kB
packages/orbit-components/lib/Collapse/index.js 1.19 kB
packages/orbit-components/lib/common/consts.js 225 B
packages/orbit-components/lib/common/getFieldDataState.js 134 B
packages/orbit-components/lib/common/keyMaps.js 203 B
packages/orbit-components/lib/common/placements.js 431 B
packages/orbit-components/lib/common/tailwind/alignContent.js 563 B
packages/orbit-components/lib/common/tailwind/alignItems.js 536 B
packages/orbit-components/lib/common/tailwind/backgroundColor.js 2.33 kB
packages/orbit-components/lib/common/tailwind/color.js 2.33 kB
packages/orbit-components/lib/common/tailwind/direction.js 510 B
packages/orbit-components/lib/common/tailwind/display.js 648 B
packages/orbit-components/lib/common/tailwind/grow.js 405 B
packages/orbit-components/lib/common/tailwind/index.js 530 B
packages/orbit-components/lib/common/tailwind/justify.js 544 B
packages/orbit-components/lib/common/tailwind/margin.js 2.06 kB
packages/orbit-components/lib/common/tailwind/padding.js 1.71 kB
packages/orbit-components/lib/common/tailwind/shrink.js 418 B
packages/orbit-components/lib/common/tailwind/spaceAfter.js 506 B
packages/orbit-components/lib/common/tailwind/spacing.js 1.7 kB
packages/orbit-components/lib/common/tailwind/textAlign.js 506 B
packages/orbit-components/lib/common/tailwind/wrap.js 414 B
packages/orbit-components/lib/CountryFlag/consts.js 1.5 kB
packages/orbit-components/lib/CountryFlag/index.js 838 B
packages/orbit-components/lib/Coupon/index.js 374 B
packages/orbit-components/lib/defaultTheme.js 211 B
packages/orbit-components/lib/Dialog/index.js 1.53 kB
packages/orbit-components/lib/Drawer/components/DrawerClose.js 376 B
packages/orbit-components/lib/Drawer/consts.js 181 B
packages/orbit-components/lib/Drawer/index.js 1.63 kB
packages/orbit-components/lib/ErrorFormTooltip/hooks/useErrorTooltip.js 318 B
packages/orbit-components/lib/ErrorFormTooltip/index.js 407 B
packages/orbit-components/lib/ErrorFormTooltip/Tooltip/index.js 1.62 kB
packages/orbit-components/lib/FeatureIcon/consts.js 236 B
packages/orbit-components/lib/FeatureIcon/index.js 543 B
packages/orbit-components/lib/FormLabel/index.js 650 B
packages/orbit-components/lib/fromPlainObject.js 147 B
packages/orbit-components/lib/getTokens.js 144 B
packages/orbit-components/lib/Heading/consts.js 423 B
packages/orbit-components/lib/Heading/index.js 829 B
packages/orbit-components/lib/Heading/twClasses.js 835 B
packages/orbit-components/lib/Hide/index.js 379 B
packages/orbit-components/lib/hooks/useBoundingRect/index.js 427 B
packages/orbit-components/lib/hooks/useClickOutside/index.js 331 B
packages/orbit-components/lib/hooks/useEventListener/index.js 525 B
packages/orbit-components/lib/hooks/useFocusTrap/consts.js 215 B
packages/orbit-components/lib/hooks/useFocusTrap/index.js 648 B
packages/orbit-components/lib/hooks/useIntersect/index.js 424 B
packages/orbit-components/lib/hooks/useInterval/index.js 276 B
packages/orbit-components/lib/hooks/useIsMounted/index.js 269 B
packages/orbit-components/lib/hooks/useIsMountedRef/index.js 210 B
packages/orbit-components/lib/hooks/useLockScrolling/index.js 557 B
packages/orbit-components/lib/hooks/useLockScrolling/lock-scrolling.js 2.31 kB
packages/orbit-components/lib/hooks/useMediaQuery/index.js 951 B
packages/orbit-components/lib/hooks/usePrevious/index.js 257 B
packages/orbit-components/lib/hooks/useRandomId/index.js 239 B
packages/orbit-components/lib/hooks/useStateWithCallback/index.js 262 B
packages/orbit-components/lib/hooks/useStateWithTimeout/index.js 356 B
packages/orbit-components/lib/hooks/useTheme/index.js 240 B
packages/orbit-components/lib/hooks/useToggle/index.js 266 B
packages/orbit-components/lib/HorizontalScroll/helpers.js 199 B
packages/orbit-components/lib/HorizontalScroll/index.js 1.6 kB
packages/orbit-components/lib/HorizontalScroll/useScroll.js 1.01 kB
packages/orbit-components/lib/Icon/consts.js 307 B
packages/orbit-components/lib/Icon/createIcon.js 349 B
packages/orbit-components/lib/Icon/helpers/whiteListProps.js 252 B
packages/orbit-components/lib/Icon/IconList.js 661 B
packages/orbit-components/lib/Icon/index.js 856 B
packages/orbit-components/lib/icons/Accommodation.js 509 B
packages/orbit-components/lib/icons/AccountCircle.js 608 B
packages/orbit-components/lib/icons/Admin.js 804 B
packages/orbit-components/lib/icons/Ai.js 646 B
packages/orbit-components/lib/icons/AirConditioning.js 1.01 kB
packages/orbit-components/lib/icons/Airplane.js 781 B
packages/orbit-components/lib/icons/AirplaneDown.js 661 B
packages/orbit-components/lib/icons/AirplaneLanding.js 826 B
packages/orbit-components/lib/icons/AirplaneLandingLight.js 770 B
packages/orbit-components/lib/icons/AirplaneReturn.js 788 B
packages/orbit-components/lib/icons/AirplaneTakeoff.js 851 B
packages/orbit-components/lib/icons/AirplaneTakeoffLight.js 781 B
packages/orbit-components/lib/icons/AirplaneUp.js 664 B
packages/orbit-components/lib/icons/AirplaneUpOff.js 751 B
packages/orbit-components/lib/icons/AirportSecurity.js 615 B
packages/orbit-components/lib/icons/Alert.js 508 B
packages/orbit-components/lib/icons/AlertCircle.js 444 B
packages/orbit-components/lib/icons/AlertOctagon.js 413 B
packages/orbit-components/lib/icons/All.js 659 B
packages/orbit-components/lib/icons/AmbulanceLight.js 833 B
packages/orbit-components/lib/icons/Android.js 610 B
packages/orbit-components/lib/icons/Anywhere.js 920 B
packages/orbit-components/lib/icons/Apple.js 602 B
packages/orbit-components/lib/icons/AppNotification.js 787 B
packages/orbit-components/lib/icons/ArrowBack.js 388 B
packages/orbit-components/lib/icons/ArrowDown.js 465 B
packages/orbit-components/lib/icons/ArrowUp.js 450 B
packages/orbit-components/lib/icons/Atm.js 754 B
packages/orbit-components/lib/icons/Attachment.js 547 B
packages/orbit-components/lib/icons/BaggageCabin.js 675 B
packages/orbit-components/lib/icons/BaggageCabinLight.js 507 B
packages/orbit-components/lib/icons/BaggageCabinNone.js 744 B
packages/orbit-components/lib/icons/BaggageCabinNoneLight.js 649 B
packages/orbit-components/lib/icons/BaggageChecked10.js 633 B
packages/orbit-components/lib/icons/BaggageChecked10Light.js 533 B
packages/orbit-components/lib/icons/BaggageChecked10NoneLight.js 665 B
packages/orbit-components/lib/icons/BaggageChecked20.js 628 B
packages/orbit-components/lib/icons/BaggageChecked20Light.js 527 B
packages/orbit-components/lib/icons/BaggageChecked20NoneLight.js 677 B
packages/orbit-components/lib/icons/BaggageChecked30.js 645 B
packages/orbit-components/lib/icons/BaggageChecked30Light.js 540 B
packages/orbit-components/lib/icons/BaggageCheckedNone.js 754 B
packages/orbit-components/lib/icons/BaggageCheckedNoneLight.js 719 B
packages/orbit-components/lib/icons/BaggagePersonal.js 940 B
packages/orbit-components/lib/icons/BaggagePersonalLight.js 508 B
packages/orbit-components/lib/icons/BaggagePersonalNone.js 981 B
packages/orbit-components/lib/icons/BaggagePersonalNoneLight.js 646 B
packages/orbit-components/lib/icons/BaggageRecheck.js 593 B
packages/orbit-components/lib/icons/BaggageSet.js 799 B
packages/orbit-components/lib/icons/BaggageSetLight.js 661 B
packages/orbit-components/lib/icons/BaggageStorage.js 752 B
packages/orbit-components/lib/icons/Bank.js 602 B
packages/orbit-components/lib/icons/BillingDetails.js 666 B
packages/orbit-components/lib/icons/BoardingGate.js 781 B
packages/orbit-components/lib/icons/Boat.js 951 B
packages/orbit-components/lib/icons/Bookmark.js 476 B
packages/orbit-components/lib/icons/Bug.js 876 B
packages/orbit-components/lib/icons/Bus.js 715 B
packages/orbit-components/lib/icons/Cake.js 827 B
packages/orbit-components/lib/icons/Calendar.js 569 B
packages/orbit-components/lib/icons/CalendarAnytime.js 632 B
packages/orbit-components/lib/icons/CalendarDuration.js 626 B
packages/orbit-components/lib/icons/CalendarLight.js 667 B
packages/orbit-components/lib/icons/CalendarRange.js 618 B
packages/orbit-components/lib/icons/CalendarTripLength.js 663 B
packages/orbit-components/lib/icons/Camera.js 633 B
packages/orbit-components/lib/icons/Car.js 736 B
packages/orbit-components/lib/icons/CarDoor.js 478 B
packages/orbit-components/lib/icons/CarRental.js 1.03 kB
packages/orbit-components/lib/icons/Chart.js 539 B
packages/orbit-components/lib/icons/Chat.js 471 B
packages/orbit-components/lib/icons/Check.js 399 B
packages/orbit-components/lib/icons/CheckCircle.js 433 B
packages/orbit-components/lib/icons/ChevronBackward.js 421 B
packages/orbit-components/lib/icons/ChevronDoubleBackward.js 445 B
packages/orbit-components/lib/icons/ChevronDoubleForward.js 434 B
packages/orbit-components/lib/icons/ChevronDown.js 413 B
packages/orbit-components/lib/icons/ChevronForward.js 428 B
packages/orbit-components/lib/icons/ChevronUp.js 418 B
packages/orbit-components/lib/icons/Child.js 784 B
packages/orbit-components/lib/icons/ChildFriendly.js 670 B
packages/orbit-components/lib/icons/Circle.js 334 B
packages/orbit-components/lib/icons/CircleEmpty.js 397 B
packages/orbit-components/lib/icons/CircleFilled.js 432 B
packages/orbit-components/lib/icons/CircleSmall.js 343 B
packages/orbit-components/lib/icons/CircleSmallEmpty.js 369 B
packages/orbit-components/lib/icons/City.js 582 B
packages/orbit-components/lib/icons/Clock.js 464 B
packages/orbit-components/lib/icons/Close.js 446 B
packages/orbit-components/lib/icons/CloseCircle.js 487 B
packages/orbit-components/lib/icons/Cocktail.js 715 B
packages/orbit-components/lib/icons/Code.js 496 B
packages/orbit-components/lib/icons/CodeKiwi.js 430 B
packages/orbit-components/lib/icons/Coffee.js 521 B
packages/orbit-components/lib/icons/ColoredFacebook.js 626 B
packages/orbit-components/lib/icons/ColoredImessage.js 694 B
packages/orbit-components/lib/icons/ColoredSignal.js 1.05 kB
packages/orbit-components/lib/icons/ColoredTelegram.js 821 B
packages/orbit-components/lib/icons/ColoredViber.js 1.36 kB
packages/orbit-components/lib/icons/ColoredWhatsapp.js 858 B
packages/orbit-components/lib/icons/ColorPicker.js 586 B
packages/orbit-components/lib/icons/Compare.js 677 B
packages/orbit-components/lib/icons/Compass.js 479 B
packages/orbit-components/lib/icons/ContactEmail.js 864 B
packages/orbit-components/lib/icons/Copy.js 536 B
packages/orbit-components/lib/icons/CreditCard.js 497 B
packages/orbit-components/lib/icons/CustomerSupport.js 625 B
packages/orbit-components/lib/icons/Dashboard.js 702 B
packages/orbit-components/lib/icons/Deals.js 464 B
packages/orbit-components/lib/icons/DealsV2.js 633 B
packages/orbit-components/lib/icons/DeviceDesktop.js 507 B
packages/orbit-components/lib/icons/DeviceMobile.js 413 B
packages/orbit-components/lib/icons/Diamond.js 619 B
packages/orbit-components/lib/icons/Document.js 581 B
packages/orbit-components/lib/icons/Download.js 514 B
packages/orbit-components/lib/icons/Duplicate.js 668 B
packages/orbit-components/lib/icons/Edit.js 478 B
packages/orbit-components/lib/icons/EditOff.js 557 B
packages/orbit-components/lib/icons/Email.js 596 B
packages/orbit-components/lib/icons/Entertainment.js 520 B
packages/orbit-components/lib/icons/Exchange.js 1.01 kB
packages/orbit-components/lib/icons/Facebook.js 495 B
packages/orbit-components/lib/icons/FamilyAll.js 669 B
packages/orbit-components/lib/icons/FamilyHalf.js 704 B
packages/orbit-components/lib/icons/Feedback.js 475 B
packages/orbit-components/lib/icons/Filters.js 599 B
packages/orbit-components/lib/icons/Flash.js 478 B
packages/orbit-components/lib/icons/FlightDirect.js 451 B
packages/orbit-components/lib/icons/FlightMulticity.js 508 B
packages/orbit-components/lib/icons/FlightNomad.js 692 B
packages/orbit-components/lib/icons/FlightReturn.js 581 B
packages/orbit-components/lib/icons/FlightServices.js 682 B
packages/orbit-components/lib/icons/Fuel.js 659 B
packages/orbit-components/lib/icons/FullScreen.js 619 B
packages/orbit-components/lib/icons/FullScreenOff.js 661 B
packages/orbit-components/lib/icons/Gallery.js 695 B
packages/orbit-components/lib/icons/GenderMan.js 1.06 kB
packages/orbit-components/lib/icons/GenderWoman.js 1.21 kB
packages/orbit-components/lib/icons/Github.js 682 B
packages/orbit-components/lib/icons/Google.js 663 B
packages/orbit-components/lib/icons/GooglePlay.js 492 B
packages/orbit-components/lib/icons/GpsFixed.js 513 B
packages/orbit-components/lib/icons/GpsIos.js 419 B
packages/orbit-components/lib/icons/GpsNotFixed.js 491 B
packages/orbit-components/lib/icons/GpsOff.js 824 B
packages/orbit-components/lib/icons/Grid.js 570 B
packages/orbit-components/lib/icons/Gym.js 544 B
packages/orbit-components/lib/icons/Heart.js 476 B
packages/orbit-components/lib/icons/HeartOutline.js 610 B
packages/orbit-components/lib/icons/History.js 522 B
packages/orbit-components/lib/icons/HospitalSignLight.js 427 B
packages/orbit-components/lib/icons/Inbox.js 415 B
packages/orbit-components/lib/icons/index.js 5.89 kB
packages/orbit-components/lib/icons/Infant.js 1.19 kB
packages/orbit-components/lib/icons/InformationCircle.js 529 B
packages/orbit-components/lib/icons/InformationCircleLight.js 474 B
packages/orbit-components/lib/icons/Instagram.js 1.02 kB
packages/orbit-components/lib/icons/Insurance.js 452 B
packages/orbit-components/lib/icons/InsuranceConfirmed.js 539 B
packages/orbit-components/lib/icons/InsuranceOff.js 507 B
packages/orbit-components/lib/icons/Invoice.js 691 B
packages/orbit-components/lib/icons/ItemCompleted.js 541 B
packages/orbit-components/lib/icons/Kiwicom.js 888 B
packages/orbit-components/lib/icons/KiwicomCare.js 546 B
packages/orbit-components/lib/icons/KiwicomGuarantee.js 655 B
packages/orbit-components/lib/icons/KiwicomNoGuarantee.js 655 B
packages/orbit-components/lib/icons/LegalExpertsLight.js 1.11 kB
packages/orbit-components/lib/icons/Leisure.js 1.07 kB
packages/orbit-components/lib/icons/Link.js 629 B
packages/orbit-components/lib/icons/Linkedin.js 542 B
packages/orbit-components/lib/icons/List.js 381 B
packages/orbit-components/lib/icons/Location.js 419 B
packages/orbit-components/lib/icons/LocationA.js 587 B
packages/orbit-components/lib/icons/LocationAdd.js 497 B
packages/orbit-components/lib/icons/LocationB.js 608 B
packages/orbit-components/lib/icons/LocationC.js 569 B
packages/orbit-components/lib/icons/LocationD.js 542 B
packages/orbit-components/lib/icons/LocationE.js 524 B
packages/orbit-components/lib/icons/LocationF.js 560 B
packages/orbit-components/lib/icons/LocationG.js 616 B
packages/orbit-components/lib/icons/LocationH.js 502 B
packages/orbit-components/lib/icons/LocationI.js 436 B
packages/orbit-components/lib/icons/LocationJ.js 511 B
packages/orbit-components/lib/icons/Lock.js 467 B
packages/orbit-components/lib/icons/LockOpen.js 576 B
packages/orbit-components/lib/icons/Logout.js 602 B
packages/orbit-components/lib/icons/Lounge.js 597 B
packages/orbit-components/lib/icons/Map.js 637 B
packages/orbit-components/lib/icons/Markdown.js 539 B
packages/orbit-components/lib/icons/Meal.js 793 B
packages/orbit-components/lib/icons/MealLight.js 620 B
packages/orbit-components/lib/icons/MedicalInsuranceLight.js 953 B
packages/orbit-components/lib/icons/MedicalProtectionLight.js 694 B
packages/orbit-components/lib/icons/MenuCircle.js 437 B
packages/orbit-components/lib/icons/MenuHamburger.js 449 B
packages/orbit-components/lib/icons/MenuKebab.js 350 B
packages/orbit-components/lib/icons/MenuMeatballs.js 354 B
packages/orbit-components/lib/icons/Messages.js 547 B
packages/orbit-components/lib/icons/MessagesOutline.js 604 B
packages/orbit-components/lib/icons/Minus.js 334 B
packages/orbit-components/lib/icons/MinusCircle.js 371 B
packages/orbit-components/lib/icons/Money.js 593 B
packages/orbit-components/lib/icons/MoneyTransferIn.js 608 B
packages/orbit-components/lib/icons/MoneyTransferOut.js 606 B
packages/orbit-components/lib/icons/Moon.js 450 B
packages/orbit-components/lib/icons/MusicalInstruments.js 871 B
packages/orbit-components/lib/icons/NewWindow.js 559 B
packages/orbit-components/lib/icons/NoFlash.js 547 B
packages/orbit-components/lib/icons/Nonstop.js 657 B
packages/orbit-components/lib/icons/NoRefund.js 946 B
packages/orbit-components/lib/icons/NoRescheduling.js 619 B
packages/orbit-components/lib/icons/Notification.js 462 B
packages/orbit-components/lib/icons/NotificationAdd.js 646 B
packages/orbit-components/lib/icons/NotificationOff.js 567 B
packages/orbit-components/lib/icons/NotificationOn.js 670 B
packages/orbit-components/lib/icons/NoWifiLight.js 674 B
packages/orbit-components/lib/icons/OnlineCheckin.js 523 B
packages/orbit-components/lib/icons/OnlineCheckinOff.js 582 B
packages/orbit-components/lib/icons/Outlook.js 701 B
packages/orbit-components/lib/icons/Paid.js 617 B
packages/orbit-components/lib/icons/Parking.js 440 B
packages/orbit-components/lib/icons/Partners.js 1.69 kB
packages/orbit-components/lib/icons/Passenger.js 503 B
packages/orbit-components/lib/icons/PassengerAdd.js 697 B
packages/orbit-components/lib/icons/PassengerOutline.js 725 B
packages/orbit-components/lib/icons/PassengerRemove.js 642 B
packages/orbit-components/lib/icons/Passengers.js 711 B
packages/orbit-components/lib/icons/Passport.js 855 B
packages/orbit-components/lib/icons/Pet.js 484 B
packages/orbit-components/lib/icons/Pharmacy.js 526 B
packages/orbit-components/lib/icons/Phone.js 437 B
packages/orbit-components/lib/icons/PhoneUpdatesLight.js 591 B
packages/orbit-components/lib/icons/Pin.js 499 B
packages/orbit-components/lib/icons/PinOutline.js 631 B
packages/orbit-components/lib/icons/Placeholder.js 333 B
packages/orbit-components/lib/icons/Play.js 418 B
packages/orbit-components/lib/icons/Playground.js 680 B
packages/orbit-components/lib/icons/Plus.js 430 B
packages/orbit-components/lib/icons/PlusCircle.js 467 B
packages/orbit-components/lib/icons/PlusMinus.js 384 B
packages/orbit-components/lib/icons/Pool.js 724 B
packages/orbit-components/lib/icons/PowerPlug.js 675 B
packages/orbit-components/lib/icons/PowerPlugOff.js 806 B
packages/orbit-components/lib/icons/PriceChange.js 699 B
packages/orbit-components/lib/icons/PriorityBoarding.js 600 B
packages/orbit-components/lib/icons/PriorityBoardingLight.js 511 B
packages/orbit-components/lib/icons/Profit.js 690 B
packages/orbit-components/lib/icons/PromoCode.js 512 B
packages/orbit-components/lib/icons/QrCode.js 875 B
packages/orbit-components/lib/icons/QuestionCircle.js 512 B
packages/orbit-components/lib/icons/Radar.js 554 B
packages/orbit-components/lib/icons/RadiusSearch.js 699 B
packages/orbit-components/lib/icons/RebookingLight.js 689 B
packages/orbit-components/lib/icons/RebookingNoneLight.js 760 B
packages/orbit-components/lib/icons/Refund.js 665 B
packages/orbit-components/lib/icons/RefundLight.js 567 B
packages/orbit-components/lib/icons/RefundNoneLight.js 724 B
packages/orbit-components/lib/icons/Relax.js 702 B
packages/orbit-components/lib/icons/Reload.js 578 B
packages/orbit-components/lib/icons/Remove.js 563 B
packages/orbit-components/lib/icons/Replace.js 608 B
packages/orbit-components/lib/icons/Restaurant.js 515 B
packages/orbit-components/lib/icons/RouteNoStops.js 433 B
packages/orbit-components/lib/icons/RouteOneStop.js 451 B
packages/orbit-components/lib/icons/RouteTwoStops.js 475 B
packages/orbit-components/lib/icons/Search.js 393 B
packages/orbit-components/lib/icons/Seat.js 606 B
packages/orbit-components/lib/icons/SeatAisle.js 646 B
packages/orbit-components/lib/icons/SeatAisleLight.js 991 B
packages/orbit-components/lib/icons/SeatDefaultLight.js 836 B
packages/orbit-components/lib/icons/SeatExtraLegroom.js 659 B
packages/orbit-components/lib/icons/SeatLight.js 691 B
packages/orbit-components/lib/icons/SeatWindow.js 696 B
packages/orbit-components/lib/icons/SeatWindowLight.js 955 B
packages/orbit-components/lib/icons/Security.js 531 B
packages/orbit-components/lib/icons/SelfTransfer.js 893 B
packages/orbit-components/lib/icons/Send.js 458 B
packages/orbit-components/lib/icons/Settings.js 652 B
packages/orbit-components/lib/icons/Share.js 514 B
packages/orbit-components/lib/icons/ShareAndroid.js 512 B
packages/orbit-components/lib/icons/ShareAndroidOutline.js 613 B
packages/orbit-components/lib/icons/ShareIos.js 566 B
packages/orbit-components/lib/icons/Shopping.js 624 B
packages/orbit-components/lib/icons/ShowLess.js 487 B
packages/orbit-components/lib/icons/ShowMore.js 488 B
packages/orbit-components/lib/icons/Sightseeing.js 568 B
packages/orbit-components/lib/icons/Sign.js 569 B
packages/orbit-components/lib/icons/Smoking.js 595 B
packages/orbit-components/lib/icons/SmokingOff.js 690 B
packages/orbit-components/lib/icons/Sms.js 1 kB
packages/orbit-components/lib/icons/Sort.js 518 B
packages/orbit-components/lib/icons/Spa.js 960 B
packages/orbit-components/lib/icons/SportEquipment.js 825 B
packages/orbit-components/lib/icons/Sports.js 687 B
packages/orbit-components/lib/icons/Stackoverflow.js 764 B
packages/orbit-components/lib/icons/StarEmpty.js 595 B
packages/orbit-components/lib/icons/StarFull.js 493 B
packages/orbit-components/lib/icons/Subway.js 848 B
packages/orbit-components/lib/icons/Suitcase.js 532 B
packages/orbit-components/lib/icons/Sun.js 617 B
packages/orbit-components/lib/icons/Sunrise.js 556 B
packages/orbit-components/lib/icons/Taxi.js 883 B
packages/orbit-components/lib/icons/Terminal.js 854 B
packages/orbit-components/lib/icons/TermsAndConditions.js 884 B
packages/orbit-components/lib/icons/ThumbDown.js 608 B
packages/orbit-components/lib/icons/ThumbUp.js 621 B
packages/orbit-components/lib/icons/Ticket.js 525 B
packages/orbit-components/lib/icons/TicketOutline.js 739 B
packages/orbit-components/lib/icons/Tiktok.js 498 B
packages/orbit-components/lib/icons/Timelapse.js 448 B
packages/orbit-components/lib/icons/Timer.js 651 B
packages/orbit-components/lib/icons/Tips.js 701 B
packages/orbit-components/lib/icons/Toilets.js 755 B
packages/orbit-components/lib/icons/Train.js 777 B
packages/orbit-components/lib/icons/Transmission.js 482 B
packages/orbit-components/lib/icons/Trip.js 717 B
packages/orbit-components/lib/icons/TripUpdatesLight.js 567 B
packages/orbit-components/lib/icons/Uber.js 477 B
packages/orbit-components/lib/icons/Upload.js 512 B
packages/orbit-components/lib/icons/UserGroup.js 883 B
packages/orbit-components/lib/icons/UserSingleLight.js 438 B
packages/orbit-components/lib/icons/Visa.js 577 B
packages/orbit-components/lib/icons/Visibility.js 674 B
packages/orbit-components/lib/icons/VisibilityOff.js 846 B
packages/orbit-components/lib/icons/Walk.js 620 B
packages/orbit-components/lib/icons/Wallet.js 575 B
packages/orbit-components/lib/icons/Wheelchair.js 659 B
packages/orbit-components/lib/icons/Wifi.js 608 B
packages/orbit-components/lib/icons/WifiLight.js 476 B
packages/orbit-components/lib/icons/WifiOff.js 761 B
packages/orbit-components/lib/icons/X.js 424 B
packages/orbit-components/lib/icons/Youtube.js 465 B
packages/orbit-components/lib/Illustration/index.js 335 B
packages/orbit-components/lib/index.js 2.49 kB
packages/orbit-components/lib/Inline/consts.js 242 B
packages/orbit-components/lib/Inline/helpers.js 900 B
packages/orbit-components/lib/Inline/index.js 731 B
packages/orbit-components/lib/InputField/consts.js 383 B
packages/orbit-components/lib/InputField/index.js 2.72 kB
packages/orbit-components/lib/InputField/InputTags/index.js 671 B
packages/orbit-components/lib/InputFile/index.js 1.72 kB
packages/orbit-components/lib/InputGroup/consts.js 160 B
packages/orbit-components/lib/InputGroup/index.js 1.98 kB
packages/orbit-components/lib/InputSelect/helpers.js 400 B
packages/orbit-components/lib/InputSelect/index.js 3.56 kB
packages/orbit-components/lib/InputSelect/InputSelectOption/index.js 503 B
packages/orbit-components/lib/Itinerary/context.js 445 B
packages/orbit-components/lib/Itinerary/index.js 524 B
packages/orbit-components/lib/Itinerary/ItineraryBadgeList/index.js 561 B
packages/orbit-components/lib/Itinerary/ItineraryBadgeList/ItineraryBadgeListItem.js 594 B
packages/orbit-components/lib/Itinerary/ItinerarySegment/context.js 469 B
packages/orbit-components/lib/Itinerary/ItinerarySegment/index.js 967 B
packages/orbit-components/lib/Itinerary/ItinerarySegment/ItineraryIcon.js 909 B
packages/orbit-components/lib/Itinerary/ItinerarySegment/ItinerarySegmentBanner/index.js 626 B
packages/orbit-components/lib/Itinerary/ItinerarySegment/ItinerarySegmentDetail/index.js 1.77 kB
packages/orbit-components/lib/Itinerary/ItinerarySegment/ItinerarySegmentStop/index.js 1.2 kB
packages/orbit-components/lib/Itinerary/ItinerarySeparator/Divider.js 1.27 kB
packages/orbit-components/lib/Itinerary/ItinerarySeparator/index.js 549 B
packages/orbit-components/lib/Itinerary/ItineraryStatus/consts.js 211 B
packages/orbit-components/lib/Itinerary/ItineraryStatus/index.js 1.22 kB
packages/orbit-components/lib/Itinerary/ItineraryText/index.js 696 B
packages/orbit-components/lib/Itinerary/utils.js 321 B
packages/orbit-components/lib/Layout/consts.js 462 B
packages/orbit-components/lib/Layout/index.js 591 B
packages/orbit-components/lib/Layout/LayoutColumn/index.js 467 B
packages/orbit-components/lib/LinkList/index.js 605 B
packages/orbit-components/lib/List/consts.js 237 B
packages/orbit-components/lib/List/index.js 658 B
packages/orbit-components/lib/List/ListItem/index.js 494 B
packages/orbit-components/lib/ListChoice/index.js 1.03 kB
packages/orbit-components/lib/Loading/consts.js 236 B
packages/orbit-components/lib/Loading/index.js 1.23 kB
packages/orbit-components/lib/Modal/consts.js 245 B
packages/orbit-components/lib/Modal/helpers/useModalContextFunctions.js 220 B
packages/orbit-components/lib/Modal/index.js 4.34 kB
packages/orbit-components/lib/Modal/ModalCloseButton/index.js 357 B
packages/orbit-components/lib/Modal/ModalContext.js 457 B
packages/orbit-components/lib/Modal/ModalFooter/index.js 1.1 kB
packages/orbit-components/lib/Modal/ModalHeader/index.js 1.11 kB
packages/orbit-components/lib/Modal/ModalSection/index.js 834 B
packages/orbit-components/lib/NavigationBar/index.js 1.11 kB
packages/orbit-components/lib/NotificationBadge/index.js 393 B
packages/orbit-components/lib/OrbitProvider/index.js 870 B
packages/orbit-components/lib/OrbitProvider/QueryContext/index.js 306 B
packages/orbit-components/lib/OrbitProvider/QueryContext/Provider.js 317 B
packages/orbit-components/lib/OrbitProvider/RandomId/Provider.js 365 B
packages/orbit-components/lib/OrbitProvider/ThemeProvider/Provider.js 307 B
packages/orbit-components/lib/Pagination/components/ActiveButton.js 390 B
packages/orbit-components/lib/Pagination/components/CompactPages.js 518 B
packages/orbit-components/lib/Pagination/components/PageButtonLink.js 310 B
packages/orbit-components/lib/Pagination/components/Pages.js 412 B
packages/orbit-components/lib/Pagination/consts.js 190 B
packages/orbit-components/lib/Pagination/index.js 945 B
packages/orbit-components/lib/Popover/components/ContentWrapper.js 2.29 kB
packages/orbit-components/lib/Popover/consts.js 107 B
packages/orbit-components/lib/Portal/index.js 467 B
packages/orbit-components/lib/primitives/BadgePrimitive/index.js 648 B
packages/orbit-components/lib/primitives/ButtonPrimitive/common/consts.js 399 B
packages/orbit-components/lib/primitives/ButtonPrimitive/common/createRel.js 262 B
packages/orbit-components/lib/primitives/ButtonPrimitive/common/getCommonProps.js 504 B
packages/orbit-components/lib/primitives/ButtonPrimitive/common/getIconContainer.js 504 B
packages/orbit-components/lib/primitives/ButtonPrimitive/common/getPadding.js 483 B
packages/orbit-components/lib/primitives/ButtonPrimitive/common/getSizeToken.js 373 B
packages/orbit-components/lib/primitives/ButtonPrimitive/index.js 2.25 kB
packages/orbit-components/lib/primitives/ButtonPrimitive/sizes.js 317 B
packages/orbit-components/lib/primitives/IllustrationPrimitive/IllustrationPrimitiveList.js 491 B
packages/orbit-components/lib/primitives/IllustrationPrimitive/index.js 970 B
packages/orbit-components/lib/primitives/MobileDialogPrimitive/components/DialogContent.js 1.12 kB
packages/orbit-components/lib/primitives/MobileDialogPrimitive/index.js 851 B
packages/orbit-components/lib/primitives/TooltipPrimitive/components/TooltipContent.js 1.72 kB
packages/orbit-components/lib/primitives/TooltipPrimitive/components/TooltipWrapper.js 502 B
packages/orbit-components/lib/primitives/TooltipPrimitive/index.js 1.11 kB
packages/orbit-components/lib/Radio/index.js 1.16 kB
packages/orbit-components/lib/Seat/components/primitives/Edge.js 378 B
packages/orbit-components/lib/Seat/components/primitives/SymbolUnavailable.js 269 B
packages/orbit-components/lib/Seat/components/primitives/Text.js 463 B
packages/orbit-components/lib/Seat/components/primitives/TransitionPathFill.js 540 B
packages/orbit-components/lib/Seat/components/primitives/TransitionPathStroke.js 521 B
packages/orbit-components/lib/Seat/components/SeatCircle.js 4.47 kB
packages/orbit-components/lib/Seat/components/SeatLegend/index.js 661 B
packages/orbit-components/lib/Seat/components/SeatNormal.js 936 B
packages/orbit-components/lib/Seat/components/SeatSmall.js 937 B
packages/orbit-components/lib/Seat/consts.js 257 B
packages/orbit-components/lib/Seat/index.js 1.01 kB
packages/orbit-components/lib/SegmentedSwitch/index.js 943 B
packages/orbit-components/lib/SegmentedSwitch/SwitchSegment/index.js 898 B
packages/orbit-components/lib/Select/index.js 2.06 kB
packages/orbit-components/lib/Separator/index.js 999 B
packages/orbit-components/lib/ServiceLogo/consts.js 809 B
packages/orbit-components/lib/ServiceLogo/index.js 647 B
packages/orbit-components/lib/Skeleton/index.js 310 B
packages/orbit-components/lib/Skeleton/presets/Button.js 364 B
packages/orbit-components/lib/Skeleton/presets/Card.js 346 B
packages/orbit-components/lib/Skeleton/presets/Image.js 366 B
packages/orbit-components/lib/Skeleton/presets/index.js 210 B
packages/orbit-components/lib/Skeleton/presets/List.js 385 B
packages/orbit-components/lib/Skeleton/presets/Text.js 377 B
packages/orbit-components/lib/Skeleton/Svg.js 1.12 kB
packages/orbit-components/lib/SkipLink/index.js 614 B
packages/orbit-components/lib/SkipNavigation/index.js 1.13 kB
packages/orbit-components/lib/Slider/components/Bar/index.js 786 B
packages/orbit-components/lib/Slider/components/Handle/index.js 1.09 kB
packages/orbit-components/lib/Slider/components/Histogram/index.js 774 B
packages/orbit-components/lib/Slider/consts.js 207 B
packages/orbit-components/lib/Slider/index.js 2.67 kB
packages/orbit-components/lib/Slider/utils/calculateCountOf.js 294 B
packages/orbit-components/lib/Slider/utils/index.js 1.38 kB
packages/orbit-components/lib/SmartPassIllustrations/illustrations/IllustrationWrapper.js 597 B
packages/orbit-components/lib/SmartPassIllustrations/illustrations/SmartPassV1.js 4.62 kB
packages/orbit-components/lib/SmartPassIllustrations/illustrations/SmartPassV2.js 4.51 kB
packages/orbit-components/lib/SmartPassIllustrations/illustrations/SmartPassV3.js 3.37 kB
packages/orbit-components/lib/SmartPassIllustrations/illustrations/SmartPassV4.js 2.64 kB
packages/orbit-components/lib/SmartPassIllustrations/illustrations/SmartPassV5.js 2.96 kB
packages/orbit-components/lib/SmartPassIllustrations/index.js 238 B
packages/orbit-components/lib/SocialButton/consts.js 330 B
packages/orbit-components/lib/SocialButton/helpers/getSocialButtonBoxShadow.js 558 B
packages/orbit-components/lib/SocialButton/helpers/getSocialButtonIcon.js 395 B
packages/orbit-components/lib/SocialButton/helpers/getSocialButtonIconForeground.js 268 B
packages/orbit-components/lib/SocialButton/helpers/getSocialButtonStyles.js 501 B
packages/orbit-components/lib/SocialButton/helpers/getSocialButtonTypeToken.js 557 B
packages/orbit-components/lib/SocialButton/index.js 717 B
packages/orbit-components/lib/Stack/index.js 1.55 kB
packages/orbit-components/lib/Stepper/index.js 717 B
packages/orbit-components/lib/Stepper/StepperStateless/index.js 1.28 kB
packages/orbit-components/lib/StopoverArrow/consts.js 186 B
packages/orbit-components/lib/StopoverArrow/index.js 1.22 kB
packages/orbit-components/lib/Switch/index.js 924 B
packages/orbit-components/lib/Table/consts.js 214 B
packages/orbit-components/lib/Table/index.js 1.24 kB
packages/orbit-components/lib/Table/TableBody/index.js 294 B
packages/orbit-components/lib/Table/TableCell/consts.js 396 B
packages/orbit-components/lib/Table/TableCell/index.js 627 B
packages/orbit-components/lib/Table/TableFooter/index.js 295 B
packages/orbit-components/lib/Table/TableHead/index.js 299 B
packages/orbit-components/lib/Table/TableRow/index.js 283 B
packages/orbit-components/lib/Tabs/components/Tab/consts.js 199 B
packages/orbit-components/lib/Tabs/components/Tab/index.js 1.11 kB
packages/orbit-components/lib/Tabs/components/TabList/index.js 835 B
packages/orbit-components/lib/Tabs/components/TabPanel/index.js 667 B
packages/orbit-components/lib/Tabs/components/TabPanels/index.js 415 B
packages/orbit-components/lib/Tabs/index.js 425 B
packages/orbit-components/lib/Tabs/TabContext.js 539 B
packages/orbit-components/lib/Tag/consts.js 217 B
packages/orbit-components/lib/Tag/index.js 1.23 kB
packages/orbit-components/lib/Text/consts.js 505 B
packages/orbit-components/lib/Text/helpers/twClasses.js 666 B
packages/orbit-components/lib/Text/index.js 677 B
packages/orbit-components/lib/Textarea/consts.js 178 B
packages/orbit-components/lib/Textarea/index.js 1.42 kB
packages/orbit-components/lib/TextLink/consts.js 319 B
packages/orbit-components/lib/TextLink/helpers/twClasses.js 679 B
packages/orbit-components/lib/TextLink/index.js 1.23 kB
packages/orbit-components/lib/Tile/components/TileContent/index.js 432 B
packages/orbit-components/lib/Tile/components/TileExpandable/index.js 870 B
packages/orbit-components/lib/Tile/components/TileHeader/index.js 1.02 kB
packages/orbit-components/lib/Tile/components/TileWrapper/index.js 700 B
packages/orbit-components/lib/Tile/index.js 725 B
packages/orbit-components/lib/TileGroup/index.js 504 B
packages/orbit-components/lib/Timeline/index.js 762 B
packages/orbit-components/lib/Timeline/TimelineContext.js 522 B
packages/orbit-components/lib/Timeline/TimelineStep/components/ProgressLine.js 722 B
packages/orbit-components/lib/Timeline/TimelineStep/components/TextWrapper.js 333 B
packages/orbit-components/lib/Timeline/TimelineStep/components/TimelineStepDesktop.js 813 B
packages/orbit-components/lib/Timeline/TimelineStep/components/TimelineStepMobile.js 621 B
packages/orbit-components/lib/Timeline/TimelineStep/components/TypeIcon.js 872 B
packages/orbit-components/lib/Timeline/TimelineStep/consts.js 171 B
packages/orbit-components/lib/Timeline/TimelineStep/index.js 688 B
packages/orbit-components/lib/Toast/consts.js 241 B
packages/orbit-components/lib/Toast/hooks/useSwipe.js 787 B
packages/orbit-components/lib/Toast/index.js 269 B
packages/orbit-components/lib/Toast/ToastMessage.js 1.25 kB
packages/orbit-components/lib/Toast/ToastRoot.js 766 B
packages/orbit-components/lib/Tooltip/consts.js 175 B
packages/orbit-components/lib/Tooltip/index.js 617 B
packages/orbit-components/lib/Truncate/index.js 422 B
packages/orbit-components/lib/utils/boundingClientRect/index.js 366 B
packages/orbit-components/lib/utils/cloneWithTooltip/index.js 206 B
packages/orbit-components/lib/utils/debounce/index.js 186 B
packages/orbit-components/lib/utils/Grid/index.js 1.51 kB
packages/orbit-components/lib/utils/handleKeyDown/index.js 290 B
packages/orbit-components/lib/utils/layout/consts.js 479 B
packages/orbit-components/lib/utils/layout/index.js 630 B
packages/orbit-components/lib/utils/mediaQuery/index.js 363 B
packages/orbit-components/lib/utils/mergeRefs/index.js 259 B
packages/orbit-components/lib/utils/randomID/index.js 194 B
packages/orbit-components/lib/utils/rtl/index.js 237 B
packages/orbit-components/lib/utils/scroll/index.js 244 B
packages/orbit-components/lib/utils/Slide/index.js 1.21 kB
packages/orbit-components/lib/utils/transition/index.js 336 B
packages/orbit-components/lib/utils/validateDecrement/index.js 221 B
packages/orbit-components/lib/utils/validateIncrement/index.js 220 B
packages/orbit-components/lib/Wizard/index.js 1.22 kB
packages/orbit-components/lib/Wizard/WizardContext.js 448 B
packages/orbit-components/lib/Wizard/WizardStep.js 1.46 kB
packages/orbit-components/lib/Wizard/WizardStepIcon.js 713 B

compressed-size-action

@sarkaaa sarkaaa force-pushed the sarka/popover-esc-close branch from 7e5c738 to fcb64e7 Compare January 9, 2025 16:06
Copy link

cloudflare-workers-and-pages bot commented Jan 9, 2025

Deploying orbit with  Cloudflare Pages  Cloudflare Pages

Latest commit: a386339
Status: ✅  Deploy successful!
Preview URL: https://8bf26751.orbit.pages.dev
Branch Preview URL: https://sarka-popover-esc-close.orbit.pages.dev

View logs

Copy link

@callstackai callstackai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Key Issues

The else block in handleOut incorrectly closes the popover when interacting with its internal content, disrupting expected behavior by not distinguishing between clicks inside and outside the popover.

Comment on lines 69 to 82
} else {
setShown(false);
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐛 Possible Bug
The new else block in handleOut will close the popover when clicking inside it, which breaks the expected behavior. The popover should only close when clicking outside (!ref.current.contains(ev.target)) or when explicitly triggered. The current implementation will make the popover close when interacting with any content inside it, including buttons or form elements.

Suggested change
} else {
setShown(false);
}
} else if (typeof opened === "undefined" && onClose) {
onClose();
}

@sarkaaa sarkaaa force-pushed the sarka/popover-esc-close branch 3 times, most recently from a565143 to 002b225 Compare January 10, 2025 09:45
@sarkaaa sarkaaa changed the title draft: fix(Popover): popover content now closes on ESC key press fix(Popover): popover content now closes on ESC key press Jan 10, 2025
@@ -66,6 +66,9 @@ const Popover = ({
setRenderWithTimeout(false);
resolveCallback(false);
} else if (onClose) onClose();
} else {
setShown(false);
resolveCallback(false);
Copy link
Contributor

@domihustinova domihustinova Jan 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was checking Storybook and there are several issues now:

  1. On Popover open, both onOpen & onClose events are fired (on mouse click, for keyboard only on second focus)
  2. When I close the Popover with ESC, onClose event is firing on every ESC click even if the Popover has been closed
  3. When I used opened prop and provided my own onOpen & onClose functions, using keyboard I was able to close the Popover with ESC but I couldn't open it afterwards on the second focus. Both onOpen & onClose events been firing though. When I go back once more (shift + tab) to the first focus, I could open it normally. It worked with mouse click but then the onClose event was firing twice. Some issues are present on production already, but adding ESC functionality is adding more mess 😅

I am not sure if fixing also the current issues (double focus) is in the scope of this MR but maybe we should expand the scope if all the issues are connected 🤔

@sarkaaa sarkaaa force-pushed the sarka/popover-esc-close branch from 002b225 to 8c88931 Compare January 21, 2025 16:22
Copy link

@callstackai callstackai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Key Issues

The event listener is not removed when the popover is closed through means other than pressing the Escape key, potentially causing memory leaks due to multiple event listeners being added.

Comment on lines 58 to 69
const handleEsc = React.useCallback(
(ev: { key: string }) => {
if (ev.key === "Escape") {
setShown(false);
setRenderWithTimeout(false);
document.removeEventListener("keydown", handleEsc);
}
},
[setShown, setRenderWithTimeout],
);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐛 Possible Bug
The event listener is only removed when the Escape key is pressed, but not when the popover is closed through other means (clicking outside or programmatically). This can lead to multiple event listeners being added and memory leaks.

Suggested change
const handleEsc = React.useCallback(
(ev: { key: string }) => {
if (ev.key === "Escape") {
setShown(false);
setRenderWithTimeout(false);
document.removeEventListener("keydown", handleEsc);
}
},
[setShown, setRenderWithTimeout],
);
const handleEsc = React.useCallback(
(ev: { key: string }) => {
if (ev.key === "Escape") {
setShown(false);
setRenderWithTimeout(false);
}
},
[setShown, setRenderWithTimeout],
);

@sarkaaa sarkaaa force-pushed the sarka/popover-esc-close branch from 8c88931 to 5349315 Compare January 21, 2025 16:43
Copy link

@callstackai callstackai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Key Issues

The handleEsc callback is missing resolveCallback in its dependency array, which can cause it to use outdated data when the escape key is pressed.

Comment on lines 58 to 69
const handleEsc = React.useCallback(
(ev: { key: string }) => {
if (ev.key === "Escape") {
setShown(false);
resolveCallback(false);
setRenderWithTimeout(false);
document.removeEventListener("keydown", handleEsc);
}
},
[setShown, setRenderWithTimeout],
);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐛 Possible Bug
The handleEsc callback is missing resolveCallback in its dependency array. This can lead to stale closures where the callback uses an outdated version of resolveCallback when the escape key is pressed.

Suggested change
const handleEsc = React.useCallback(
(ev: { key: string }) => {
if (ev.key === "Escape") {
setShown(false);
resolveCallback(false);
setRenderWithTimeout(false);
document.removeEventListener("keydown", handleEsc);
}
},
[setShown, setRenderWithTimeout],
);
const handleEsc = React.useCallback(
(ev: { key: string }) => {
if (ev.key === "Escape") {
setShown(false);
resolveCallback(false);
setRenderWithTimeout(false);
document.removeEventListener("keydown", handleEsc);
}
},
[setShown, setRenderWithTimeout, resolveCallback],
);

@sarkaaa sarkaaa force-pushed the sarka/popover-esc-close branch from 5349315 to 3efb26a Compare January 21, 2025 20:43
Copy link

@callstackai callstackai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Key Issues

The 'keydown' event listener is not properly removed when the popover is closed through means other than pressing the Escape key, potentially causing memory leaks and multiple event listeners to accumulate.

Comment on lines +58 to +69
const handleEsc = React.useCallback(
(ev: { key: string }) => {
if (ev.key === "Escape") {
setShown(false);
clearShownTimeout();
resolveCallback(false);
setRenderWithTimeout(false);
document.removeEventListener("keydown", handleEsc);
}
},
[setShown, clearShownTimeout, resolveCallback, setRenderWithTimeout],
);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐛 Possible Bug
The 'keydown' event listener is only removed when the Escape key is pressed, but not when the popover is closed through other means (like clicking outside or programmatically). This can lead to memory leaks and multiple event listeners being attached if the popover is opened/closed repeatedly.

Suggested change
const handleEsc = React.useCallback(
(ev: { key: string }) => {
if (ev.key === "Escape") {
setShown(false);
clearShownTimeout();
resolveCallback(false);
setRenderWithTimeout(false);
document.removeEventListener("keydown", handleEsc);
}
},
[setShown, clearShownTimeout, resolveCallback, setRenderWithTimeout],
);
const handleEsc = React.useCallback(
(ev: { key: string }) => {
if (ev.key === "Escape") {
setShown(false);
clearShownTimeout();
resolveCallback(false);
setRenderWithTimeout(false);
}
},
[setShown, clearShownTimeout, resolveCallback, setRenderWithTimeout],
);

@sarkaaa sarkaaa force-pushed the sarka/popover-esc-close branch from 3efb26a to a37e4d7 Compare January 22, 2025 11:29
ev.stopPropagation();
setIsOpenedPopover(true);
title="Card title"
actions={
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved component to an actions prop. After CardSection changes, the children part of CardSection component is not clickable, so we couldn't demonstrate opening modal on wrapper click.

@sarkaaa sarkaaa force-pushed the sarka/popover-esc-close branch from a37e4d7 to a386339 Compare January 22, 2025 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants