diff options
| -rw-r--r-- | apps/mobile/app/dashboard/lists/new.tsx | 30 | ||||
| -rw-r--r-- | apps/mobile/components/ui/Toast.tsx | 49 |
2 files changed, 46 insertions, 33 deletions
diff --git a/apps/mobile/app/dashboard/lists/new.tsx b/apps/mobile/app/dashboard/lists/new.tsx index af51ed15..bada46f2 100644 --- a/apps/mobile/app/dashboard/lists/new.tsx +++ b/apps/mobile/app/dashboard/lists/new.tsx @@ -66,20 +66,22 @@ const NewListPage = () => { <View className="gap-2"> <Text className="text-sm text-muted-foreground">List Type</Text> <View className="flex flex-row gap-2"> - <Button - variant={listType === "manual" ? "primary" : "secondary"} - onPress={() => setListType("manual")} - className="flex-1" - > - <Text>Manual</Text> - </Button> - <Button - variant={listType === "smart" ? "primary" : "secondary"} - onPress={() => setListType("smart")} - className="flex-1" - > - <Text>Smart</Text> - </Button> + <View className="flex-1"> + <Button + variant={listType === "manual" ? "primary" : "secondary"} + onPress={() => setListType("manual")} + > + <Text>Manual</Text> + </Button> + </View> + <View className="flex-1"> + <Button + variant={listType === "smart" ? "primary" : "secondary"} + onPress={() => setListType("smart")} + > + <Text>Smart</Text> + </Button> + </View> </View> </View> diff --git a/apps/mobile/components/ui/Toast.tsx b/apps/mobile/components/ui/Toast.tsx index fd122c25..96323263 100644 --- a/apps/mobile/components/ui/Toast.tsx +++ b/apps/mobile/components/ui/Toast.tsx @@ -1,5 +1,6 @@ import { createContext, useContext, useEffect, useRef, useState } from "react"; -import { Animated, View } from "react-native"; +import { Animated, Platform, View } from "react-native"; +import { FullWindowOverlay } from "react-native-screens"; import { Text } from "@/components/ui/Text"; import { cn } from "@/lib/utils"; @@ -147,27 +148,37 @@ function ToastProvider({ setMessages((prev) => prev.filter((message) => message.id !== id)); }; + const content = ( + <View + className={cn("absolute left-0 right-0", { + "top-[45px]": position === "top", + "bottom-0": position === "bottom", + })} + > + {messages.map((message) => ( + <Toast + key={message.id} + id={message.id} + message={message.text} + variant={message.variant} + duration={message.duration} + showProgress={message.showProgress} + onHide={removeToast} + /> + ))} + </View> + ); + return ( <ToastContext.Provider value={{ toast, removeToast }}> {children} - <View - className={cn("absolute left-0 right-0", { - "top-[45px]": position === "top", - "bottom-0": position === "bottom", - })} - > - {messages.map((message) => ( - <Toast - key={message.id} - id={message.id} - message={message.text} - variant={message.variant} - duration={message.duration} - showProgress={message.showProgress} - onHide={removeToast} - /> - ))} - </View> + {/* Use FullWindowOverlay on iOS to ensure toasts appear above all content */} + {/* Platform specific implementation due to FullWindowOverlay being iOS-only */} + {Platform.OS === "ios" ? ( + <FullWindowOverlay>{content}</FullWindowOverlay> + ) : ( + content + )} </ToastContext.Provider> ); } |
