@rio-cloud/uikit-mcp 1.0.0 → 1.1.0
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.
- package/README.md +75 -40
- package/dist/doc-metadata.json +1872 -0
- package/dist/docs/components/accentBar.md +582 -0
- package/dist/docs/components/activity.md +330 -0
- package/dist/docs/components/animatedNumber.md +88 -0
- package/dist/docs/components/animatedTextReveal.md +381 -0
- package/dist/docs/components/animations.md +459 -0
- package/dist/docs/components/appHeader.md +737 -0
- package/dist/docs/components/appLayout.md +2016 -0
- package/dist/docs/components/appNavigationBar.md +274 -0
- package/dist/docs/components/areaCharts.md +828 -0
- package/dist/docs/components/aspectRatioPlaceholder.md +106 -0
- package/dist/docs/components/assetTree.md +3223 -0
- package/dist/docs/components/autosuggests.md +1177 -0
- package/dist/docs/components/avatar.md +206 -0
- package/dist/docs/components/banner.md +668 -0
- package/dist/docs/components/barCharts.md +2785 -0
- package/dist/docs/components/barList.md +517 -0
- package/dist/docs/components/basicMap.md +167 -0
- package/dist/docs/components/bottomSheet.md +721 -0
- package/dist/docs/components/button.md +775 -0
- package/dist/docs/components/buttonToolbar.md +134 -0
- package/dist/docs/components/calendarStripe.md +525 -0
- package/dist/docs/components/card.md +86 -0
- package/dist/docs/components/carousel.md +128 -0
- package/dist/docs/components/chartColors.md +716 -0
- package/dist/docs/components/chartsGettingStarted.md +28 -0
- package/dist/docs/components/chat.md +932 -0
- package/dist/docs/components/checkbox.md +996 -0
- package/dist/docs/components/clearableInput.md +806 -0
- package/dist/docs/components/collapse.md +189 -0
- package/dist/docs/components/composedCharts.md +424 -0
- package/dist/docs/components/contentLoader.md +674 -0
- package/dist/docs/components/dataTabs.md +1251 -0
- package/dist/docs/components/datepickers.md +2543 -0
- package/dist/docs/components/dialogs.md +2244 -0
- package/dist/docs/components/divider.md +219 -0
- package/dist/docs/components/dropdowns.md +17550 -0
- package/dist/docs/components/editableContent.md +1127 -0
- package/dist/docs/components/expander.md +970 -0
- package/dist/docs/components/fade.md +836 -0
- package/dist/docs/components/fadeExpander.md +180 -0
- package/dist/docs/components/fadeUp.md +396 -0
- package/dist/docs/components/feedback.md +758 -0
- package/dist/docs/components/filePickers.md +370 -0
- package/dist/docs/components/formLabel.md +251 -0
- package/dist/docs/components/fullscreenMap.md +10 -0
- package/dist/docs/components/groupedItemList.md +1001 -0
- package/dist/docs/components/iconList.md +306 -0
- package/dist/docs/components/imagePreloader.md +167 -0
- package/dist/docs/components/labeledElement.md +115 -0
- package/dist/docs/components/licensePlate.md +412 -0
- package/dist/docs/components/lineCharts.md +2014 -0
- package/dist/docs/components/listMenu.md +392 -0
- package/dist/docs/components/loadMore.md +219 -0
- package/dist/docs/components/mainNavigation.md +129 -0
- package/dist/docs/components/mapCircle.md +93 -0
- package/dist/docs/components/mapCluster.md +337 -0
- package/dist/docs/components/mapContext.md +284 -0
- package/dist/docs/components/mapDraggableMarker.md +150 -0
- package/dist/docs/components/mapGettingStarted.md +39 -0
- package/dist/docs/components/mapInfoBubble.md +135 -0
- package/dist/docs/components/mapLayerGroup.md +94 -0
- package/dist/docs/components/mapMarker.md +1814 -0
- package/dist/docs/components/mapPolygon.md +959 -0
- package/dist/docs/components/mapRoute.md +3816 -0
- package/dist/docs/components/mapRouteGenerator.md +6 -0
- package/dist/docs/components/mapSettings.md +1040 -0
- package/dist/docs/components/mapUtils.md +132 -0
- package/dist/docs/components/multiselects.md +1921 -0
- package/dist/docs/components/noData.md +210 -0
- package/dist/docs/components/notifications.md +314 -0
- package/dist/docs/components/numbercontrol.md +706 -0
- package/dist/docs/components/onboarding.md +297 -0
- package/dist/docs/components/page.md +241 -0
- package/dist/docs/components/pager.md +133 -0
- package/dist/docs/components/pieCharts.md +1284 -0
- package/dist/docs/components/popover.md +222 -0
- package/dist/docs/components/position.md +50 -0
- package/dist/docs/components/radialBarCharts.md +3663 -0
- package/dist/docs/components/radiobutton.md +1271 -0
- package/dist/docs/components/releaseNotes.md +135 -0
- package/dist/docs/components/resizer.md +162 -0
- package/dist/docs/components/responsiveColumnStripe.md +435 -0
- package/dist/docs/components/responsiveVideo.md +71 -0
- package/dist/docs/components/rioglyph.md +331 -0
- package/dist/docs/components/rules.md +965 -0
- package/dist/docs/components/saveableInput.md +1721 -0
- package/dist/docs/components/selects.md +1993 -0
- package/dist/docs/components/sidebar.md +332 -0
- package/dist/docs/components/sliders.md +376 -0
- package/dist/docs/components/smoothScrollbars.md +1180 -0
- package/dist/docs/components/spinners.md +506 -0
- package/dist/docs/components/states.md +1176 -0
- package/dist/docs/components/statsWidgets.md +636 -0
- package/dist/docs/components/statusBar.md +644 -0
- package/dist/docs/components/stepButton.md +61 -0
- package/dist/docs/components/steppedProgressBars.md +1064 -0
- package/dist/docs/components/subNavigation.md +470 -0
- package/dist/docs/components/supportMarker.md +115 -0
- package/dist/docs/components/svgImage.md +248 -0
- package/dist/docs/components/switch.md +554 -0
- package/dist/docs/components/tables.md +8 -0
- package/dist/docs/components/tagManager.md +476 -0
- package/dist/docs/components/tags.md +785 -0
- package/dist/docs/components/teaser.md +925 -0
- package/dist/docs/components/timeline.md +514 -0
- package/dist/docs/components/timepicker.md +262 -0
- package/dist/docs/components/toggleButton.md +178 -0
- package/dist/docs/components/tooltip.md +454 -0
- package/dist/docs/components/virtualList.md +483 -0
- package/dist/docs/foundations.md +20901 -0
- package/dist/docs/start/changelog.md +439 -0
- package/dist/docs/start/goodtoknow.md +14 -0
- package/dist/docs/start/guidelines/color-combinations.md +678 -0
- package/dist/docs/start/guidelines/custom-css.md +42 -0
- package/dist/docs/start/guidelines/custom-rioglyph.md +35 -0
- package/dist/docs/start/guidelines/formatting.md +587 -0
- package/dist/docs/start/guidelines/iframe.md +323 -0
- package/dist/docs/start/guidelines/obfuscate-data.md +30 -0
- package/dist/docs/start/guidelines/print-css.md +36 -0
- package/dist/docs/start/guidelines/spinner.md +710 -0
- package/dist/docs/start/guidelines/supported-browsers.md +10 -0
- package/dist/docs/start/guidelines/writing.md +635 -0
- package/dist/docs/start/howto.md +187 -0
- package/dist/docs/start/intro.md +43 -0
- package/dist/docs/start/responsiveness.md +98 -0
- package/dist/docs/templates/common-table.md +1111 -0
- package/dist/docs/templates/detail-views.md +942 -0
- package/dist/docs/templates/expandable-details.md +228 -0
- package/dist/docs/templates/feature-cards.md +549 -0
- package/dist/docs/templates/form-summary.md +199 -0
- package/dist/docs/templates/form-toggle.md +367 -0
- package/dist/docs/templates/list-blocks.md +1021 -0
- package/dist/docs/templates/loading-progress.md +109 -0
- package/dist/docs/templates/options-panel.md +152 -0
- package/dist/docs/templates/panel-variants.md +164 -0
- package/dist/docs/templates/progress-cards.md +607 -0
- package/dist/docs/templates/progress-success.md +142 -0
- package/dist/docs/templates/settings-form.md +434 -0
- package/dist/docs/templates/stats-blocks.md +1381 -0
- package/dist/docs/templates/table-panel.md +184 -0
- package/dist/docs/templates/table-row-animation.md +317 -0
- package/dist/docs/templates/usage-cards.md +227 -0
- package/dist/docs/utilities/deviceUtils.md +123 -0
- package/dist/docs/utilities/featureToggles.md +90 -0
- package/dist/docs/utilities/fuelTypeUtils.md +186 -0
- package/dist/docs/utilities/routeUtils.md +138 -0
- package/dist/docs/utilities/useAfterMount.md +66 -0
- package/dist/docs/utilities/useAutoAnimate.md +193 -0
- package/dist/docs/utilities/useAverage.md +95 -0
- package/dist/docs/utilities/useClickOutside.md +61 -0
- package/dist/docs/utilities/useClipboard.md +93 -0
- package/dist/docs/utilities/useCount.md +178 -0
- package/dist/docs/utilities/useDarkMode.md +49 -0
- package/dist/docs/utilities/useDebugInfo.md +126 -0
- package/dist/docs/utilities/useEffectOnce.md +58 -0
- package/dist/docs/utilities/useElapsedTime.md +58 -0
- package/dist/docs/utilities/useElementSize.md +71 -0
- package/dist/docs/utilities/useEsc.md +58 -0
- package/dist/docs/utilities/useEvent.md +64 -0
- package/dist/docs/utilities/useFocusTrap.md +85 -0
- package/dist/docs/utilities/useFullscreen.md +198 -0
- package/dist/docs/utilities/useHover.md +55 -0
- package/dist/docs/utilities/useIncomingPostMessages.md +237 -0
- package/dist/docs/utilities/useInterval.md +85 -0
- package/dist/docs/utilities/useIsFocusWithin.md +114 -0
- package/dist/docs/utilities/useKey.md +151 -0
- package/dist/docs/utilities/useLocalStorage.md +91 -0
- package/dist/docs/utilities/useLocationSuggestions.md +114 -0
- package/dist/docs/utilities/useMax.md +62 -0
- package/dist/docs/utilities/useMin.md +78 -0
- package/dist/docs/utilities/useMutationObserver.md +113 -0
- package/dist/docs/utilities/useOnScreen.md +138 -0
- package/dist/docs/utilities/useOnlineStatus.md +49 -0
- package/dist/docs/utilities/usePostMessage.md +117 -0
- package/dist/docs/utilities/usePostMessageSender.md +257 -0
- package/dist/docs/utilities/usePrevious.md +101 -0
- package/dist/docs/utilities/useResizeObserver.md +151 -0
- package/dist/docs/utilities/useScrollPosition.md +252 -0
- package/dist/docs/utilities/useSearch.md +228 -0
- package/dist/docs/utilities/useSorting.md +389 -0
- package/dist/docs/utilities/useStateWithValidation.md +83 -0
- package/dist/docs/utilities/useSum.md +155 -0
- package/dist/docs/utilities/useTableExport.md +404 -0
- package/dist/docs/utilities/useTableSelection.md +1120 -0
- package/dist/docs/utilities/useTimeout.md +55 -0
- package/dist/docs/utilities/useToggle.md +115 -0
- package/dist/docs/utilities/useWindowResize.md +70 -0
- package/dist/index.mjs +271 -0
- package/dist/search-synonyms.json +134 -0
- package/dist/version.json +4 -0
- package/package.json +23 -19
- package/bin/uikit-mcp.mjs +0 -23
- package/data/pages/Components/components/accentbar.json +0 -207
- package/data/pages/Components/components/activity.json +0 -87
- package/data/pages/Components/components/animatednumber.json +0 -99
- package/data/pages/Components/components/animations.json +0 -87
- package/data/pages/Components/components/appheader.json +0 -291
- package/data/pages/Components/components/applayout.json +0 -1198
- package/data/pages/Components/components/appnavigationbar.json +0 -327
- package/data/pages/Components/components/areacharts.json +0 -563
- package/data/pages/Components/components/aspectratioplaceholder.json +0 -75
- package/data/pages/Components/components/assettree.json +0 -3080
- package/data/pages/Components/components/autosuggests.json +0 -710
- package/data/pages/Components/components/avatar.json +0 -157
- package/data/pages/Components/components/banner.json +0 -599
- package/data/pages/Components/components/barcharts.json +0 -1507
- package/data/pages/Components/components/barlist.json +0 -223
- package/data/pages/Components/components/basicmap.json +0 -68
- package/data/pages/Components/components/bottomsheet.json +0 -601
- package/data/pages/Components/components/button.json +0 -583
- package/data/pages/Components/components/buttontoolbar.json +0 -63
- package/data/pages/Components/components/calendarstripe.json +0 -235
- package/data/pages/Components/components/card.json +0 -69
- package/data/pages/Components/components/carousel.json +0 -39
- package/data/pages/Components/components/chartcolors.json +0 -34
- package/data/pages/Components/components/chartsgettingstarted.json +0 -32
- package/data/pages/Components/components/chat.json +0 -39
- package/data/pages/Components/components/checkbox.json +0 -847
- package/data/pages/Components/components/clearableinput.json +0 -789
- package/data/pages/Components/components/collapse.json +0 -175
- package/data/pages/Components/components/composedcharts.json +0 -159
- package/data/pages/Components/components/contentloader.json +0 -233
- package/data/pages/Components/components/datatabs.json +0 -680
- package/data/pages/Components/components/datepickers.json +0 -287
- package/data/pages/Components/components/dialogs.json +0 -1492
- package/data/pages/Components/components/divider.json +0 -93
- package/data/pages/Components/components/dropdowns.json +0 -936
- package/data/pages/Components/components/editablecontent.json +0 -1117
- package/data/pages/Components/components/expander.json +0 -377
- package/data/pages/Components/components/fade.json +0 -403
- package/data/pages/Components/components/fadeexpander.json +0 -75
- package/data/pages/Components/components/fadeup.json +0 -127
- package/data/pages/Components/components/feedback.json +0 -269
- package/data/pages/Components/components/filepickers.json +0 -269
- package/data/pages/Components/components/formlabel.json +0 -115
- package/data/pages/Components/components/fullscreenmap.json +0 -22
- package/data/pages/Components/components/groupeditemlist.json +0 -323
- package/data/pages/Components/components/iconlist.json +0 -45
- package/data/pages/Components/components/imagepreloader.json +0 -81
- package/data/pages/Components/components/labeledelement.json +0 -75
- package/data/pages/Components/components/licenseplate.json +0 -69
- package/data/pages/Components/components/linecharts.json +0 -987
- package/data/pages/Components/components/listmenu.json +0 -313
- package/data/pages/Components/components/loadmore.json +0 -175
- package/data/pages/Components/components/mainnavigation.json +0 -39
- package/data/pages/Components/components/mapcircle.json +0 -34
- package/data/pages/Components/components/mapcluster.json +0 -51
- package/data/pages/Components/components/mapcontext.json +0 -105
- package/data/pages/Components/components/mapdraggablemarker.json +0 -34
- package/data/pages/Components/components/mapgettingstarted.json +0 -27
- package/data/pages/Components/components/mapgroup.json +0 -1198
- package/data/pages/Components/components/mapinfobubble.json +0 -34
- package/data/pages/Components/components/maplayergroup.json +0 -34
- package/data/pages/Components/components/mapmarker.json +0 -700
- package/data/pages/Components/components/mappolygon.json +0 -45
- package/data/pages/Components/components/maproute.json +0 -623
- package/data/pages/Components/components/maproutegenerator.json +0 -16
- package/data/pages/Components/components/mapsettings.json +0 -51
- package/data/pages/Components/components/maputils.json +0 -34
- package/data/pages/Components/components/multiselects.json +0 -1451
- package/data/pages/Components/components/nodata.json +0 -139
- package/data/pages/Components/components/notifications.json +0 -65
- package/data/pages/Components/components/numbercontrol.json +0 -301
- package/data/pages/Components/components/onboarding.json +0 -302
- package/data/pages/Components/components/page.json +0 -197
- package/data/pages/Components/components/pager.json +0 -93
- package/data/pages/Components/components/piecharts.json +0 -731
- package/data/pages/Components/components/popover.json +0 -251
- package/data/pages/Components/components/position.json +0 -69
- package/data/pages/Components/components/radialbarcharts.json +0 -1304
- package/data/pages/Components/components/radiobutton.json +0 -1105
- package/data/pages/Components/components/releasenotes.json +0 -44
- package/data/pages/Components/components/resizer.json +0 -93
- package/data/pages/Components/components/responsivecolumnstripe.json +0 -123
- package/data/pages/Components/components/responsivevideo.json +0 -75
- package/data/pages/Components/components/rioglyph.json +0 -93
- package/data/pages/Components/components/rules.json +0 -410
- package/data/pages/Components/components/saveableinput.json +0 -703
- package/data/pages/Components/components/selects.json +0 -701
- package/data/pages/Components/components/sidebar.json +0 -243
- package/data/pages/Components/components/sliders.json +0 -235
- package/data/pages/Components/components/smoothscrollbars.json +0 -335
- package/data/pages/Components/components/spinners.json +0 -343
- package/data/pages/Components/components/states.json +0 -1705
- package/data/pages/Components/components/statswidgets.json +0 -314
- package/data/pages/Components/components/statusbar.json +0 -177
- package/data/pages/Components/components/stepbutton.json +0 -57
- package/data/pages/Components/components/steppedprogressbars.json +0 -417
- package/data/pages/Components/components/subnavigation.json +0 -107
- package/data/pages/Components/components/supportmarker.json +0 -45
- package/data/pages/Components/components/svgimage.json +0 -81
- package/data/pages/Components/components/switch.json +0 -111
- package/data/pages/Components/components/tables.json +0 -144
- package/data/pages/Components/components/tagmanager.json +0 -86
- package/data/pages/Components/components/tags.json +0 -146
- package/data/pages/Components/components/teaser.json +0 -188
- package/data/pages/Components/components/timeline.json +0 -45
- package/data/pages/Components/components/timepicker.json +0 -163
- package/data/pages/Components/components/togglebutton.json +0 -247
- package/data/pages/Components/components/tooltip.json +0 -270
- package/data/pages/Components/components/virtuallist.json +0 -175
- package/data/pages/Foundations/foundations.json +0 -2475
- package/data/pages/Getting-started/start/changelog.json +0 -22
- package/data/pages/Getting-started/start/goodtoknow.json +0 -32
- package/data/pages/Getting-started/start/guidelines/color-combinations.json +0 -58
- package/data/pages/Getting-started/start/guidelines/custom-css.json +0 -27
- package/data/pages/Getting-started/start/guidelines/custom-rioglyph.json +0 -22
- package/data/pages/Getting-started/start/guidelines/formatting.json +0 -97
- package/data/pages/Getting-started/start/guidelines/iframe.json +0 -93
- package/data/pages/Getting-started/start/guidelines/obfuscate-data.json +0 -22
- package/data/pages/Getting-started/start/guidelines/print-css.json +0 -37
- package/data/pages/Getting-started/start/guidelines/spinner.json +0 -144
- package/data/pages/Getting-started/start/guidelines/supported-browsers.json +0 -22
- package/data/pages/Getting-started/start/guidelines/writing.json +0 -242
- package/data/pages/Getting-started/start/howto.json +0 -72
- package/data/pages/Getting-started/start/intro.json +0 -37
- package/data/pages/Getting-started/start/responsiveness.json +0 -52
- package/data/pages/Templates/templates/common-table.json +0 -39
- package/data/pages/Templates/templates/detail-views.json +0 -71
- package/data/pages/Templates/templates/expandable-details.json +0 -39
- package/data/pages/Templates/templates/feature-cards.json +0 -103
- package/data/pages/Templates/templates/form-summary.json +0 -39
- package/data/pages/Templates/templates/form-toggle.json +0 -39
- package/data/pages/Templates/templates/list-blocks.json +0 -119
- package/data/pages/Templates/templates/loading-progress.json +0 -39
- package/data/pages/Templates/templates/options-panel.json +0 -39
- package/data/pages/Templates/templates/panel-variants.json +0 -39
- package/data/pages/Templates/templates/progress-cards.json +0 -71
- package/data/pages/Templates/templates/progress-success.json +0 -39
- package/data/pages/Templates/templates/settings-form.json +0 -39
- package/data/pages/Templates/templates/stats-blocks.json +0 -135
- package/data/pages/Templates/templates/table-panel.json +0 -39
- package/data/pages/Templates/templates/table-row-animation.json +0 -39
- package/data/pages/Templates/templates/usage-cards.json +0 -39
- package/data/pages/Utilities/utilities/deviceutils.json +0 -39
- package/data/pages/Utilities/utilities/featuretoggles.json +0 -42
- package/data/pages/Utilities/utilities/fueltypeutils.json +0 -118
- package/data/pages/Utilities/utilities/routeutils.json +0 -34
- package/data/pages/Utilities/utilities/useaftermount.json +0 -63
- package/data/pages/Utilities/utilities/useaverage.json +0 -86
- package/data/pages/Utilities/utilities/useclickoutside.json +0 -69
- package/data/pages/Utilities/utilities/useclipboard.json +0 -57
- package/data/pages/Utilities/utilities/usecount.json +0 -92
- package/data/pages/Utilities/utilities/usedarkmode.json +0 -50
- package/data/pages/Utilities/utilities/usedebuginfo.json +0 -63
- package/data/pages/Utilities/utilities/useeffectonce.json +0 -57
- package/data/pages/Utilities/utilities/useelapsedtime.json +0 -57
- package/data/pages/Utilities/utilities/useelementsize.json +0 -63
- package/data/pages/Utilities/utilities/useesc.json +0 -57
- package/data/pages/Utilities/utilities/useevent.json +0 -75
- package/data/pages/Utilities/utilities/usefocustrap.json +0 -57
- package/data/pages/Utilities/utilities/usefullscreen.json +0 -197
- package/data/pages/Utilities/utilities/usehover.json +0 -57
- package/data/pages/Utilities/utilities/useinterval.json +0 -63
- package/data/pages/Utilities/utilities/useisfocuswithin.json +0 -75
- package/data/pages/Utilities/utilities/usekey.json +0 -75
- package/data/pages/Utilities/utilities/uselocalstorage.json +0 -69
- package/data/pages/Utilities/utilities/uselocationsuggestions.json +0 -110
- package/data/pages/Utilities/utilities/usemax.json +0 -86
- package/data/pages/Utilities/utilities/usemin.json +0 -86
- package/data/pages/Utilities/utilities/usemutationobserver.json +0 -69
- package/data/pages/Utilities/utilities/useonlinestatus.json +0 -39
- package/data/pages/Utilities/utilities/useonscreen.json +0 -63
- package/data/pages/Utilities/utilities/usepostmessage.json +0 -80
- package/data/pages/Utilities/utilities/useprevious.json +0 -63
- package/data/pages/Utilities/utilities/useresizeobserver.json +0 -65
- package/data/pages/Utilities/utilities/usescrollposition.json +0 -103
- package/data/pages/Utilities/utilities/usesearch.json +0 -197
- package/data/pages/Utilities/utilities/usesorting.json +0 -139
- package/data/pages/Utilities/utilities/usestatewithvalidation.json +0 -69
- package/data/pages/Utilities/utilities/usesum.json +0 -86
- package/data/pages/Utilities/utilities/usetableexport.json +0 -87
- package/data/pages/Utilities/utilities/usetableselection.json +0 -311
- package/data/pages/Utilities/utilities/usetimeout.json +0 -63
- package/data/pages/Utilities/utilities/usetoggle.json +0 -75
- package/data/pages/Utilities/utilities/usewindowresize.json +0 -63
- package/data/version.json +0 -4
- package/docs/content-schema.md +0 -147
- package/docs/navigation-inventory.json +0 -1310
- package/docs/search-synonyms.json +0 -43
- package/server/index.mjs +0 -268
- package/server/lib/load-docs.mjs +0 -48
- package/server/lib/normalise-doc.mjs +0 -220
- package/server/lib/render-markdown.mjs +0 -82
- package/server/lib/search-index.mjs +0 -49
- package/server/lib/types.js +0 -99
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
# useScrollPosition
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* DOM behavior hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useScrollPosition
|
|
6
|
+
*Captured:* 2025-12-12T12:39:43.570Z
|
|
7
|
+
|
|
8
|
+
The useScrollPosition hook allows to react on a desired scroll position of a given target. Use it when showing or hiding content based on the scroll position.
|
|
9
|
+
|
|
10
|
+
## useScrollPosition
|
|
11
|
+
|
|
12
|
+
### Example: Example 1
|
|
13
|
+
|
|
14
|
+
Default example for scroll position of the ApplicationBody module-content0 px
|
|
15
|
+
|
|
16
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
17
|
+
|
|
18
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
19
|
+
|
|
20
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
21
|
+
|
|
22
|
+
Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
|
|
23
|
+
|
|
24
|
+
Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
|
|
25
|
+
|
|
26
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
27
|
+
|
|
28
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
29
|
+
|
|
30
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
31
|
+
|
|
32
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
33
|
+
|
|
34
|
+
Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
|
|
35
|
+
|
|
36
|
+
Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
|
|
37
|
+
|
|
38
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
39
|
+
|
|
40
|
+
#### Summary
|
|
41
|
+
|
|
42
|
+
Default example for scroll position of the ApplicationBody module-content0 px
|
|
43
|
+
|
|
44
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
45
|
+
|
|
46
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
47
|
+
|
|
48
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
49
|
+
|
|
50
|
+
Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
|
|
51
|
+
|
|
52
|
+
Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
|
|
53
|
+
|
|
54
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
55
|
+
|
|
56
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
57
|
+
|
|
58
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
59
|
+
|
|
60
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
61
|
+
|
|
62
|
+
Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
|
|
63
|
+
|
|
64
|
+
Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
|
|
65
|
+
|
|
66
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
67
|
+
|
|
68
|
+
#### React (tsx)
|
|
69
|
+
|
|
70
|
+
```tsx
|
|
71
|
+
import useScrollPosition from '@rio-cloud/rio-uikit/useScrollPosition';
|
|
72
|
+
|
|
73
|
+
import { dummyTextExtraLong } from '../../../utils/data';
|
|
74
|
+
|
|
75
|
+
export default () => {
|
|
76
|
+
const scrollPosition = useScrollPosition();
|
|
77
|
+
|
|
78
|
+
return (
|
|
79
|
+
<>
|
|
80
|
+
<label>Default example for scroll position of the ApplicationBody module-content</label>
|
|
81
|
+
<div className='position-relative'>
|
|
82
|
+
<div className='position-sticky top-0 well well-sm border shadow-default'>{`${scrollPosition} px`}</div>
|
|
83
|
+
<div className='display-flex flex-column align-items-center text-size-14'>{dummyTextExtraLong}</div>
|
|
84
|
+
</div>
|
|
85
|
+
</>
|
|
86
|
+
);
|
|
87
|
+
};
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
#### HTML (html)
|
|
91
|
+
|
|
92
|
+
```html
|
|
93
|
+
<label>Default example for scroll position of the ApplicationBody module-content</label>
|
|
94
|
+
<div class="position-relative">
|
|
95
|
+
<div class="position-sticky top-0 well well-sm border shadow-default">0 px</div>
|
|
96
|
+
<div class="display-flex flex-column align-items-center text-size-14">
|
|
97
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
98
|
+
|
|
99
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
100
|
+
|
|
101
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
102
|
+
|
|
103
|
+
Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
|
|
104
|
+
|
|
105
|
+
Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
|
|
106
|
+
|
|
107
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
108
|
+
|
|
109
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
110
|
+
|
|
111
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
112
|
+
|
|
113
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
114
|
+
|
|
115
|
+
Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
|
|
116
|
+
|
|
117
|
+
Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
|
|
118
|
+
|
|
119
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div>
|
|
120
|
+
</div>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
#### Props
|
|
124
|
+
|
|
125
|
+
| Name | Type | Default | Description |
|
|
126
|
+
| --- | --- | --- | --- |
|
|
127
|
+
| target | Window \| HTMLBodyElement \| React.ReactElement \| React.MutableRefObject<object> \| undefined | — | The target element to get the scroll position for. |
|
|
128
|
+
| return | Number | — | The hook returns the scroll position as a number |
|
|
129
|
+
|
|
130
|
+
### Example: Example 2
|
|
131
|
+
|
|
132
|
+
Example for scroll position of a certain element0 px
|
|
133
|
+
|
|
134
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
135
|
+
|
|
136
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
137
|
+
|
|
138
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
139
|
+
|
|
140
|
+
Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
|
|
141
|
+
|
|
142
|
+
Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
|
|
143
|
+
|
|
144
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
145
|
+
|
|
146
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
147
|
+
|
|
148
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
149
|
+
|
|
150
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
151
|
+
|
|
152
|
+
Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
|
|
153
|
+
|
|
154
|
+
Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
|
|
155
|
+
|
|
156
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
157
|
+
|
|
158
|
+
#### Summary
|
|
159
|
+
|
|
160
|
+
Example for scroll position of a certain element0 px
|
|
161
|
+
|
|
162
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
163
|
+
|
|
164
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
165
|
+
|
|
166
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
167
|
+
|
|
168
|
+
Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
|
|
169
|
+
|
|
170
|
+
Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
|
|
171
|
+
|
|
172
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
173
|
+
|
|
174
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
175
|
+
|
|
176
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
177
|
+
|
|
178
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
179
|
+
|
|
180
|
+
Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
|
|
181
|
+
|
|
182
|
+
Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
|
|
183
|
+
|
|
184
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
185
|
+
|
|
186
|
+
#### React (tsx)
|
|
187
|
+
|
|
188
|
+
```tsx
|
|
189
|
+
import { useRef } from 'react';
|
|
190
|
+
|
|
191
|
+
import useScrollPosition from '@rio-cloud/rio-uikit/useScrollPosition';
|
|
192
|
+
|
|
193
|
+
import { dummyTextExtraLong } from '../../../utils/data';
|
|
194
|
+
|
|
195
|
+
export default () => {
|
|
196
|
+
const contentRef = useRef<HTMLDivElement>(null);
|
|
197
|
+
const scrollPosition = useScrollPosition(contentRef);
|
|
198
|
+
|
|
199
|
+
return (
|
|
200
|
+
<>
|
|
201
|
+
<label>Example for scroll position of a certain element</label>
|
|
202
|
+
<div
|
|
203
|
+
ref={contentRef}
|
|
204
|
+
className='height-200 position-relative overflow-auto height-200 position-relative overflow-auto'
|
|
205
|
+
>
|
|
206
|
+
<div className='position-sticky top-0 well well-sm border shadow-default'>{`${scrollPosition} px`}</div>
|
|
207
|
+
<div className='text-size-14'>{dummyTextExtraLong}</div>
|
|
208
|
+
</div>
|
|
209
|
+
</>
|
|
210
|
+
);
|
|
211
|
+
};
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
#### HTML (html)
|
|
215
|
+
|
|
216
|
+
```html
|
|
217
|
+
<label>Example for scroll position of a certain element</label>
|
|
218
|
+
<div class="height-200 position-relative overflow-auto height-200 position-relative overflow-auto">
|
|
219
|
+
<div class="position-sticky top-0 well well-sm border shadow-default">0 px</div>
|
|
220
|
+
<div class="text-size-14">
|
|
221
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
222
|
+
|
|
223
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
224
|
+
|
|
225
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
226
|
+
|
|
227
|
+
Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
|
|
228
|
+
|
|
229
|
+
Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
|
|
230
|
+
|
|
231
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
232
|
+
|
|
233
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.
|
|
234
|
+
|
|
235
|
+
In mattis massa a tellus laoreet volutpat. Integer placerat convallis tempor. Quisque id diam nec ex iaculis pulvinar. Nunc urna dui, varius at tempus sit amet, euismod id risus. Cras placerat imperdiet mattis. Etiam vehicula finibus magna. Nullam ornare diam at molestie faucibus. Aenean dictum magna a ipsum scelerisque, a vehicula massa vehicula. Suspendisse blandit tellus vulputate enim ullamcorper tincidunt. Vivamus enim justo, sollicitudin sit amet pulvinar vitae, vehicula sed leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
|
|
236
|
+
|
|
237
|
+
Praesent mattis purus et velit maximus hendrerit. Aenean vehicula tempus dapibus. Mauris convallis pharetra purus, non vulputate erat rutrum quis. Sed in tincidunt justo. Ut eu venenatis augue. Aliquam ullamcorper vitae tellus et egestas. Integer eget metus quis odio elementum auctor quis et ipsum. Duis lobortis eros lacinia sapien rutrum egestas. Phasellus ornare, elit non efficitur fringilla, arcu risus molestie enim, sit amet blandit lorem ex in lectus. Vestibulum quis tempor nisi, at pretium erat.
|
|
238
|
+
|
|
239
|
+
Mauris sed blandit nisi. In tellus sem, auctor ut porttitor eget, dictum et eros. Integer in sem nec lacus hendrerit cursus. Nulla mattis nisi et tincidunt tincidunt. Fusce ullamcorper nunc in quam euismod mattis et dignissim nulla. Ut tincidunt sodales felis, id feugiat ligula suscipit vel. Suspendisse ullamcorper commodo maximus.
|
|
240
|
+
|
|
241
|
+
Nam in dapibus eros, eget tristique enim. Vivamus non neque at elit cursus tempus vel vitae neque. Aenean pellentesque aliquet lorem, commodo ornare dolor tempus id. Curabitur efficitur nulla eu libero consectetur, at ultricies nisi condimentum. Nam imperdiet ac magna ut congue. Vivamus id aliquet turpis, quis suscipit nulla. Nunc placerat pulvinar neque. Donec ullamcorper vel ante ac iaculis. Phasellus eget dapibus turpis. Nam interdum enim at bibendum faucibus. Nunc ipsum urna, finibus ut hendrerit at, laoreet sit amet eros. Morbi ligula arcu, eleifend et dictum egestas, consequat vitae nunc.
|
|
242
|
+
|
|
243
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div>
|
|
244
|
+
</div>
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
#### Props
|
|
248
|
+
|
|
249
|
+
| Name | Type | Default | Description |
|
|
250
|
+
| --- | --- | --- | --- |
|
|
251
|
+
| target | Window \| HTMLBodyElement \| React.ReactElement \| React.MutableRefObject<object> \| undefined | — | The target element to get the scroll position for. |
|
|
252
|
+
| return | Number | — | The hook returns the scroll position as a number |
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# useSearch
|
|
2
|
+
|
|
3
|
+
*Category:* Utilities
|
|
4
|
+
*Section:* UI state & input hooks
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#utilities/useSearch
|
|
6
|
+
*Captured:* 2025-12-12T12:39:48.194Z
|
|
7
|
+
|
|
8
|
+
The useSearch hook is a custom hook to filter a list of objects by a search value. Supports field-based filtering, custom filtering logic, debounce, and case sensitivity.
|
|
9
|
+
|
|
10
|
+
## useSearch
|
|
11
|
+
|
|
12
|
+
### Example: Search a list of objects
|
|
13
|
+
|
|
14
|
+
Search a list of objects
|
|
15
|
+
|
|
16
|
+
AppleBananaFigPearMango
|
|
17
|
+
|
|
18
|
+
#### Summary
|
|
19
|
+
|
|
20
|
+
Search a list of objects
|
|
21
|
+
|
|
22
|
+
AppleBananaFigPearMango
|
|
23
|
+
|
|
24
|
+
#### React (tsx)
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
import { isEmpty } from 'es-toolkit/compat';
|
|
28
|
+
import useSearch from '@rio-cloud/rio-uikit/useSearch';
|
|
29
|
+
import ClearableInput from '@rio-cloud/rio-uikit/ClearableInput';
|
|
30
|
+
import FormLabel from '@rio-cloud/rio-uikit/FormLabel';
|
|
31
|
+
|
|
32
|
+
type ListType = { name: string };
|
|
33
|
+
|
|
34
|
+
export default () => {
|
|
35
|
+
const items = [{ name: 'Apple' }, { name: 'Banana' }, { name: 'Fig' }, { name: 'Pear' }, { name: 'Mango' }];
|
|
36
|
+
|
|
37
|
+
const { searchValue, setSearchValue, filteredList } = useSearch(items);
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<>
|
|
41
|
+
<div className='form-group max-width-300'>
|
|
42
|
+
<FormLabel>Search a list of objects</FormLabel>
|
|
43
|
+
<div className='input-group'>
|
|
44
|
+
<span className='input-group-addon'>
|
|
45
|
+
<span className='rioglyph rioglyph-search' aria-hidden='true' />
|
|
46
|
+
</span>
|
|
47
|
+
<ClearableInput
|
|
48
|
+
value={searchValue}
|
|
49
|
+
onChange={(newValue: string) => setSearchValue(newValue)}
|
|
50
|
+
onClear={() => setSearchValue('')}
|
|
51
|
+
placeholder='Search for fruits'
|
|
52
|
+
/>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
<div className='display-flex gap-10'>
|
|
56
|
+
{isEmpty(filteredList)
|
|
57
|
+
? 'Nothing found'
|
|
58
|
+
: filteredList.map(listItem => <span key={listItem.name}>{listItem.name}</span>)}
|
|
59
|
+
</div>
|
|
60
|
+
</>
|
|
61
|
+
);
|
|
62
|
+
};
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
#### HTML (html)
|
|
66
|
+
|
|
67
|
+
```html
|
|
68
|
+
<div class="form-group max-width-300">
|
|
69
|
+
<div class="text-color-dark max-width-100pct text-size-12 display-inline-block margin-bottom-5">Search a list of objects</div>
|
|
70
|
+
<div class="input-group">
|
|
71
|
+
<span class="input-group-addon">
|
|
72
|
+
<span class="rioglyph rioglyph-search" aria-hidden="true">
|
|
73
|
+
</span>
|
|
74
|
+
</span>
|
|
75
|
+
<div class="ClearableInput input-group">
|
|
76
|
+
<input placeholder="Search for fruits" class="form-control" type="text" tabindex="0" value="">
|
|
77
|
+
<span class="clearButton hide">
|
|
78
|
+
<span class="clearButtonIcon rioglyph rioglyph-remove-sign">
|
|
79
|
+
</span>
|
|
80
|
+
</span>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
<div class="display-flex gap-10">
|
|
85
|
+
<span>Apple</span>
|
|
86
|
+
<span>Banana</span>
|
|
87
|
+
<span>Fig</span>
|
|
88
|
+
<span>Pear</span>
|
|
89
|
+
<span>Mango</span>
|
|
90
|
+
</div>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### Props: Options for the `useSearch` hook
|
|
94
|
+
|
|
95
|
+
### Options for the `useSearch` hook
|
|
96
|
+
|
|
97
|
+
| Name | Type | Default | Description |
|
|
98
|
+
| --- | --- | --- | --- |
|
|
99
|
+
| list | T[] | — | The array of objects to search through. |
|
|
100
|
+
| options | object | — | Configuration options for the search behavior. |
|
|
101
|
+
| └fields | (keyof T \| string)[] | — | Fields to search through. If omitted, all top-level string/number fields are used. |
|
|
102
|
+
| └customFilter | (item: T, query: string) => boolean | — | Optional custom filter function overriding field-based filtering. |
|
|
103
|
+
| └debounceMs | number | — | Debounce time in milliseconds. If omitted, debounce is disabled. |
|
|
104
|
+
| └caseSensitive | boolean | false | Whether the search should be case-sensitive. |
|
|
105
|
+
|
|
106
|
+
#### Props: Return value of the `useSearch` hook
|
|
107
|
+
|
|
108
|
+
### Return value of the `useSearch` hook
|
|
109
|
+
|
|
110
|
+
| Name | Type | Default | Description |
|
|
111
|
+
| --- | --- | --- | --- |
|
|
112
|
+
| searchValue | string | — | The current search input string. |
|
|
113
|
+
| setSearchValue | Function | — | A setter function to update the search query. |
|
|
114
|
+
| filteredList | T[] | — | The list of items matching the current search query. |
|
|
115
|
+
|
|
116
|
+
### Example: Search a list of objects for multiple fields
|
|
117
|
+
|
|
118
|
+
Search a list of objects for multiple fields
|
|
119
|
+
|
|
120
|
+
Alice - 30 | Berlin
|
|
121
|
+
Bob - 25 | Munich
|
|
122
|
+
Charlie - 35 |
|
|
123
|
+
|
|
124
|
+
#### Summary
|
|
125
|
+
|
|
126
|
+
Search a list of objects for multiple fields
|
|
127
|
+
|
|
128
|
+
Alice - 30 | Berlin
|
|
129
|
+
Bob - 25 | Munich
|
|
130
|
+
Charlie - 35 |
|
|
131
|
+
|
|
132
|
+
#### React (tsx)
|
|
133
|
+
|
|
134
|
+
```tsx
|
|
135
|
+
import { isEmpty } from 'es-toolkit/compat';
|
|
136
|
+
import useSearch from '@rio-cloud/rio-uikit/useSearch';
|
|
137
|
+
import ClearableInput from '@rio-cloud/rio-uikit/ClearableInput';
|
|
138
|
+
import FormLabel from '@rio-cloud/rio-uikit/FormLabel';
|
|
139
|
+
|
|
140
|
+
type ListType = { name: string; age: number; address?: { city: string } };
|
|
141
|
+
|
|
142
|
+
export default () => {
|
|
143
|
+
const users = [
|
|
144
|
+
{ name: 'Alice', age: 30, address: { city: 'Berlin' } },
|
|
145
|
+
{ name: 'Bob', age: 25, address: { city: 'Munich' } },
|
|
146
|
+
{ name: 'Charlie', age: 35 },
|
|
147
|
+
];
|
|
148
|
+
|
|
149
|
+
const { searchValue, setSearchValue, filteredList } = useSearch(users, { fields: ['name', 'age', 'address.city'] });
|
|
150
|
+
|
|
151
|
+
return (
|
|
152
|
+
<>
|
|
153
|
+
<div className='form-group max-width-300'>
|
|
154
|
+
<FormLabel>Search a list of objects for multiple fields</FormLabel>
|
|
155
|
+
<div className='input-group'>
|
|
156
|
+
<span className='input-group-addon'>
|
|
157
|
+
<span className='rioglyph rioglyph-search' aria-hidden='true' />
|
|
158
|
+
</span>
|
|
159
|
+
<ClearableInput
|
|
160
|
+
value={searchValue}
|
|
161
|
+
onChange={(newValue: string) => setSearchValue(newValue)}
|
|
162
|
+
onClear={() => setSearchValue('')}
|
|
163
|
+
placeholder='Search for users'
|
|
164
|
+
/>
|
|
165
|
+
</div>
|
|
166
|
+
</div>
|
|
167
|
+
<div>
|
|
168
|
+
{isEmpty(filteredList)
|
|
169
|
+
? 'Nothing found'
|
|
170
|
+
: filteredList.map(listItem => (
|
|
171
|
+
<div key={listItem.name}>
|
|
172
|
+
{listItem.name} - {listItem.age} | {listItem.address?.city}
|
|
173
|
+
</div>
|
|
174
|
+
))}
|
|
175
|
+
</div>
|
|
176
|
+
</>
|
|
177
|
+
);
|
|
178
|
+
};
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
#### HTML (html)
|
|
182
|
+
|
|
183
|
+
```html
|
|
184
|
+
<div class="form-group max-width-300">
|
|
185
|
+
<div class="text-color-dark max-width-100pct text-size-12 display-inline-block margin-bottom-5">Search a list of objects for multiple fields</div>
|
|
186
|
+
<div class="input-group">
|
|
187
|
+
<span class="input-group-addon">
|
|
188
|
+
<span class="rioglyph rioglyph-search" aria-hidden="true">
|
|
189
|
+
</span>
|
|
190
|
+
</span>
|
|
191
|
+
<div class="ClearableInput input-group">
|
|
192
|
+
<input placeholder="Search for users" class="form-control" type="text" tabindex="0" value="">
|
|
193
|
+
<span class="clearButton hide">
|
|
194
|
+
<span class="clearButtonIcon rioglyph rioglyph-remove-sign">
|
|
195
|
+
</span>
|
|
196
|
+
</span>
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
</div>
|
|
200
|
+
<div>
|
|
201
|
+
<div>Alice - 30 | Berlin</div>
|
|
202
|
+
<div>Bob - 25 | Munich</div>
|
|
203
|
+
<div>Charlie - 35 | </div>
|
|
204
|
+
</div>
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
#### Props: Options for the `useSearch` hook
|
|
208
|
+
|
|
209
|
+
### Options for the `useSearch` hook
|
|
210
|
+
|
|
211
|
+
| Name | Type | Default | Description |
|
|
212
|
+
| --- | --- | --- | --- |
|
|
213
|
+
| list | T[] | — | The array of objects to search through. |
|
|
214
|
+
| options | object | — | Configuration options for the search behavior. |
|
|
215
|
+
| └fields | (keyof T \| string)[] | — | Fields to search through. If omitted, all top-level string/number fields are used. |
|
|
216
|
+
| └customFilter | (item: T, query: string) => boolean | — | Optional custom filter function overriding field-based filtering. |
|
|
217
|
+
| └debounceMs | number | — | Debounce time in milliseconds. If omitted, debounce is disabled. |
|
|
218
|
+
| └caseSensitive | boolean | false | Whether the search should be case-sensitive. |
|
|
219
|
+
|
|
220
|
+
#### Props: Return value of the `useSearch` hook
|
|
221
|
+
|
|
222
|
+
### Return value of the `useSearch` hook
|
|
223
|
+
|
|
224
|
+
| Name | Type | Default | Description |
|
|
225
|
+
| --- | --- | --- | --- |
|
|
226
|
+
| searchValue | string | — | The current search input string. |
|
|
227
|
+
| setSearchValue | Function | — | A setter function to update the search query. |
|
|
228
|
+
| filteredList | T[] | — | The list of items matching the current search query. |
|