Add Sign in with Apple sorta
This commit is contained in:
		
							
								
								
									
										64
									
								
								components/theme/default/ThemedText.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								components/theme/default/ThemedText.tsx
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
import { type ViewProps } from 'react-native';
 | 
			
		||||
import { Text, type TextProps, StyleSheet } from 'react-native';
 | 
			
		||||
import { useThemeColor } from '@/hooks/useThemeColor';
 | 
			
		||||
 | 
			
		||||
export type ThemedViewProps = ViewProps & {
 | 
			
		||||
  lightColor?: string;
 | 
			
		||||
  darkColor?: string;
 | 
			
		||||
};
 | 
			
		||||
export type ThemedTextProps = TextProps & {
 | 
			
		||||
  lightColor?: string;
 | 
			
		||||
  darkColor?: string;
 | 
			
		||||
  type?: 'default' | 'title' | 'defaultSemiBold' | 'subtitle' | 'link';
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const ThemedText = ({
 | 
			
		||||
  style,
 | 
			
		||||
  lightColor,
 | 
			
		||||
  darkColor,
 | 
			
		||||
  type = 'default',
 | 
			
		||||
  ...rest
 | 
			
		||||
}: ThemedTextProps) => {
 | 
			
		||||
  const color = useThemeColor({ light: lightColor, dark: darkColor }, 'text');
 | 
			
		||||
  return (
 | 
			
		||||
    <Text
 | 
			
		||||
      style={[
 | 
			
		||||
        { color },
 | 
			
		||||
        type === 'default' ? styles.default : undefined,
 | 
			
		||||
        type === 'title' ? styles.title : undefined,
 | 
			
		||||
        type === 'defaultSemiBold' ? styles.defaultSemiBold : undefined,
 | 
			
		||||
        type === 'subtitle' ? styles.subtitle : undefined,
 | 
			
		||||
        type === 'link' ? styles.link : undefined,
 | 
			
		||||
        style,
 | 
			
		||||
      ]}
 | 
			
		||||
      {...rest}
 | 
			
		||||
    />
 | 
			
		||||
  );
 | 
			
		||||
};
 | 
			
		||||
export default ThemedText;
 | 
			
		||||
 | 
			
		||||
const styles = StyleSheet.create({
 | 
			
		||||
  default: {
 | 
			
		||||
    fontSize: 16,
 | 
			
		||||
    lineHeight: 24,
 | 
			
		||||
  },
 | 
			
		||||
  defaultSemiBold: {
 | 
			
		||||
    fontSize: 16,
 | 
			
		||||
    lineHeight: 24,
 | 
			
		||||
    fontWeight: '600',
 | 
			
		||||
  },
 | 
			
		||||
  title: {
 | 
			
		||||
    fontSize: 32,
 | 
			
		||||
    fontWeight: 'bold',
 | 
			
		||||
    lineHeight: 32,
 | 
			
		||||
  },
 | 
			
		||||
  subtitle: {
 | 
			
		||||
    fontSize: 20,
 | 
			
		||||
    fontWeight: 'bold',
 | 
			
		||||
  },
 | 
			
		||||
  link: {
 | 
			
		||||
    lineHeight: 30,
 | 
			
		||||
    fontSize: 16,
 | 
			
		||||
    color: '#0a7ea4',
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										13
									
								
								components/theme/default/ThemedView.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								components/theme/default/ThemedView.tsx
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
import { View, type ViewProps } from 'react-native';
 | 
			
		||||
import { useThemeColor } from '@/hooks/useThemeColor';
 | 
			
		||||
 | 
			
		||||
export type ThemedViewProps = ViewProps & {
 | 
			
		||||
  lightColor?: string;
 | 
			
		||||
  darkColor?: string;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const ThemedView = ({ style, lightColor, darkColor, ...otherProps }: ThemedViewProps) => {
 | 
			
		||||
  const backgroundColor = useThemeColor({ light: lightColor, dark: darkColor }, 'background');
 | 
			
		||||
  return <View style={[{ backgroundColor }, style]} {...otherProps} />;
 | 
			
		||||
};
 | 
			
		||||
export default ThemedView;
 | 
			
		||||
		Reference in New Issue
	
	Block a user