create-expo-stack 2.10.5-next.486a940 → 2.10.5-next.5eefd28

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.
@@ -2,12 +2,13 @@ import { forwardRef } from 'react';
2
2
  import { StyleSheet, Text, TouchableOpacity, TouchableOpacityProps } from 'react-native';
3
3
 
4
4
  type ButtonProps = {
5
+ onPress?: TouchableOpacityProps['onPress'];
5
6
  title?: string;
6
7
  } & TouchableOpacityProps;
7
8
 
8
- export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ title, ...touchableProps }, ref) => {
9
+ export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ onPress, title }, ref) => {
9
10
  return (
10
- <TouchableOpacity ref={ref} {...touchableProps} style={[styles.button, touchableProps.style]}>
11
+ <TouchableOpacity ref={ref} style={styles.button} onPress={onPress}>
11
12
  <Text style={styles.buttonText}>{title}</Text>
12
13
  </TouchableOpacity>
13
14
  );
@@ -1,13 +1,14 @@
1
1
  import { forwardRef } from 'react';
2
2
  import { Text, TouchableOpacity, TouchableOpacityProps } from 'react-native';
3
3
 
4
- type ButtonProps = {
4
+ interface ButtonProps extends TouchableOpacityProps {
5
+ onPress?: () => void;
5
6
  title: string;
6
- } & TouchableOpacityProps;
7
+ }
7
8
 
8
- export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ title, ...touchableProps }, ref) => {
9
+ export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ onPress, title }, ref) => {
9
10
  return (
10
- <TouchableOpacity ref={ref} {...touchableProps} className={`${styles.button} ${touchableProps.className}`}>
11
+ <TouchableOpacity ref={ref} className={styles.button} onPress={onPress}>
11
12
  <Text className={styles.buttonText}>{title}</Text>
12
13
  </TouchableOpacity>
13
14
  );
@@ -2,12 +2,13 @@ import { forwardRef } from 'react';
2
2
  import { StyleSheet, Text, TouchableOpacity, TouchableOpacityProps } from 'react-native';
3
3
 
4
4
  type ButtonProps = {
5
+ onPress?: TouchableOpacityProps['onPress'];
5
6
  title?: string;
6
7
  } & TouchableOpacityProps;
7
8
 
8
- export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ title, ...touchableProps }, ref) => {
9
+ export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ onPress, title }, ref) => {
9
10
  return (
10
- <TouchableOpacity ref={ref} {...touchableProps} style={[styles.button, touchableProps.style]}>
11
+ <TouchableOpacity ref={ref} style={styles.button} onPress={onPress}>
11
12
  <Text style={styles.buttonText}>{title}</Text>
12
13
  </TouchableOpacity>
13
14
  );
@@ -1,16 +1,12 @@
1
1
  import { forwardRef } from 'react';
2
- import { TouchableOpacity, TouchableOpacityProps } from 'react-native';
2
+ import { TouchableOpacity } from 'react-native';
3
3
  import { Text, makeStyles } from 'theme';
4
4
 
5
- type ButtonProps = {
6
- title?: string;
7
- } & TouchableOpacityProps;
8
-
9
- export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ title, ...touchableProps }, ref) => {
5
+ export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ onPress, title }, ref) => {
10
6
  const styles = useStyles();
11
7
 
12
8
  return (
13
- <TouchableOpacity ref={ref} {...touchableProps} style={[styles.button, touchableProps.style]}>
9
+ <TouchableOpacity style={styles.button} onPress={onPress}>
14
10
  <Text variant="body" textAlign="center" color="white" fontWeight="600">
15
11
  {title}
16
12
  </Text>
@@ -1,16 +1,10 @@
1
- import { ComponentProps, forwardRef } from 'react';
2
- import { TamaguiElement } from 'tamagui';
1
+ import { forwardRef } from 'react';
2
+ import { Button as TButton, ButtonText } from '../tamagui.config';
3
3
 
4
- import { Button as TButton } from '../tamagui.config';
5
-
6
- type ButtonProps = {
7
- title: string;
8
- } & ComponentProps<typeof TButton>;
9
-
10
- export const Button = forwardRef<TamaguiElement, ButtonProps>(({ title, ...tButtonProps }, ref) => {
4
+ export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ onPress, title }, ref) => {
11
5
  return (
12
- <TButton {...tButtonProps} ref={ref}>
13
- {title}
6
+ <TButton onPress={onPress}>
7
+ <ButtonText>{title}</ButtonText>
14
8
  </TButton>
15
9
  );
16
10
  });
@@ -4,7 +4,7 @@ import { createMedia } from "@tamagui/react-native-media-driver";
4
4
  import { shorthands } from "@tamagui/shorthands";
5
5
  import { themes, tokens } from "@tamagui/themes";
6
6
  <% if (props.navigationPackage?.type === "navigation") { %>
7
- import { createTamagui, styled, SizableText, H1, YStack, Button as ButtonTamagui } from "tamagui";
7
+ import { createTamagui, styled, SizableText, H1, YStack } from "tamagui";
8
8
  <% } else { %>
9
9
  import { createTamagui } from "tamagui";
10
10
  <% } %>
@@ -54,32 +54,33 @@ const bodyFont = createInterFont();
54
54
  color: '#38434D',
55
55
  size: '$9',
56
56
  });
