diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-05-25 21:17:11 -0500 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2023-05-25 21:17:11 -0500 |
commit | 7b6948e6171b448e271f0564efd1f186ccadb9b8 (patch) | |
tree | e0d1b6e9f9c863cbff53f8832fd55d03cb670a83 /src/view/com/util/load-latest/LoadLatestBtn.web.tsx | |
parent | 15c1b6ee157471807a723161066ba4ce5e12c0b5 (diff) | |
parent | e832352e9844002408b45291396a3c495be23276 (diff) | |
download | voidsky-7b6948e6171b448e271f0564efd1f186ccadb9b8.tar.zst |
Merge branch 'custom-algos' into main
Diffstat (limited to 'src/view/com/util/load-latest/LoadLatestBtn.web.tsx')
-rw-r--r-- | src/view/com/util/load-latest/LoadLatestBtn.web.tsx | 94 |
1 files changed, 70 insertions, 24 deletions
diff --git a/src/view/com/util/load-latest/LoadLatestBtn.web.tsx b/src/view/com/util/load-latest/LoadLatestBtn.web.tsx index 839685029..fefc540c0 100644 --- a/src/view/com/util/load-latest/LoadLatestBtn.web.tsx +++ b/src/view/com/util/load-latest/LoadLatestBtn.web.tsx @@ -1,8 +1,8 @@ import React from 'react' import {StyleSheet, TouchableOpacity} from 'react-native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {Text} from '../text/Text' import {usePalette} from 'lib/hooks/usePalette' -import {UpIcon} from 'lib/icons' import {LoadLatestBtn as LoadLatestBtnMobile} from './LoadLatestBtnMobile' import {isMobileWeb} from 'platform/detection' @@ -11,51 +11,97 @@ const HITSLOP = {left: 20, top: 20, right: 20, bottom: 20} export const LoadLatestBtn = ({ onPress, label, + showIndicator, + minimalShellMode, }: { onPress: () => void label: string + showIndicator: boolean + minimalShellMode?: boolean }) => { const pal = usePalette('default') if (isMobileWeb) { - return <LoadLatestBtnMobile onPress={onPress} label={label} /> + return ( + <LoadLatestBtnMobile + onPress={onPress} + label={label} + showIndicator={showIndicator} + /> + ) } return ( - <TouchableOpacity - style={[pal.view, pal.borderDark, styles.loadLatest]} - onPress={onPress} - hitSlop={HITSLOP} - accessibilityRole="button" - accessibilityLabel={`Load new ${label}`} - accessibilityHint=""> - <Text type="md-bold" style={pal.text}> - <UpIcon size={16} strokeWidth={1} style={[pal.text, styles.icon]} /> - Load new {label} - </Text> - </TouchableOpacity> + <> + {showIndicator && ( + <TouchableOpacity + style={[ + pal.view, + pal.borderDark, + styles.loadLatestCentered, + minimalShellMode && styles.loadLatestCenteredMinimal, + ]} + onPress={onPress} + hitSlop={HITSLOP} + accessibilityRole="button" + accessibilityLabel={label} + accessibilityHint=""> + <Text type="md-bold" style={pal.text}> + {label} + </Text> + </TouchableOpacity> + )} + <TouchableOpacity + style={[pal.view, pal.borderDark, styles.loadLatest]} + onPress={onPress} + hitSlop={HITSLOP} + accessibilityRole="button" + accessibilityLabel={label} + accessibilityHint=""> + <Text type="md-bold" style={pal.text}> + <FontAwesomeIcon + icon="angle-up" + size={21} + style={[pal.text, styles.icon]} + /> + </Text> + </TouchableOpacity> + </> ) } const styles = StyleSheet.create({ loadLatest: { flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', position: 'absolute', left: '50vw', // @ts-ignore web only -prf - transform: 'translateX(-50%)', - top: 60, - shadowColor: '#000', - shadowOpacity: 0.2, - shadowOffset: {width: 0, height: 2}, - shadowRadius: 4, - paddingLeft: 20, - paddingRight: 24, - paddingVertical: 10, + transform: 'translateX(-282px)', + bottom: 40, + width: 54, + height: 54, borderRadius: 30, borderWidth: 1, }, icon: { position: 'relative', top: 2, - marginRight: 5, + }, + loadLatestCentered: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + position: 'absolute', + left: '50vw', + // @ts-ignore web only -prf + transform: 'translateX(-50%)', + top: 60, + paddingHorizontal: 24, + paddingVertical: 14, + borderRadius: 30, + borderWidth: 1, + }, + loadLatestCenteredMinimal: { + top: 20, }, }) |