diff --git a/apps/mobile/src/features/threads/PendingApprovalCard.tsx b/apps/mobile/src/features/threads/PendingApprovalCard.tsx
index caf9bd4cd0c..61b1f82d7b1 100644
--- a/apps/mobile/src/features/threads/PendingApprovalCard.tsx
+++ b/apps/mobile/src/features/threads/PendingApprovalCard.tsx
@@ -3,6 +3,7 @@ import { Pressable, View } from "react-native";
import { AppText as Text } from "../../components/AppText";
import type { PendingApproval } from "../../lib/threadActivity";
+import { PendingCardSurface } from "./PendingCardSurface";
export interface PendingApprovalCardProps {
readonly approval: PendingApproval;
@@ -15,7 +16,7 @@ export interface PendingApprovalCardProps {
export function PendingApprovalCard(props: PendingApprovalCardProps) {
return (
-
+
Approval needed
@@ -52,6 +53,6 @@ export function PendingApprovalCard(props: PendingApprovalCardProps) {
Decline
-
+
);
}
diff --git a/apps/mobile/src/features/threads/PendingCardSurface.tsx b/apps/mobile/src/features/threads/PendingCardSurface.tsx
new file mode 100644
index 00000000000..b1f0b443a8e
--- /dev/null
+++ b/apps/mobile/src/features/threads/PendingCardSurface.tsx
@@ -0,0 +1,35 @@
+import { isLiquidGlassSupported, LiquidGlassView } from "@callstack/liquid-glass";
+import type { ReactNode } from "react";
+import { useColorScheme, View, type ViewStyle } from "react-native";
+
+const SURFACE_STYLE: ViewStyle = {
+ borderRadius: 20,
+ overflow: "hidden",
+};
+
+export function PendingCardSurface(props: { readonly children: ReactNode }) {
+ const isDarkMode = useColorScheme() === "dark";
+ const content = {props.children};
+
+ if (isLiquidGlassSupported) {
+ return (
+
+ {content}
+
+ );
+ }
+
+ return (
+
+ {content}
+
+ );
+}
diff --git a/apps/mobile/src/features/threads/PendingUserInputCard.tsx b/apps/mobile/src/features/threads/PendingUserInputCard.tsx
index 4d2c2c84159..605081507cb 100644
--- a/apps/mobile/src/features/threads/PendingUserInputCard.tsx
+++ b/apps/mobile/src/features/threads/PendingUserInputCard.tsx
@@ -4,6 +4,7 @@ import { Pressable, View } from "react-native";
import { AppText as Text, AppTextInput as TextInput } from "../../components/AppText";
import { cn } from "../../lib/cn";
import type { PendingUserInput, PendingUserInputDraftAnswer } from "../../lib/threadActivity";
+import { PendingCardSurface } from "./PendingCardSurface";
export interface PendingUserInputCardProps {
readonly pendingUserInput: PendingUserInput;
@@ -25,7 +26,7 @@ export interface PendingUserInputCardProps {
export function PendingUserInputCard(props: PendingUserInputCardProps) {
return (
-
+
User input needed
@@ -100,6 +101,6 @@ export function PendingUserInputCard(props: PendingUserInputCardProps) {
>
Submit answers
-
+
);
}
diff --git a/apps/mobile/src/features/threads/ThreadDetailScreen.tsx b/apps/mobile/src/features/threads/ThreadDetailScreen.tsx
index 5cb04290f66..68d2ee8d2b7 100644
--- a/apps/mobile/src/features/threads/ThreadDetailScreen.tsx
+++ b/apps/mobile/src/features/threads/ThreadDetailScreen.tsx
@@ -1,3 +1,4 @@
+import { isLiquidGlassSupported } from "@callstack/liquid-glass";
import { type EnvironmentConnectionPhase } from "@t3tools/client-runtime/connection";
import type { EnvironmentThreadStatus } from "@t3tools/client-runtime/state/threads";
import { useKeyboardChatComposerInset, useKeyboardScrollToEnd } from "@legendapp/list/keyboard";
@@ -391,7 +392,7 @@ export const ThreadDetailScreen = memo(function ThreadDetailScreen(props: Thread
{props.activePendingApproval || props.activePendingUserInput ? (
{props.activePendingApproval ? (