aboutsummaryrefslogtreecommitdiffstats
path: root/apps/mobile/components/ui
diff options
context:
space:
mode:
authorsergio <33748103+colado@users.noreply.github.com>2025-12-30 11:07:22 +0200
committerGitHub <noreply@github.com>2025-12-30 09:07:22 +0000
commita43d375f55ff3523450001b4dbcf34808519dfb9 (patch)
treeb0177c80f3b4ebd33800d9f818d7abe9bd318014 /apps/mobile/components/ui
parent9d6b1282b199550e8531fa227fce048632ca6f2d (diff)
downloadkarakeep-a43d375f55ff3523450001b4dbcf34808519dfb9.tar.zst
fix(mobile): mobile modal UI issues (#2320)
* fix(mobile): Make list type selector visible on Android * fix(mobile): Add native iOS overlay on Toast
Diffstat (limited to 'apps/mobile/components/ui')
-rw-r--r--apps/mobile/components/ui/Toast.tsx49
1 files changed, 30 insertions, 19 deletions
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>
);
}