@fountain-ui/lab 3.0.0-alpha.13 → 3.0.0-alpha.14
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/build/commonjs/StatusBarProvider/StatusBarProvider.js +1 -1
- package/build/commonjs/StatusBarProvider/StatusBarProvider.js.map +1 -1
- package/build/module/StatusBarProvider/StatusBarProvider.js +1 -1
- package/build/module/StatusBarProvider/StatusBarProvider.js.map +1 -1
- package/package.json +2 -2
- package/src/StatusBarProvider/StatusBarProvider.tsx +2 -2
|
@@ -45,7 +45,7 @@ function StatusBarProvider(props) {
|
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
const theme = (0, _core.useTheme)();
|
|
48
|
-
const defaultColor = theme.palette.background.
|
|
48
|
+
const defaultColor = theme.palette.background.base;
|
|
49
49
|
|
|
50
50
|
const [visible, setVisible] = _react.default.useState(initialVisible);
|
|
51
51
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["initialVisible","Platform","select","ios","android","StatusBarProvider","props","children","currentStatusBarPropsRef","useRef","initialStatusBarPropsStack","Array","statusBarPropsStackRef","mergeStatusBarPropsRef","current","theme","useTheme","defaultColor","palette","background","default","visible","setVisible","React","useState","backgroundViewColor","setBackgroundViewColor","setBackgroundColor","value","backgroundColor","OS","RNStatusBar","setBarStyle","animated","barStyle","setHidden","hidden","setTranslucent","translucent","updateStatusBarProps","statusBarProps","animatedBarStyle","R","isNil","restoreInitialStack","length","initialStatusBar","clearStack","pushStack","push","replaceStack","popStack","prevStack","undefined","pop","getCurrentStatusBarProps","shouldRenderBackgroundView","inset","useSafeAreaInsets","backgroundViewStyle","css","height","top","left","position","right","zIndex","statusBar"],"sources":["StatusBarProvider.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport type { StatusBarStyle } from 'react-native';\nimport { Platform, StatusBar as RNStatusBar, View } from 'react-native';\nimport * as R from 'ramda';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { useTheme } from '@fountain-ui/core';\nimport { css } from '@fountain-ui/styles';\nimport Provider from './Provider';\nimport type { StatusBarProps } from './Provider';\nimport type StatusBarProviderProps from './StatusBarProviderProps';\n\nconst initialVisible = Platform.select({\n ios: true,\n android: false,\n});\n\nexport default function StatusBarProvider(props: StatusBarProviderProps) {\n const { children } = props;\n\n const currentStatusBarPropsRef = useRef<StatusBarProps | {}>({});\n\n const initialStatusBarPropsStack = new Array<StatusBarProps>();\n const statusBarPropsStackRef = useRef(initialStatusBarPropsStack);\n\n const mergeStatusBarPropsRef = (props: StatusBarProps) => {\n currentStatusBarPropsRef.current = {\n ...currentStatusBarPropsRef.current,\n ...props,\n };\n };\n\n const theme = useTheme();\n const defaultColor = theme.palette.background.default;\n\n const [visible, setVisible] = React.useState(initialVisible);\n const [backgroundViewColor, setBackgroundViewColor] = React.useState(defaultColor);\n\n const setBackgroundColor = (value: string) => {\n mergeStatusBarPropsRef({ backgroundColor: value });\n\n if (Platform.OS === 'android') {\n RNStatusBar.setBackgroundColor(value);\n }\n\n if (Platform.OS === 'ios') {\n setBackgroundViewColor(value);\n }\n };\n\n const setBarStyle = (value: StatusBarStyle, animated?: boolean) => {\n mergeStatusBarPropsRef({ barStyle: value });\n RNStatusBar.setBarStyle(value, animated);\n };\n\n const setHidden = (value: boolean) => {\n mergeStatusBarPropsRef({ hidden: value });\n\n if (Platform.OS === 'ios') {\n setVisible(!value);\n }\n\n RNStatusBar.setHidden(value);\n };\n\n const setTranslucent = (value: boolean) => {\n mergeStatusBarPropsRef({ translucent: value });\n\n if (Platform.OS === 'android') {\n RNStatusBar.setTranslucent(value);\n }\n };\n\n const updateStatusBarProps = (statusBarProps: StatusBarProps) => {\n const {\n barStyle,\n animatedBarStyle,\n backgroundColor,\n hidden,\n translucent,\n } = statusBarProps;\n\n if (!R.isNil(barStyle)) {\n setBarStyle(barStyle, animatedBarStyle);\n }\n\n if (!R.isNil(backgroundColor)) {\n setBackgroundColor(backgroundColor);\n }\n\n if (!R.isNil(hidden)) {\n setHidden(hidden);\n }\n\n if (!R.isNil(translucent)) {\n setTranslucent(translucent);\n }\n };\n\n const restoreInitialStack = () => {\n if (statusBarPropsStackRef.current.length === 0) {\n return;\n }\n\n const initialStatusBar = statusBarPropsStackRef.current[0];\n updateStatusBarProps(initialStatusBar);\n\n statusBarPropsStackRef.current = [statusBarPropsStackRef.current[0]];\n };\n\n const clearStack = () => {\n statusBarPropsStackRef.current = new Array<StatusBarProps>();\n };\n\n const pushStack = (statusBarProps: StatusBarProps) => {\n updateStatusBarProps(statusBarProps);\n statusBarPropsStackRef.current.push(currentStatusBarPropsRef.current);\n };\n\n const replaceStack = (statusBarProps: StatusBarProps) => {\n if (statusBarPropsStackRef.current.length === 0) {\n return;\n }\n\n updateStatusBarProps(statusBarProps);\n statusBarPropsStackRef.current[statusBarPropsStackRef.current.length - 1] = currentStatusBarPropsRef.current;\n };\n\n const popStack = () => {\n if (statusBarPropsStackRef.current.length === 0) {\n return;\n }\n\n const prevStack = statusBarPropsStackRef.current.length >= 2\n ? statusBarPropsStackRef.current[statusBarPropsStackRef.current.length - 2]\n : undefined;\n\n statusBarPropsStackRef.current.pop();\n\n if (R.isNil(prevStack)) {\n return;\n }\n\n updateStatusBarProps(prevStack);\n };\n\n const getCurrentStatusBarProps = () => currentStatusBarPropsRef.current;\n\n const shouldRenderBackgroundView = Platform.OS === 'ios' && visible;\n\n const inset = useSafeAreaInsets();\n const backgroundViewStyle = css([\n {\n backgroundColor: backgroundViewColor,\n height: inset.top,\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n zIndex: theme.zIndex.statusBar,\n },\n ]);\n\n return (\n <Provider value={{\n setBackgroundColor,\n setBarStyle,\n setHidden,\n setTranslucent,\n pushStack,\n popStack,\n replaceStack,\n getCurrentStatusBarProps,\n restoreInitialStack,\n clearStack,\n }}>\n {shouldRenderBackgroundView ? (\n <View style={backgroundViewStyle}/>\n ) : null}\n {children}\n </Provider>\n );\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["initialVisible","Platform","select","ios","android","StatusBarProvider","props","children","currentStatusBarPropsRef","useRef","initialStatusBarPropsStack","Array","statusBarPropsStackRef","mergeStatusBarPropsRef","current","theme","useTheme","defaultColor","palette","background","base","visible","setVisible","React","useState","backgroundViewColor","setBackgroundViewColor","setBackgroundColor","value","backgroundColor","OS","RNStatusBar","setBarStyle","animated","barStyle","setHidden","hidden","setTranslucent","translucent","updateStatusBarProps","statusBarProps","animatedBarStyle","R","isNil","restoreInitialStack","length","initialStatusBar","clearStack","pushStack","push","replaceStack","popStack","prevStack","undefined","pop","getCurrentStatusBarProps","shouldRenderBackgroundView","inset","useSafeAreaInsets","backgroundViewStyle","css","height","top","left","position","right","zIndex","statusBar"],"sources":["StatusBarProvider.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport type { StatusBarStyle } from 'react-native';\nimport { Platform, StatusBar as RNStatusBar, View } from 'react-native';\nimport * as R from 'ramda';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { useTheme } from '@fountain-ui/core';\nimport { css } from '@fountain-ui/styles';\nimport Provider from './Provider';\nimport type { StatusBarProps } from './Provider';\nimport type StatusBarProviderProps from './StatusBarProviderProps';\n\nconst initialVisible = Platform.select({\n ios: true,\n android: false,\n});\n\nexport default function StatusBarProvider(props: StatusBarProviderProps) {\n const { children } = props;\n\n const currentStatusBarPropsRef = useRef<StatusBarProps | {}>({});\n\n const initialStatusBarPropsStack = new Array<StatusBarProps>();\n const statusBarPropsStackRef = useRef(initialStatusBarPropsStack);\n\n const mergeStatusBarPropsRef = (props: StatusBarProps) => {\n currentStatusBarPropsRef.current = {\n ...currentStatusBarPropsRef.current,\n ...props,\n };\n };\n\n const theme = useTheme();\n const defaultColor = theme.palette.background.base;\n\n const [visible, setVisible] = React.useState(initialVisible);\n const [backgroundViewColor, setBackgroundViewColor] = React.useState(defaultColor);\n\n const setBackgroundColor = (value: string) => {\n mergeStatusBarPropsRef({ backgroundColor: value });\n\n if (Platform.OS === 'android') {\n RNStatusBar.setBackgroundColor(value);\n }\n\n if (Platform.OS === 'ios') {\n setBackgroundViewColor(value);\n }\n };\n\n const setBarStyle = (value: StatusBarStyle, animated?: boolean) => {\n mergeStatusBarPropsRef({ barStyle: value });\n RNStatusBar.setBarStyle(value, animated);\n };\n\n const setHidden = (value: boolean) => {\n mergeStatusBarPropsRef({ hidden: value });\n\n if (Platform.OS === 'ios') {\n setVisible(!value);\n }\n\n RNStatusBar.setHidden(value);\n };\n\n const setTranslucent = (value: boolean) => {\n mergeStatusBarPropsRef({ translucent: value });\n\n if (Platform.OS === 'android') {\n RNStatusBar.setTranslucent(value);\n }\n };\n\n const updateStatusBarProps = (statusBarProps: StatusBarProps) => {\n const {\n barStyle,\n animatedBarStyle,\n backgroundColor,\n hidden,\n translucent,\n } = statusBarProps;\n\n if (!R.isNil(barStyle)) {\n setBarStyle(barStyle, animatedBarStyle);\n }\n\n if (!R.isNil(backgroundColor)) {\n setBackgroundColor(backgroundColor);\n }\n\n if (!R.isNil(hidden)) {\n setHidden(hidden);\n }\n\n if (!R.isNil(translucent)) {\n setTranslucent(translucent);\n }\n };\n\n const restoreInitialStack = () => {\n if (statusBarPropsStackRef.current.length === 0) {\n return;\n }\n\n const initialStatusBar = statusBarPropsStackRef.current[0];\n updateStatusBarProps(initialStatusBar);\n\n statusBarPropsStackRef.current = [statusBarPropsStackRef.current[0]];\n };\n\n const clearStack = () => {\n statusBarPropsStackRef.current = new Array<StatusBarProps>();\n };\n\n const pushStack = (statusBarProps: StatusBarProps) => {\n updateStatusBarProps(statusBarProps);\n statusBarPropsStackRef.current.push(currentStatusBarPropsRef.current);\n };\n\n const replaceStack = (statusBarProps: StatusBarProps) => {\n if (statusBarPropsStackRef.current.length === 0) {\n return;\n }\n\n updateStatusBarProps(statusBarProps);\n statusBarPropsStackRef.current[statusBarPropsStackRef.current.length - 1] = currentStatusBarPropsRef.current;\n };\n\n const popStack = () => {\n if (statusBarPropsStackRef.current.length === 0) {\n return;\n }\n\n const prevStack = statusBarPropsStackRef.current.length >= 2\n ? statusBarPropsStackRef.current[statusBarPropsStackRef.current.length - 2]\n : undefined;\n\n statusBarPropsStackRef.current.pop();\n\n if (R.isNil(prevStack)) {\n return;\n }\n\n updateStatusBarProps(prevStack);\n };\n\n const getCurrentStatusBarProps = () => currentStatusBarPropsRef.current;\n\n const shouldRenderBackgroundView = Platform.OS === 'ios' && visible;\n\n const inset = useSafeAreaInsets();\n const backgroundViewStyle = css([\n {\n backgroundColor: backgroundViewColor,\n height: inset.top,\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n zIndex: theme.zIndex.statusBar,\n },\n ]);\n\n return (\n <Provider value={{\n setBackgroundColor,\n setBarStyle,\n setHidden,\n setTranslucent,\n pushStack,\n popStack,\n replaceStack,\n getCurrentStatusBarProps,\n restoreInitialStack,\n clearStack,\n }}>\n {shouldRenderBackgroundView ? (\n <View style={backgroundViewStyle}/>\n ) : null}\n {children}\n </Provider>\n );\n}\n"],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export default function StatusBarProvider(props) {
|
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
const theme = useTheme();
|
|
27
|
-
const defaultColor = theme.palette.background.
|
|
27
|
+
const defaultColor = theme.palette.background.base;
|
|
28
28
|
const [visible, setVisible] = React.useState(initialVisible);
|
|
29
29
|
const [backgroundViewColor, setBackgroundViewColor] = React.useState(defaultColor);
|
|
30
30
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","Platform","StatusBar","RNStatusBar","View","R","useSafeAreaInsets","useTheme","css","Provider","initialVisible","select","ios","android","StatusBarProvider","props","children","currentStatusBarPropsRef","initialStatusBarPropsStack","Array","statusBarPropsStackRef","mergeStatusBarPropsRef","current","theme","defaultColor","palette","background","default","visible","setVisible","useState","backgroundViewColor","setBackgroundViewColor","setBackgroundColor","value","backgroundColor","OS","setBarStyle","animated","barStyle","setHidden","hidden","setTranslucent","translucent","updateStatusBarProps","statusBarProps","animatedBarStyle","isNil","restoreInitialStack","length","initialStatusBar","clearStack","pushStack","push","replaceStack","popStack","prevStack","undefined","pop","getCurrentStatusBarProps","shouldRenderBackgroundView","inset","backgroundViewStyle","height","top","left","position","right","zIndex","statusBar"],"sources":["StatusBarProvider.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport type { StatusBarStyle } from 'react-native';\nimport { Platform, StatusBar as RNStatusBar, View } from 'react-native';\nimport * as R from 'ramda';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { useTheme } from '@fountain-ui/core';\nimport { css } from '@fountain-ui/styles';\nimport Provider from './Provider';\nimport type { StatusBarProps } from './Provider';\nimport type StatusBarProviderProps from './StatusBarProviderProps';\n\nconst initialVisible = Platform.select({\n ios: true,\n android: false,\n});\n\nexport default function StatusBarProvider(props: StatusBarProviderProps) {\n const { children } = props;\n\n const currentStatusBarPropsRef = useRef<StatusBarProps | {}>({});\n\n const initialStatusBarPropsStack = new Array<StatusBarProps>();\n const statusBarPropsStackRef = useRef(initialStatusBarPropsStack);\n\n const mergeStatusBarPropsRef = (props: StatusBarProps) => {\n currentStatusBarPropsRef.current = {\n ...currentStatusBarPropsRef.current,\n ...props,\n };\n };\n\n const theme = useTheme();\n const defaultColor = theme.palette.background.default;\n\n const [visible, setVisible] = React.useState(initialVisible);\n const [backgroundViewColor, setBackgroundViewColor] = React.useState(defaultColor);\n\n const setBackgroundColor = (value: string) => {\n mergeStatusBarPropsRef({ backgroundColor: value });\n\n if (Platform.OS === 'android') {\n RNStatusBar.setBackgroundColor(value);\n }\n\n if (Platform.OS === 'ios') {\n setBackgroundViewColor(value);\n }\n };\n\n const setBarStyle = (value: StatusBarStyle, animated?: boolean) => {\n mergeStatusBarPropsRef({ barStyle: value });\n RNStatusBar.setBarStyle(value, animated);\n };\n\n const setHidden = (value: boolean) => {\n mergeStatusBarPropsRef({ hidden: value });\n\n if (Platform.OS === 'ios') {\n setVisible(!value);\n }\n\n RNStatusBar.setHidden(value);\n };\n\n const setTranslucent = (value: boolean) => {\n mergeStatusBarPropsRef({ translucent: value });\n\n if (Platform.OS === 'android') {\n RNStatusBar.setTranslucent(value);\n }\n };\n\n const updateStatusBarProps = (statusBarProps: StatusBarProps) => {\n const {\n barStyle,\n animatedBarStyle,\n backgroundColor,\n hidden,\n translucent,\n } = statusBarProps;\n\n if (!R.isNil(barStyle)) {\n setBarStyle(barStyle, animatedBarStyle);\n }\n\n if (!R.isNil(backgroundColor)) {\n setBackgroundColor(backgroundColor);\n }\n\n if (!R.isNil(hidden)) {\n setHidden(hidden);\n }\n\n if (!R.isNil(translucent)) {\n setTranslucent(translucent);\n }\n };\n\n const restoreInitialStack = () => {\n if (statusBarPropsStackRef.current.length === 0) {\n return;\n }\n\n const initialStatusBar = statusBarPropsStackRef.current[0];\n updateStatusBarProps(initialStatusBar);\n\n statusBarPropsStackRef.current = [statusBarPropsStackRef.current[0]];\n };\n\n const clearStack = () => {\n statusBarPropsStackRef.current = new Array<StatusBarProps>();\n };\n\n const pushStack = (statusBarProps: StatusBarProps) => {\n updateStatusBarProps(statusBarProps);\n statusBarPropsStackRef.current.push(currentStatusBarPropsRef.current);\n };\n\n const replaceStack = (statusBarProps: StatusBarProps) => {\n if (statusBarPropsStackRef.current.length === 0) {\n return;\n }\n\n updateStatusBarProps(statusBarProps);\n statusBarPropsStackRef.current[statusBarPropsStackRef.current.length - 1] = currentStatusBarPropsRef.current;\n };\n\n const popStack = () => {\n if (statusBarPropsStackRef.current.length === 0) {\n return;\n }\n\n const prevStack = statusBarPropsStackRef.current.length >= 2\n ? statusBarPropsStackRef.current[statusBarPropsStackRef.current.length - 2]\n : undefined;\n\n statusBarPropsStackRef.current.pop();\n\n if (R.isNil(prevStack)) {\n return;\n }\n\n updateStatusBarProps(prevStack);\n };\n\n const getCurrentStatusBarProps = () => currentStatusBarPropsRef.current;\n\n const shouldRenderBackgroundView = Platform.OS === 'ios' && visible;\n\n const inset = useSafeAreaInsets();\n const backgroundViewStyle = css([\n {\n backgroundColor: backgroundViewColor,\n height: inset.top,\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n zIndex: theme.zIndex.statusBar,\n },\n ]);\n\n return (\n <Provider value={{\n setBackgroundColor,\n setBarStyle,\n setHidden,\n setTranslucent,\n pushStack,\n popStack,\n replaceStack,\n getCurrentStatusBarProps,\n restoreInitialStack,\n clearStack,\n }}>\n {shouldRenderBackgroundView ? (\n <View style={backgroundViewStyle}/>\n ) : null}\n {children}\n </Provider>\n );\n}"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,MAAhB,QAA8B,OAA9B;AAEA,SAASC,QAAT,EAAmBC,SAAS,IAAIC,WAAhC,EAA6CC,IAA7C,QAAyD,cAAzD;AACA,OAAO,KAAKC,CAAZ,MAAmB,OAAnB;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AACA,SAASC,QAAT,QAAyB,mBAAzB;AACA,SAASC,GAAT,QAAoB,qBAApB;AACA,OAAOC,QAAP,MAAqB,YAArB;AAIA,MAAMC,cAAc,GAAGT,QAAQ,CAACU,MAAT,CAAgB;EACnCC,GAAG,EAAE,IAD8B;EAEnCC,OAAO,EAAE;AAF0B,CAAhB,CAAvB;AAKA,eAAe,SAASC,iBAAT,CAA2BC,KAA3B,EAA0D;EACrE,MAAM;IAAEC;EAAF,IAAeD,KAArB;EAEA,MAAME,wBAAwB,GAAGjB,MAAM,CAAsB,EAAtB,CAAvC;EAEA,MAAMkB,0BAA0B,GAAG,IAAIC,KAAJ,EAAnC;EACA,MAAMC,sBAAsB,GAAGpB,MAAM,CAACkB,0BAAD,CAArC;;EAEA,MAAMG,sBAAsB,GAAIN,KAAD,IAA2B;IACtDE,wBAAwB,CAACK,OAAzB,GAAmC,EAC/B,GAAGL,wBAAwB,CAACK,OADG;MAE/B,GAAGP;IAF4B,CAAnC;EAIH,CALD;;EAOA,MAAMQ,KAAK,GAAGhB,QAAQ,EAAtB;EACA,MAAMiB,YAAY,GAAGD,KAAK,CAACE,OAAN,CAAcC,UAAd,CAAyBC,OAA9C;EAEA,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwB9B,KAAK,CAAC+B,QAAN,CAAepB,cAAf,CAA9B;EACA,MAAM,CAACqB,mBAAD,EAAsBC,sBAAtB,IAAgDjC,KAAK,CAAC+B,QAAN,CAAeN,YAAf,CAAtD;;EAEA,MAAMS,kBAAkB,GAAIC,KAAD,IAAmB;IAC1Cb,sBAAsB,CAAC;MAAEc,eAAe,EAAED;IAAnB,CAAD,CAAtB;;IAEA,IAAIjC,QAAQ,CAACmC,EAAT,KAAgB,SAApB,EAA+B;MAC3BjC,WAAW,CAAC8B,kBAAZ,CAA+BC,KAA/B;IACH;;IAED,IAAIjC,QAAQ,CAACmC,EAAT,KAAgB,KAApB,EAA2B;MACvBJ,sBAAsB,CAACE,KAAD,CAAtB;IACH;EACJ,CAVD;;EAYA,MAAMG,WAAW,GAAG,CAACH,KAAD,EAAwBI,QAAxB,KAA+C;IAC/DjB,sBAAsB,CAAC;MAAEkB,QAAQ,EAAEL;IAAZ,CAAD,CAAtB;IACA/B,WAAW,CAACkC,WAAZ,CAAwBH,KAAxB,EAA+BI,QAA/B;EACH,CAHD;;EAKA,MAAME,SAAS,GAAIN,KAAD,IAAoB;IAClCb,sBAAsB,CAAC;MAAEoB,MAAM,EAAEP;IAAV,CAAD,CAAtB;;IAEA,IAAIjC,QAAQ,CAACmC,EAAT,KAAgB,KAApB,EAA2B;MACvBP,UAAU,CAAC,CAACK,KAAF,CAAV;IACH;;IAED/B,WAAW,CAACqC,SAAZ,CAAsBN,KAAtB;EACH,CARD;;EAUA,MAAMQ,cAAc,GAAIR,KAAD,IAAoB;IACvCb,sBAAsB,CAAC;MAAEsB,WAAW,EAAET;IAAf,CAAD,CAAtB;;IAEA,IAAIjC,QAAQ,CAACmC,EAAT,KAAgB,SAApB,EAA+B;MAC3BjC,WAAW,CAACuC,cAAZ,CAA2BR,KAA3B;IACH;EACJ,CAND;;EAQA,MAAMU,oBAAoB,GAAIC,cAAD,IAAoC;IAC7D,MAAM;MACFN,QADE;MAEFO,gBAFE;MAGFX,eAHE;MAIFM,MAJE;MAKFE;IALE,IAMFE,cANJ;;IAQA,IAAI,CAACxC,CAAC,CAAC0C,KAAF,CAAQR,QAAR,CAAL,EAAwB;MACpBF,WAAW,CAACE,QAAD,EAAWO,gBAAX,CAAX;IACH;;IAED,IAAI,CAACzC,CAAC,CAAC0C,KAAF,CAAQZ,eAAR,CAAL,EAA+B;MAC3BF,kBAAkB,CAACE,eAAD,CAAlB;IACH;;IAED,IAAI,CAAC9B,CAAC,CAAC0C,KAAF,CAAQN,MAAR,CAAL,EAAsB;MAClBD,SAAS,CAACC,MAAD,CAAT;IACH;;IAED,IAAI,CAACpC,CAAC,CAAC0C,KAAF,CAAQJ,WAAR,CAAL,EAA2B;MACvBD,cAAc,CAACC,WAAD,CAAd;IACH;EACJ,CAxBD;;EA0BA,MAAMK,mBAAmB,GAAG,MAAM;IAC9B,IAAI5B,sBAAsB,CAACE,OAAvB,CAA+B2B,MAA/B,KAA0C,CAA9C,EAAiD;MAC7C;IACH;;IAED,MAAMC,gBAAgB,GAAG9B,sBAAsB,CAACE,OAAvB,CAA+B,CAA/B,CAAzB;IACAsB,oBAAoB,CAACM,gBAAD,CAApB;IAEA9B,sBAAsB,CAACE,OAAvB,GAAiC,CAACF,sBAAsB,CAACE,OAAvB,CAA+B,CAA/B,CAAD,CAAjC;EACH,CATD;;EAWA,MAAM6B,UAAU,GAAG,MAAM;IACrB/B,sBAAsB,CAACE,OAAvB,GAAiC,IAAIH,KAAJ,EAAjC;EACH,CAFD;;EAIA,MAAMiC,SAAS,GAAIP,cAAD,IAAoC;IAClDD,oBAAoB,CAACC,cAAD,CAApB;IACAzB,sBAAsB,CAACE,OAAvB,CAA+B+B,IAA/B,CAAoCpC,wBAAwB,CAACK,OAA7D;EACH,CAHD;;EAKA,MAAMgC,YAAY,GAAIT,cAAD,IAAoC;IACrD,IAAIzB,sBAAsB,CAACE,OAAvB,CAA+B2B,MAA/B,KAA0C,CAA9C,EAAiD;MAC7C;IACH;;IAEDL,oBAAoB,CAACC,cAAD,CAApB;IACAzB,sBAAsB,CAACE,OAAvB,CAA+BF,sBAAsB,CAACE,OAAvB,CAA+B2B,MAA/B,GAAwC,CAAvE,IAA4EhC,wBAAwB,CAACK,OAArG;EACH,CAPD;;EASA,MAAMiC,QAAQ,GAAG,MAAM;IACnB,IAAInC,sBAAsB,CAACE,OAAvB,CAA+B2B,MAA/B,KAA0C,CAA9C,EAAiD;MAC7C;IACH;;IAED,MAAMO,SAAS,GAAGpC,sBAAsB,CAACE,OAAvB,CAA+B2B,MAA/B,IAAyC,CAAzC,GACZ7B,sBAAsB,CAACE,OAAvB,CAA+BF,sBAAsB,CAACE,OAAvB,CAA+B2B,MAA/B,GAAwC,CAAvE,CADY,GAEZQ,SAFN;IAIArC,sBAAsB,CAACE,OAAvB,CAA+BoC,GAA/B;;IAEA,IAAIrD,CAAC,CAAC0C,KAAF,CAAQS,SAAR,CAAJ,EAAwB;MACpB;IACH;;IAEDZ,oBAAoB,CAACY,SAAD,CAApB;EACH,CAhBD;;EAkBA,MAAMG,wBAAwB,GAAG,MAAM1C,wBAAwB,CAACK,OAAhE;;EAEA,MAAMsC,0BAA0B,GAAG3D,QAAQ,CAACmC,EAAT,KAAgB,KAAhB,IAAyBR,OAA5D;EAEA,MAAMiC,KAAK,GAAGvD,iBAAiB,EAA/B;EACA,MAAMwD,mBAAmB,GAAGtD,GAAG,CAAC,CAC5B;IACI2B,eAAe,EAAEJ,mBADrB;IAEIgC,MAAM,EAAEF,KAAK,CAACG,GAFlB;IAGIC,IAAI,EAAE,CAHV;IAIIC,QAAQ,EAAE,UAJd;IAKIC,KAAK,EAAE,CALX;IAMIH,GAAG,EAAE,CANT;IAOII,MAAM,EAAE7C,KAAK,CAAC6C,MAAN,CAAaC;EAPzB,CAD4B,CAAD,CAA/B;EAYA,oBACI,oBAAC,QAAD;IAAU,KAAK,EAAE;MACbpC,kBADa;MAEbI,WAFa;MAGbG,SAHa;MAIbE,cAJa;MAKbU,SALa;MAMbG,QANa;MAObD,YAPa;MAQbK,wBARa;MASbX,mBATa;MAUbG;IAVa;EAAjB,GAYKS,0BAA0B,gBACvB,oBAAC,IAAD;IAAM,KAAK,EAAEE;EAAb,EADuB,GAEvB,IAdR,EAeK9C,QAfL,CADJ;AAmBH"}
|
|
1
|
+
{"version":3,"names":["React","useRef","Platform","StatusBar","RNStatusBar","View","R","useSafeAreaInsets","useTheme","css","Provider","initialVisible","select","ios","android","StatusBarProvider","props","children","currentStatusBarPropsRef","initialStatusBarPropsStack","Array","statusBarPropsStackRef","mergeStatusBarPropsRef","current","theme","defaultColor","palette","background","base","visible","setVisible","useState","backgroundViewColor","setBackgroundViewColor","setBackgroundColor","value","backgroundColor","OS","setBarStyle","animated","barStyle","setHidden","hidden","setTranslucent","translucent","updateStatusBarProps","statusBarProps","animatedBarStyle","isNil","restoreInitialStack","length","initialStatusBar","clearStack","pushStack","push","replaceStack","popStack","prevStack","undefined","pop","getCurrentStatusBarProps","shouldRenderBackgroundView","inset","backgroundViewStyle","height","top","left","position","right","zIndex","statusBar"],"sources":["StatusBarProvider.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport type { StatusBarStyle } from 'react-native';\nimport { Platform, StatusBar as RNStatusBar, View } from 'react-native';\nimport * as R from 'ramda';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { useTheme } from '@fountain-ui/core';\nimport { css } from '@fountain-ui/styles';\nimport Provider from './Provider';\nimport type { StatusBarProps } from './Provider';\nimport type StatusBarProviderProps from './StatusBarProviderProps';\n\nconst initialVisible = Platform.select({\n ios: true,\n android: false,\n});\n\nexport default function StatusBarProvider(props: StatusBarProviderProps) {\n const { children } = props;\n\n const currentStatusBarPropsRef = useRef<StatusBarProps | {}>({});\n\n const initialStatusBarPropsStack = new Array<StatusBarProps>();\n const statusBarPropsStackRef = useRef(initialStatusBarPropsStack);\n\n const mergeStatusBarPropsRef = (props: StatusBarProps) => {\n currentStatusBarPropsRef.current = {\n ...currentStatusBarPropsRef.current,\n ...props,\n };\n };\n\n const theme = useTheme();\n const defaultColor = theme.palette.background.base;\n\n const [visible, setVisible] = React.useState(initialVisible);\n const [backgroundViewColor, setBackgroundViewColor] = React.useState(defaultColor);\n\n const setBackgroundColor = (value: string) => {\n mergeStatusBarPropsRef({ backgroundColor: value });\n\n if (Platform.OS === 'android') {\n RNStatusBar.setBackgroundColor(value);\n }\n\n if (Platform.OS === 'ios') {\n setBackgroundViewColor(value);\n }\n };\n\n const setBarStyle = (value: StatusBarStyle, animated?: boolean) => {\n mergeStatusBarPropsRef({ barStyle: value });\n RNStatusBar.setBarStyle(value, animated);\n };\n\n const setHidden = (value: boolean) => {\n mergeStatusBarPropsRef({ hidden: value });\n\n if (Platform.OS === 'ios') {\n setVisible(!value);\n }\n\n RNStatusBar.setHidden(value);\n };\n\n const setTranslucent = (value: boolean) => {\n mergeStatusBarPropsRef({ translucent: value });\n\n if (Platform.OS === 'android') {\n RNStatusBar.setTranslucent(value);\n }\n };\n\n const updateStatusBarProps = (statusBarProps: StatusBarProps) => {\n const {\n barStyle,\n animatedBarStyle,\n backgroundColor,\n hidden,\n translucent,\n } = statusBarProps;\n\n if (!R.isNil(barStyle)) {\n setBarStyle(barStyle, animatedBarStyle);\n }\n\n if (!R.isNil(backgroundColor)) {\n setBackgroundColor(backgroundColor);\n }\n\n if (!R.isNil(hidden)) {\n setHidden(hidden);\n }\n\n if (!R.isNil(translucent)) {\n setTranslucent(translucent);\n }\n };\n\n const restoreInitialStack = () => {\n if (statusBarPropsStackRef.current.length === 0) {\n return;\n }\n\n const initialStatusBar = statusBarPropsStackRef.current[0];\n updateStatusBarProps(initialStatusBar);\n\n statusBarPropsStackRef.current = [statusBarPropsStackRef.current[0]];\n };\n\n const clearStack = () => {\n statusBarPropsStackRef.current = new Array<StatusBarProps>();\n };\n\n const pushStack = (statusBarProps: StatusBarProps) => {\n updateStatusBarProps(statusBarProps);\n statusBarPropsStackRef.current.push(currentStatusBarPropsRef.current);\n };\n\n const replaceStack = (statusBarProps: StatusBarProps) => {\n if (statusBarPropsStackRef.current.length === 0) {\n return;\n }\n\n updateStatusBarProps(statusBarProps);\n statusBarPropsStackRef.current[statusBarPropsStackRef.current.length - 1] = currentStatusBarPropsRef.current;\n };\n\n const popStack = () => {\n if (statusBarPropsStackRef.current.length === 0) {\n return;\n }\n\n const prevStack = statusBarPropsStackRef.current.length >= 2\n ? statusBarPropsStackRef.current[statusBarPropsStackRef.current.length - 2]\n : undefined;\n\n statusBarPropsStackRef.current.pop();\n\n if (R.isNil(prevStack)) {\n return;\n }\n\n updateStatusBarProps(prevStack);\n };\n\n const getCurrentStatusBarProps = () => currentStatusBarPropsRef.current;\n\n const shouldRenderBackgroundView = Platform.OS === 'ios' && visible;\n\n const inset = useSafeAreaInsets();\n const backgroundViewStyle = css([\n {\n backgroundColor: backgroundViewColor,\n height: inset.top,\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n zIndex: theme.zIndex.statusBar,\n },\n ]);\n\n return (\n <Provider value={{\n setBackgroundColor,\n setBarStyle,\n setHidden,\n setTranslucent,\n pushStack,\n popStack,\n replaceStack,\n getCurrentStatusBarProps,\n restoreInitialStack,\n clearStack,\n }}>\n {shouldRenderBackgroundView ? (\n <View style={backgroundViewStyle}/>\n ) : null}\n {children}\n </Provider>\n );\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fountain-ui/lab",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.14",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Fountain-UI Team",
|
|
6
6
|
"description": "Incubator for Fountain-UI React components.",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"publishConfig": {
|
|
72
72
|
"access": "public"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "5ddf3c13c461c1e0909a2ff27e5272dbf0d357a3"
|
|
75
75
|
}
|
|
@@ -30,7 +30,7 @@ export default function StatusBarProvider(props: StatusBarProviderProps) {
|
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
const theme = useTheme();
|
|
33
|
-
const defaultColor = theme.palette.background.
|
|
33
|
+
const defaultColor = theme.palette.background.base;
|
|
34
34
|
|
|
35
35
|
const [visible, setVisible] = React.useState(initialVisible);
|
|
36
36
|
const [backgroundViewColor, setBackgroundViewColor] = React.useState(defaultColor);
|
|
@@ -179,4 +179,4 @@ export default function StatusBarProvider(props: StatusBarProviderProps) {
|
|
|
179
179
|
{children}
|
|
180
180
|
</Provider>
|
|
181
181
|
);
|
|
182
|
-
}
|
|
182
|
+
}
|