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 ? (