@@ -99,27 +99,23 @@ pub fn ScrollArea(props: ScrollAreaProps) -> Element {
9999 let scroll_type = props. scroll_type ;
100100 let always_show = props. always_show_scrollbars ;
101101
102- let overflow_style = use_memo ( move || match scroll_type ( ) {
102+ let ( overflow_x , overflow_y , scrollbar_width ) = match scroll_type ( ) {
103103 ScrollType :: Auto => match direction ( ) {
104- ScrollDirection :: Vertical => "overflow-y: auto; overflow-x: hidden;" ,
105- ScrollDirection :: Horizontal => "overflow-x: auto; overflow-y: hidden;" ,
106- ScrollDirection :: Both => "overflow: auto;" ,
104+ ScrollDirection :: Vertical => ( Some ( "hidden" ) , Some ( " auto" ) , None ) ,
105+ ScrollDirection :: Horizontal => ( Some ( " auto" ) , Some ( " hidden" ) , None ) ,
106+ ScrollDirection :: Both => ( Some ( "auto" ) , Some ( " auto" ) , None ) ,
107107 } ,
108108 ScrollType :: Always => match direction ( ) {
109- ScrollDirection :: Vertical => "overflow-y: scroll; overflow-x: hidden;" ,
110- ScrollDirection :: Horizontal => "overflow-x: scroll; overflow-y: hidden;" ,
111- ScrollDirection :: Both => "overflow: scroll;" ,
109+ ScrollDirection :: Vertical => ( Some ( "hidden" ) , Some ( " scroll" ) , None ) ,
110+ ScrollDirection :: Horizontal => ( Some ( " scroll" ) , Some ( " hidden" ) , None ) ,
111+ ScrollDirection :: Both => ( Some ( "scroll" ) , Some ( " scroll" ) , None ) ,
112112 } ,
113113 ScrollType :: Hidden => match direction ( ) {
114- ScrollDirection :: Vertical => {
115- "overflow-y: scroll; overflow-x: hidden; scrollbar-width: none;"
116- }
117- ScrollDirection :: Horizontal => {
118- "overflow-x: scroll; overflow-y: hidden; scrollbar-width: none;"
119- }
120- ScrollDirection :: Both => "overflow: scroll; scrollbar-width: none;" ,
114+ ScrollDirection :: Vertical => ( Some ( "hidden" ) , Some ( "scroll" ) , Some ( "none" ) ) ,
115+ ScrollDirection :: Horizontal => ( Some ( "scroll" ) , Some ( "hidden" ) , Some ( "none" ) ) ,
116+ ScrollDirection :: Both => ( Some ( "scroll" ) , Some ( "scroll" ) , Some ( "none" ) ) ,
121117 } ,
122- } ) ;
118+ } ;
123119
124120 let visibility_class = use_memo ( move || {
125121 if always_show ( ) {
@@ -132,7 +128,9 @@ pub fn ScrollArea(props: ScrollAreaProps) -> Element {
132128 rsx ! {
133129 div {
134130 class: "{visibility_class}" ,
135- style: "{overflow_style}" ,
131+ overflow_x,
132+ overflow_y,
133+ "scrollbar-width" : scrollbar_width,
136134 "data-scroll-direction" : match direction( ) {
137135 ScrollDirection :: Vertical => "vertical" ,
138136 ScrollDirection :: Horizontal => "horizontal" ,
0 commit comments