Fix scrollbar gutters on web (#1401)

* Fix scrollbar gutters on web

* Fix typecheck
zio/stable
Paul Frazee 2023-09-07 09:32:14 -07:00 committed by GitHub
parent 138e6d9b97
commit 2963fb4c6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 12 deletions

View File

@ -91,6 +91,9 @@
*[data-word-wrap] {
word-break: break-word;
}
*[data-stable-gutters] {
scrollbar-gutter: stable both-edges;
}
/* ProseMirror */
.ProseMirror {

View File

@ -73,8 +73,4 @@ const styles = StyleSheet.create({
flexDirection: 'row',
alignItems: 'center',
},
tabBarAvi: {
marginTop: 1,
marginRight: 18,
},
})

View File

@ -70,10 +70,18 @@ export const FlatList = React.forwardRef(function <ItemT>(
if (desktopFixedHeight) {
style = addStyle(style, styles.fixedHeight)
if (!isMobile) {
contentContainerStyle = addStyle(
contentContainerStyle,
styles.stableGutters,
)
// NOTE
// react native web produces *three* wrapping divs
// the first two use the `style` prop and the innermost uses the
// `contentContainerStyle`. Unfortunately the stable-gutter style
// needs to be applied to only the "middle" of these. To hack
// around this, we set data-stable-gutters which can then be
// styled in our external CSS.
// -prf
// @ts-ignore web only -prf
props.dataSet = props.dataSet || {}
// @ts-ignore web only -prf
props.dataSet.stableGutters = '1'
}
}
return (
@ -137,8 +145,4 @@ const styles = StyleSheet.create({
// @ts-ignore web only
height: '100vh',
},
stableGutters: {
// @ts-ignore web only -prf
scrollbarGutter: 'stable both-edges',
},
})

View File

@ -95,6 +95,9 @@
*[data-word-wrap] {
word-break: break-word;
}
*[data-stable-gutters] {
scrollbar-gutter: stable both-edges;
}
/* ProseMirror */
.ProseMirror {