about summary refs log tree commit diff
path: root/src/view/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/com')
-rw-r--r--src/view/com/modals/AltImage.tsx10
-rw-r--r--src/view/com/util/Alert.tsx1
-rw-r--r--src/view/com/util/Alert.web.tsx23
3 files changed, 30 insertions, 4 deletions
diff --git a/src/view/com/modals/AltImage.tsx b/src/view/com/modals/AltImage.tsx
index 987df1462..e6e2ed831 100644
--- a/src/view/com/modals/AltImage.tsx
+++ b/src/view/com/modals/AltImage.tsx
@@ -12,7 +12,7 @@ import LinearGradient from 'react-native-linear-gradient'
 import {useStores} from 'state/index'
 import {isDesktopWeb} from 'platform/detection'
 
-export const snapPoints = [330]
+export const snapPoints = ['80%']
 
 interface Props {
   onAltTextSet: (altText?: string | undefined) => void
@@ -34,7 +34,9 @@ export function Component({onAltTextSet}: Props) {
   }
 
   return (
-    <View testID="altTextImageModal" style={[pal.view, styles.container]}>
+    <View
+      testID="altTextImageModal"
+      style={[pal.view, styles.container, s.flex1]}>
       <Text style={[styles.title, pal.text]}>Add alt text</Text>
       <TextInput
         testID="altTextImageInput"
@@ -73,9 +75,9 @@ export function Component({onAltTextSet}: Props) {
 const styles = StyleSheet.create({
   container: {
     gap: 18,
-    bottom: 0,
-    paddingVertical: 18,
+    paddingVertical: isDesktopWeb ? 0 : 18,
     paddingHorizontal: isDesktopWeb ? 0 : 12,
+    height: '100%',
     width: '100%',
   },
   title: {
diff --git a/src/view/com/util/Alert.tsx b/src/view/com/util/Alert.tsx
new file mode 100644
index 000000000..e91640dcd
--- /dev/null
+++ b/src/view/com/util/Alert.tsx
@@ -0,0 +1 @@
+export {Alert} from 'react-native'
diff --git a/src/view/com/util/Alert.web.tsx b/src/view/com/util/Alert.web.tsx
new file mode 100644
index 000000000..94ccc7e43
--- /dev/null
+++ b/src/view/com/util/Alert.web.tsx
@@ -0,0 +1,23 @@
+import {AlertButton, AlertStatic} from 'react-native'
+
+class WebAlert implements Pick<AlertStatic, 'alert'> {
+  public alert(title: string, message?: string, buttons?: AlertButton[]): void {
+    if (buttons === undefined || buttons.length === 0) {
+      window.alert([title, message].filter(Boolean).join('\n'))
+      return
+    }
+
+    const result = window.confirm([title, message].filter(Boolean).join('\n'))
+
+    if (result === true) {
+      const confirm = buttons.find(({style}) => style !== 'cancel')
+      confirm?.onPress?.()
+      return
+    }
+
+    const cancel = buttons.find(({style}) => style === 'cancel')
+    cancel?.onPress?.()
+  }
+}
+
+export const Alert = new WebAlert()