57
-
58
- export const Button = styled(ButtonTamagui, {
59
- backgroundColor: '#6366F1',
60
- borderRadius: 28,
57
+ <% } %>
58
+ <% if (props.navigationPackage?.options.type === "stack") { %>
59
+ export const Button = styled(YStack, {
60
+ alignItems: 'center',
61
+ backgroundColor: '#6366F1',
62
+ borderRadius: 28,
61
63
  hoverStyle: {
62
- backgroundColor: '#5a5fcf',
63
- },
64
- pressStyle: {
65
- backgroundColor: '#5a5fcf',
66
- },
64
+ backgroundColor: '#5a5fcf',
65
+ },
66
+ justifyContent: 'center',
67
67
  maxWidth: 500,
68
+ padding: 16,
69
+ shadowColor: '#000',
70
+ shadowOffset: {
71
+ height: 2,
72
+ width: 0,
73
+ },
74
+ shadowOpacity: 0.25,
75
+ shadowRadius: 3.84,
76
+ });
68
77
 
69
- // Shaddows
70
- shadowColor: '#000',
71
- shadowOffset: {
72
- height: 2,
73
- width: 0,
74
- },
75
- shadowOpacity: 0.25,
76
- shadowRadius: 3.84,
77
-
78
- // Button text
79
- color: '#FFFFFF',
80
- fontWeight: '600', // Is not passed down to the text. Probably a bug in Tamagui: https://github.com/tamagui/tamagui/issues/1156#issuecomment-1802594930
81
- fontSize: 16,
82
- });
78
+ export const ButtonText = styled(SizableText, {
79
+ color: '#FFFFFF',
80
+ fontSize: 16,
81
+ fontWeight: '600',
82
+ textAlign: 'center',
83
+ });
83
84
  <% } %>
84
85
 
85
86
  const config = createTamagui({
@@ -1,17 +1,12 @@
1
1
  import { forwardRef } from 'react';
2
- import { Text, TouchableOpacity, TouchableOpacityProps } from 'react-native';
2
+ import { Text, TouchableOpacity } from 'react-native';
3
3
  import { useStyles } from 'react-native-unistyles';
4
4
 
5
- type ButtonProps = {
6
- title?: string;
7
- } & TouchableOpacityProps;
8
-
9
-
10
- export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ title, ...touchableProps }, ref) => {
5
+ export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ onPress, title }, ref) => {
11
6
  const { theme } = useStyles();
12
7
 
13
8
  return (
14
- <TouchableOpacity ref={ref} {...touchableProps} style={[theme.components.button, touchableProps.style]}>
9
+ <TouchableOpacity style={theme.components.button} onPress={onPress}>
15
10
  <Text style={theme.components.buttonText}>{title}</Text>
16
11
  </TouchableOpacity>
17
12
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-expo-stack",
3
- "version": "2.10.5-next.486a940",
3
+ "version": "2.10.5-next.5eefd28",
4
4
  "description": "CLI tool to initialize a React Native application with Expo",
5
5
  "repository": {
6
6
  "type": "git",