62 lines
1.5 KiB
TypeScript
62 lines
1.5 KiB
TypeScript
import React from 'react'
|
|
import {StyleSheet, TextProps} from 'react-native'
|
|
import Svg, {
|
|
Defs,
|
|
LinearGradient,
|
|
Path,
|
|
PathProps,
|
|
Stop,
|
|
SvgProps,
|
|
} from 'react-native-svg'
|
|
import {Image} from 'expo-image'
|
|
|
|
import {colors} from '#/lib/styles'
|
|
import {useKawaiiMode} from '#/state/preferences/kawaii'
|
|
|
|
const ratio = 57 / 64
|
|
|
|
type Props = {
|
|
fill?: PathProps['fill']
|
|
style?: TextProps['style']
|
|
} & Omit<SvgProps, 'style'>
|
|
|
|
export const Logo = React.forwardRef(function LogoImpl(props: Props, ref) {
|
|
const {fill, ...rest} = props
|
|
const gradient = fill === 'sky'
|
|
const styles = StyleSheet.flatten(props.style)
|
|
const _fill = gradient ? 'url(#sky)' : fill || styles?.color || colors.blue3
|
|
// @ts-ignore it's fiiiiine
|
|
const size = parseInt(rest.width || 32)
|
|
|
|
const isKawaii = useKawaiiMode()
|
|
|
|
if (isKawaii) {
|
|
return (
|
|
<Image
|
|
source={
|
|
size > 100
|
|
? require('../../../assets/kawaii.png')
|
|
: require('../../../assets/kawaii_smol.png')
|
|
}
|
|
accessibilityLabel="Bluesky"
|
|
accessibilityHint=""
|
|
accessibilityIgnoresInvertColors
|
|
style={[{height: size, aspectRatio: 1.4}]}
|
|
/>
|
|
)
|
|
}
|
|
|
|
return (
|
|
<Image
|
|
source={
|
|
size > 100
|
|
? require('../../../assets/zio.png')
|
|
: require('../../../assets/zio_smol.png')
|
|
}
|
|
accessibilityLabel="Zio Blue"
|
|
accessibilityHint=""
|
|
accessibilityIgnoresInvertColors
|
|
style={[{height: size, aspectRatio: 1}]}
|
|
/>
|
|
)
|
|
})
|