瀏覽代碼

fixers website fix

Viktoriia 10 月之前
父節點
當前提交
c6fc1c8c7f

+ 1 - 1
src/screens/InAppScreens/TravelsScreen/AddNewFixerScreen/index.tsx

@@ -37,7 +37,7 @@ const NewFixerSchema = yup.object().shape({
     .required('country is required'),
   name: yup.string().required('name is required'),
   email: yup.string().email('invalid email format'),
-  website: yup.string().url('invalid URL format').required('website is required'),
+  website: yup.string(),
   comment: yup
     .string()
     .required('comment is required')

+ 11 - 2
src/screens/InAppScreens/TravelsScreen/Components/FixerItem/index.tsx

@@ -57,6 +57,15 @@ const FixerItem = ({
     );
   };
 
+  const openURLWithPrefix = async (url: string) => {
+    const prefixedURL = url.startsWith('http://') || url.startsWith('https://') ? url : `http://${url}`;
+    const supported = await Linking.canOpenURL(prefixedURL);
+  
+    if (supported) {
+      Linking.openURL(prefixedURL);
+    }
+  };
+
   return (
     <View style={styles.fixerItemContainer}>
       <View style={styles.fixerHeaderContainer}>
@@ -114,8 +123,8 @@ const FixerItem = ({
         {item.web && (
           <View style={styles.rowContent}>
             <Text style={styles.labelText}>Website:</Text>
-            <TouchableOpacity style={{ flex: 4 }} onPress={() => Linking.openURL(item.web)}>
-              <Text style={[styles.linkText]}>{item.web}</Text>
+            <TouchableOpacity style={{ flex: 4 }} onPress={() => openURLWithPrefix(item.web)}>
+              <Text style={[styles.linkText]} selectable>{item.web}</Text>
             </TouchableOpacity>
           </View>
         )}