From 38c22139bb191f0ad27b11c16776e93504ddd4fd Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Sun, 6 Sep 2026 13:48:29 +0200 Subject: [PATCH] Let plugins control modal layout, scrolling and clipboard actions (#4392) * feat(plugins): support modal body layout, scrolling and clipboard actions * fix(app): keep native scroll dependencies out of web imports * fix(nix): sync dependency hash for plugin native types * test(plugins): express modal QA as user journeys --- docs/plugins.md | 3 +- nix/npm-deps.hash | 2 +- package-lock.json | 7 + .../app/e2e/browser/plugin-modal-body.spec.ts | 163 ++++++++++++++ .../adaptive-modal-sheet-layout.test.ts | 16 +- .../components/adaptive-modal-sheet-layout.ts | 8 +- .../src/components/adaptive-modal-sheet.tsx | 125 ++++++----- packages/app/src/components/model-browser.tsx | 11 +- .../{text-input => }/bottom-sheet-scope.tsx | 2 +- .../index.test.tsx | 2 +- .../ui/isolated-bottom-sheet-modal/index.tsx | 6 +- .../app/src/components/ui/scroll-view.tsx | 61 ++++++ .../app/src/components/ui/scroll-view.web.tsx | 3 + .../components/ui/scrollable-code-surface.tsx | 41 ++-- .../components/ui/text-input/sheet-aware.tsx | 24 ++ .../ui/text-input/text-input.native.test.tsx | 6 +- .../ui/text-input/text-input.native.tsx | 2 +- .../app/src/plugins/react-native/clipboard.ts | 6 + .../src/plugins/react-native/clipboard.web.ts | 6 + .../app/src/plugins/react-native/modal.tsx | 11 +- .../app/src/plugins/react-native/runtime.ts | 14 +- .../src/plugins/react-native/scroll-view.tsx | 25 +++ .../src/plugins/react-native/text-input.tsx | 12 + packages/plugin/package.json | 7 + packages/plugin/src/react-native.ts | 41 +++- plugin-examples/modal-ui/README.md | 26 +++ plugin-examples/modal-ui/client/examples.tsx | 205 ++++++++++++++++++ plugin-examples/modal-ui/index.client.tsx | 21 ++ plugin-examples/modal-ui/paseo-plugin.json | 3 + .../screenshots/android-copy-paste.png | Bin 0 -> 79035 bytes .../screenshots/android-wide-custom-inset.png | Bin 0 -> 70900 bytes .../modal-ui/screenshots/web-custom-inset.png | Bin 0 -> 53973 bytes public-docs/plugins/v0.8/reference.md | 86 +++++++- 33 files changed, 822 insertions(+), 123 deletions(-) create mode 100644 packages/app/e2e/browser/plugin-modal-body.spec.ts rename packages/app/src/components/ui/{text-input => }/bottom-sheet-scope.tsx (79%) create mode 100644 packages/app/src/components/ui/scroll-view.tsx create mode 100644 packages/app/src/components/ui/scroll-view.web.tsx create mode 100644 packages/app/src/components/ui/text-input/sheet-aware.tsx create mode 100644 packages/app/src/plugins/react-native/clipboard.ts create mode 100644 packages/app/src/plugins/react-native/clipboard.web.ts create mode 100644 packages/app/src/plugins/react-native/scroll-view.tsx create mode 100644 packages/app/src/plugins/react-native/text-input.tsx create mode 100644 plugin-examples/modal-ui/README.md create mode 100644 plugin-examples/modal-ui/client/examples.tsx create mode 100644 plugin-examples/modal-ui/index.client.tsx create mode 100644 plugin-examples/modal-ui/paseo-plugin.json create mode 100644 plugin-examples/modal-ui/screenshots/android-copy-paste.png create mode 100644 plugin-examples/modal-ui/screenshots/android-wide-custom-inset.png create mode 100644 plugin-examples/modal-ui/screenshots/web-custom-inset.png diff --git a/docs/plugins.md b/docs/plugins.md index 1a101e5c5c..905f482bc7 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -155,7 +155,8 @@ Shared files import contract helpers and types from `@getpaseo/plugin`. Server h `@getpaseo/plugin/react-native`. Its `Icon` resolves a Lucide name using the client's installed icon set; an unknown name renders nothing so it cannot break the plugin surface. Its controlled modal keeps presentation metadata on `` and body UI in -``. +``. Body layout, sheet-aware scrolling, and clipboard actions follow the +[host UI contract](../public-docs/plugins/v0.8/reference.md#host-ui). Plugin UI runs on desktop and mobile across multiple themes: color every `Text` from `theme.colors.foreground` or `theme.colors.foregroundMuted`, and size layout from `layout.compact`. See `public-docs/plugins/v0.8/reference.md`. diff --git a/nix/npm-deps.hash b/nix/npm-deps.hash index 3324b8a3a6..a713307bd5 100644 --- a/nix/npm-deps.hash +++ b/nix/npm-deps.hash @@ -1 +1 @@ -sha256-EpfSUhkssURxoUgE9+odbFg3sroXH5bH5S9xClMG2nE= +sha256-Vw6bgh+gPdVxySdbawKawr9qZT8QEEo2+okdpuKceMA= diff --git a/package-lock.json b/package-lock.json index 1e60b61b11..37131854b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38700,6 +38700,7 @@ "@types/node": "^20.9.0", "@types/react": "~19.2.0", "react": "19.1.0", + "react-native": "0.81.5", "typescript": "^5.9.3", "vitest": "^4.1.6", "zod": "^4.4.3" @@ -38708,7 +38709,13 @@ "@getpaseo/client": "0.7.2", "@getpaseo/protocol": "0.7.2", "react": "19.1.0", + "react-native": ">=0.81.5", "zod": "^4.4.3" + }, + "peerDependenciesMeta": { + "react-native": { + "optional": true + } } }, "packages/plugin/node_modules/@agentclientprotocol/sdk": { diff --git a/packages/app/e2e/browser/plugin-modal-body.spec.ts b/packages/app/e2e/browser/plugin-modal-body.spec.ts new file mode 100644 index 0000000000..591a2472e8 --- /dev/null +++ b/packages/app/e2e/browser/plugin-modal-body.spec.ts @@ -0,0 +1,163 @@ +import path from "node:path"; +import { expect, test as base, type Page } from "../support/fixtures"; +import { gotoAppShell } from "../support/helpers/app"; +import { connectNewWorkspaceDaemonClient } from "../support/helpers/new-workspace"; +import { + openMobileAgentSidebar, + expectMobileAgentSidebarVisible, +} from "../support/helpers/sidebar"; + +async function openExample(page: Page, example: string) { + await page.getByRole("button", { name: `Open ${example}`, exact: true }).click(); + await expect(page.getByText(`Modal example: ${example}`, { exact: true })).toBeVisible(); +} + +async function closeExample(page: Page) { + await page.getByRole("button", { name: "Close", exact: true }).last().click(); + await expect(page.getByRole("button", { name: "Open Form", exact: true })).toBeVisible(); +} + +async function copyAndPaste(page: Page) { + await page.getByRole("button", { name: "Copy text", exact: true }).click(); + await expect(page.getByText("Text copied", { exact: true })).toBeVisible(); + expect(await page.evaluate(() => navigator.clipboard.readText())).toBe("Copied from Paseo"); + await page.getByRole("textbox", { name: "Paste here" }).focus(); + await page.keyboard.press("ControlOrMeta+A"); + await page.keyboard.press("ControlOrMeta+V"); + await expect(page.getByRole("textbox", { name: "Paste here" })).toHaveValue("Copied from Paseo"); +} + +async function scrollToLastRow(page: Page) { + await page.getByRole("button", { name: "Row 1", exact: true }).hover(); + await page.mouse.wheel(0, 7000); + await expect(page.getByRole("button", { name: "Row 100", exact: true })).toBeInViewport(); + await page.getByRole("button", { name: "Row 100", exact: true }).click(); +} + +async function expectSingleInset(page: Page, left = "24px", bottom = "24px") { + const form = await page.getByTestId("modal-example-form").boundingBox(); + const input = await page.getByRole("textbox", { name: "Paste here" }).boundingBox(); + expect(form).not.toBeNull(); + expect(input?.x).toBe(form?.x); + // The real content View owns the inset, not a third-party contentContainerStyle. + const padding = await page.getByTestId("modal-example-form").evaluate((node) => { + const content = node.parentElement!; + return { + left: getComputedStyle(content).paddingLeft, + bottom: getComputedStyle(content).paddingBottom, + }; + }); + expect(padding).toEqual({ left, bottom }); +} + +async function expectFullBleed(page: Page) { + const padding = await page + .getByRole("button", { name: "Row 1", exact: true }) + .evaluate((node) => { + const content = node.parentElement!; + return { + left: getComputedStyle(content).paddingLeft, + bottom: getComputedStyle(content).paddingBottom, + }; + }); + expect(padding).toEqual({ left: "0px", bottom: "0px" }); +} + +async function exerciseBodies(page: Page) { + await openExample(page, "Form"); + await expectSingleInset(page); + await copyAndPaste(page); + await closeExample(page); + await openExample(page, "Custom inset"); + await expectSingleInset(page, "8px", "40px"); + await closeExample(page); + await openExample(page, "Full bleed"); + await expectFullBleed(page); + await scrollToLastRow(page); + await closeExample(page); + await openExample(page, "ScrollView"); + await scrollToLastRow(page); + await closeExample(page); + await openExample(page, "FlatList"); + await page.getByRole("button", { name: "Jump to last row", exact: true }).click(); + await expect(page.getByRole("button", { name: "Row 100", exact: true })).toBeInViewport(); + await closeExample(page); + await openExample(page, "Horizontal"); + await page.getByRole("button", { name: "Overview", exact: true }).hover(); + await page.mouse.wheel(900, 0); + await expect(page.getByRole("button", { name: "System logs", exact: true })).toBeInViewport(); + await page.getByRole("button", { name: "System logs", exact: true }).click(); + await closeExample(page); + await expect(page.getByText("Selected: System logs", { exact: true })).toBeVisible(); +} + +const test = base.extend<{ modalExample: Page }>({ + modalExample: async ({ page, context }, provide) => { + const client = await connectNewWorkspaceDaemonClient({ ownProjects: false }); + const previous = await client.getDaemonConfig(); + try { + await client.patchDaemonConfig({ pluginsEnabled: true }); + await client.installDirectoryPlugin( + path.resolve(__dirname, "../../../../plugin-examples/modal-ui"), + ); + await context.grantPermissions(["clipboard-read", "clipboard-write"]); + await provide(page); + } finally { + await client.removePlugin("modal-ui-example").catch(() => undefined); + await client + .patchDaemonConfig({ pluginsEnabled: previous.config.pluginsEnabled ?? false }) + .catch(() => undefined); + await client.close().catch(() => undefined); + } + }, +}); + +async function openWideExamples(page: Page) { + await page.setViewportSize({ width: 1100, height: 800 }); + await gotoAppShell(page); + await page.getByRole("button", { name: "Modal examples", exact: true }).click(); +} + +async function openCompactExamples(page: Page) { + await page.setViewportSize({ width: 390, height: 844 }); + await openMobileAgentSidebar(page); + await expectMobileAgentSidebarVisible(page); + await page.getByRole("button", { name: "Modal examples", exact: true }).click(); +} + +async function expectDeniedCopyFeedback(page: Page) { + const cdp = await page.context().newCDPSession(page); + try { + const { targetInfo } = await cdp.send("Target.getTargetInfo"); + await cdp.send("Browser.setPermission", { + browserContextId: targetInfo.browserContextId, + permission: { name: "clipboard-write" }, + setting: "denied", + origin: new URL(page.url()).origin, + }); + expect( + await page.evaluate( + async () => + (await navigator.permissions.query({ name: "clipboard-write" as PermissionName })).state, + ), + ).toBe("denied"); + await openExample(page, "Form"); + await page.getByRole("button", { name: "Copy text", exact: true }).click(); + await expect( + page.getByText("Could not copy text. Select the text and use Copy.", { exact: true }), + ).toBeVisible(); + await closeExample(page); + } finally { + await cdp.detach(); + } +} + +test("plugin bodies support padding, scroll ownership, horizontal tabs and clipboard on wide and compact layouts", async ({ + modalExample: page, +}) => { + await openWideExamples(page); + await test.step("wide dialogs", () => exerciseBodies(page)); + await openCompactExamples(page); + await test.step("compact sheets", () => exerciseBodies(page)); + await test.step("denied clipboard writes report failure", () => expectDeniedCopyFeedback(page)); +}); diff --git a/packages/app/src/components/adaptive-modal-sheet-layout.test.ts b/packages/app/src/components/adaptive-modal-sheet-layout.test.ts index 308193d9d8..fbd37c15e7 100644 --- a/packages/app/src/components/adaptive-modal-sheet-layout.test.ts +++ b/packages/app/src/components/adaptive-modal-sheet-layout.test.ts @@ -5,30 +5,26 @@ import { } from "@/components/adaptive-modal-sheet-layout"; describe("getCompactSheetSafeAreaPadding", () => { - it("adds the bottom inset to compact sheet footers", () => { + it("assigns safe clearance to the footer independently of decorative padding", () => { expect( getCompactSheetSafeAreaPadding({ isCompact: true, isKeyboardVisible: false, hasFooter: true, - baseContentPadding: 24, - baseFooterPadding: 12, safeAreaBottom: 34, }), - ).toEqual({ footerPaddingBottom: 46 }); + ).toEqual({ footerPaddingBottom: 34 }); }); - it("adds the bottom inset to compact sheet content when there is no footer", () => { + it("assigns safe clearance to the body only without a footer", () => { expect( getCompactSheetSafeAreaPadding({ isCompact: true, isKeyboardVisible: false, hasFooter: false, - baseContentPadding: 24, - baseFooterPadding: 12, safeAreaBottom: 34, }), - ).toEqual({ contentPaddingBottom: 58 }); + ).toEqual({ contentPaddingBottom: 34 }); }); it("does not add a safe-area band above the compact keyboard", () => { @@ -37,8 +33,6 @@ describe("getCompactSheetSafeAreaPadding", () => { isCompact: true, isKeyboardVisible: true, hasFooter: false, - baseContentPadding: 24, - baseFooterPadding: 12, safeAreaBottom: 34, }), ).toEqual({}); @@ -50,8 +44,6 @@ describe("getCompactSheetSafeAreaPadding", () => { isCompact: false, isKeyboardVisible: false, hasFooter: false, - baseContentPadding: 24, - baseFooterPadding: 12, safeAreaBottom: 34, }), ).toEqual({}); diff --git a/packages/app/src/components/adaptive-modal-sheet-layout.ts b/packages/app/src/components/adaptive-modal-sheet-layout.ts index 123c0d337a..91fc62274e 100644 --- a/packages/app/src/components/adaptive-modal-sheet-layout.ts +++ b/packages/app/src/components/adaptive-modal-sheet-layout.ts @@ -2,8 +2,6 @@ export interface CompactSheetSafeAreaPaddingInput { isCompact: boolean; isKeyboardVisible: boolean; hasFooter: boolean; - baseContentPadding: number; - baseFooterPadding: number; safeAreaBottom: number; } @@ -38,8 +36,6 @@ export function getCompactSheetSafeAreaPadding({ isCompact, isKeyboardVisible, hasFooter, - baseContentPadding, - baseFooterPadding, safeAreaBottom, }: CompactSheetSafeAreaPaddingInput): CompactSheetSafeAreaPadding { if (!isCompact || isKeyboardVisible || safeAreaBottom <= 0) { @@ -47,8 +43,8 @@ export function getCompactSheetSafeAreaPadding({ } if (hasFooter) { - return { footerPaddingBottom: baseFooterPadding + safeAreaBottom }; + return { footerPaddingBottom: safeAreaBottom }; } - return { contentPaddingBottom: baseContentPadding + safeAreaBottom }; + return { contentPaddingBottom: safeAreaBottom }; } diff --git a/packages/app/src/components/adaptive-modal-sheet.tsx b/packages/app/src/components/adaptive-modal-sheet.tsx index 8cdab525a4..99c3b5117f 100644 --- a/packages/app/src/components/adaptive-modal-sheet.tsx +++ b/packages/app/src/components/adaptive-modal-sheet.tsx @@ -2,8 +2,8 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import type { ReactNode } from "react"; import { createPortal } from "react-dom"; import { useTranslation } from "react-i18next"; -import { Modal, Platform, Pressable, ScrollView, Text, View } from "react-native"; -import type { StyleProp, ViewStyle } from "react-native"; +import { Modal, Platform, Pressable, Text, View } from "react-native"; +import type { DimensionValue, StyleProp, ViewStyle } from "react-native"; import { StyleSheet, useUnistyles } from "react-native-unistyles"; import { useIsCompactFormFactor } from "@/constants/layout"; import { @@ -14,7 +14,6 @@ import { } from "../lib/overlay-root"; import { BottomSheetBackdrop, - BottomSheetScrollView, KEYBOARD_STATUS, useBottomSheetInternal, type BottomSheetBackgroundProps, @@ -30,6 +29,7 @@ import { getBottomSheetVisibleContentHeight, getCompactSheetSafeAreaPadding, } from "@/components/adaptive-modal-sheet-layout"; +import { ScrollView } from "@/components/ui/scroll-view"; import { isWeb } from "@/constants/platform"; import { useKeyboardVisibility } from "@/hooks/use-keyboard-visibility"; import { useSafeAreaInsets } from "react-native-safe-area-context"; @@ -67,6 +67,7 @@ export interface SheetHeader { search?: SheetHeaderSearch; } +const SCROLL_CONTENT_GROW = { flexGrow: 1 }; const ABSOLUTE_FILL_STYLE = { ...StyleSheet.absoluteFillObject }; const styles = StyleSheet.create((theme) => ({ @@ -79,6 +80,7 @@ const styles = StyleSheet.create((theme) => ({ pointerEvents: "auto" as const, }, desktopCard: { + overflow: "hidden", width: "100%", maxWidth: 520, maxHeight: "85%", @@ -445,8 +447,12 @@ export interface AdaptiveModalSheetProps { testID?: string; /** Override the max width of the desktop card. */ desktopMaxWidth?: number; + /** Bound an author-owned list without changing content-sized first-party dialogs. */ + desktopHeight?: DimensionValue; scrollable?: boolean; presentation?: "push" | "replace"; + /** Full body viewport below the header, including space beyond the content. */ + bodyStyle?: StyleProp; /** Layout intent for the sheet body, composed over the sheet's own content inset. */ contentStyle?: StyleProp; /** Size compact sheet content to the live snap height instead of its largest snap point. */ @@ -466,10 +472,12 @@ export function AdaptiveModalSheet({ snapPoints, testID, desktopMaxWidth, + desktopHeight, scrollable = true, presentation, contentStyle, - sizeContentToCurrentSnapPoint = false, + bodyStyle, + sizeContentToCurrentSnapPoint = true, contextBridge = null, }: AdaptiveModalSheetProps) { const { theme } = useUnistyles(); @@ -484,43 +492,22 @@ export function AdaptiveModalSheet({ isCompact: isMobile, isKeyboardVisible, hasFooter: Boolean(footer), - baseContentPadding: theme.spacing[SHEET_HORIZONTAL_PADDING_SCALE], - baseFooterPadding: theme.spacing[3], safeAreaBottom: insets.bottom, }), - [footer, insets.bottom, isKeyboardVisible, isMobile, theme.spacing], + [footer, insets.bottom, isKeyboardVisible, isMobile], ); - const compactContentStyle = useMemo( - () => [ - contentStyle, - compactSafeAreaPadding.contentPaddingBottom != null - ? { paddingBottom: compactSafeAreaPadding.contentPaddingBottom } - : null, - ], - [compactSafeAreaPadding.contentPaddingBottom, contentStyle], - ); - const compactStaticContentStyle = useMemo( - () => [styles.compactStaticContent, compactContentStyle], - [compactContentStyle], - ); - const desktopScrollContentStyle = useMemo( - () => [styles.contentGrow, contentStyle], - [contentStyle], - ); - const desktopStaticContentStyle = useMemo( - () => [styles.desktopStaticContent, contentStyle], - [contentStyle], - ); - const footerStyle = useMemo( - () => [ - styles.footer, - footerContainerStyle, - compactSafeAreaPadding.footerPaddingBottom != null - ? { paddingBottom: compactSafeAreaPadding.footerPaddingBottom } - : null, - ], - [compactSafeAreaPadding.footerPaddingBottom, footerContainerStyle], + // Safe-area clearance is a separate layer: it must not replace the caller's + // padding (including an explicit zero), and the footer owns it when present. + const bodyClearanceStyle = { paddingBottom: compactSafeAreaPadding.contentPaddingBottom ?? 0 }; + const footerClearanceStyle = useMemo( + () => ({ paddingBottom: compactSafeAreaPadding.footerPaddingBottom ?? 0 }), + [compactSafeAreaPadding.footerPaddingBottom], ); + const footerView = footer ? ( + + {footer} + + ) : null; const handleIndicatorStyle = useMemo( () => ({ backgroundColor: theme.colors.palette.zinc[600] }), [theme.colors.palette.zinc], @@ -554,8 +541,12 @@ export function AdaptiveModalSheet({ ); const desktopCardStyle = useMemo( - () => [styles.desktopCard, desktopMaxWidth != null && { maxWidth: desktopMaxWidth }], - [desktopMaxWidth], + () => [ + styles.desktopCard, + desktopHeight != null && { height: desktopHeight }, + desktopMaxWidth != null && { maxWidth: desktopMaxWidth }, + ], + [desktopMaxWidth, desktopHeight], ); const desktopOverlayStyle = useMemo( () => [ @@ -620,18 +611,27 @@ export function AdaptiveModalSheet({ const sheetContent = ( <> - {scrollable ? ( - - {children} - - ) : ( - {children} - )} - {footer ? {footer} : null} + + {scrollable ? ( + + + {children} + + + ) : ( + + + {children} + + + )} + + {footerView} ); @@ -646,6 +646,9 @@ export function AdaptiveModalSheet({ onDismiss={handleDismiss} backdropComponent={renderBackdrop} enablePanDownToClose + // A custom scroll owner must also own body gestures. Gorhom otherwise + // locks even imperative list offsets until the sheet reaches its top snap. + enableContentPanningGesture={scrollable} backgroundComponent={SheetBackground} handleIndicatorStyle={handleIndicatorStyle} keyboardBehavior="extend" @@ -662,24 +665,26 @@ export function AdaptiveModalSheet({ ); } + const desktopStaticStyle = + desktopHeight == null ? styles.desktopStaticContent : styles.compactStaticContent; const cardInner = ( - {scrollable ? ( - + + {scrollable ? ( - {children} + {children} - - ) : ( - {children} - )} - {footer ? {footer} : null} + ) : ( + {children} + )} + + {footerView} ); diff --git a/packages/app/src/components/model-browser.tsx b/packages/app/src/components/model-browser.tsx index ea2eeaec69..f724619c1f 100644 --- a/packages/app/src/components/model-browser.tsx +++ b/packages/app/src/components/model-browser.tsx @@ -13,7 +13,10 @@ import { type StyleProp, type ViewStyle, } from "react-native"; -import { BottomSheetFlatList, BottomSheetScrollView } from "@gorhom/bottom-sheet"; +import { + FlatList as SheetFlatList, + ScrollView as SheetScrollView, +} from "@/components/ui/scroll-view"; import { Gesture, GestureDetector } from "react-native-gesture-handler"; import { StyleSheet, withUnistyles } from "react-native-unistyles"; import { @@ -1190,7 +1193,7 @@ function ModelRowList({ if (isCompact && isNative) { return ( - {allProvidersContent} ) : ( - {allProvidersContent} - + ); } diff --git a/packages/app/src/components/ui/text-input/bottom-sheet-scope.tsx b/packages/app/src/components/ui/bottom-sheet-scope.tsx similarity index 79% rename from packages/app/src/components/ui/text-input/bottom-sheet-scope.tsx rename to packages/app/src/components/ui/bottom-sheet-scope.tsx index 1d25bf7598..cbdaedac5f 100644 --- a/packages/app/src/components/ui/text-input/bottom-sheet-scope.tsx +++ b/packages/app/src/components/ui/bottom-sheet-scope.tsx @@ -2,7 +2,7 @@ import React, { createContext, useContext, type ReactNode } from "react"; const BottomSheetScopeContext = createContext(false); -export function BottomSheetTextInputScope({ children }: { children: ReactNode }) { +export function BottomSheetScope({ children }: { children: ReactNode }) { return {children}; } diff --git a/packages/app/src/components/ui/isolated-bottom-sheet-modal/index.test.tsx b/packages/app/src/components/ui/isolated-bottom-sheet-modal/index.test.tsx index 7567601eca..cf820ac86c 100644 --- a/packages/app/src/components/ui/isolated-bottom-sheet-modal/index.test.tsx +++ b/packages/app/src/components/ui/isolated-bottom-sheet-modal/index.test.tsx @@ -58,7 +58,7 @@ vi.mock("@gorhom/bottom-sheet", async () => { }); import { IsolatedBottomSheetModal, type ContextBridge } from "."; -import { useIsInsideBottomSheet } from "@/components/ui/text-input/bottom-sheet-scope"; +import { useIsInsideBottomSheet } from "@/components/ui/bottom-sheet-scope"; /** Renders whatever the portal is currently holding, from its own place in the tree. */ function PortalHostProbe() { diff --git a/packages/app/src/components/ui/isolated-bottom-sheet-modal/index.tsx b/packages/app/src/components/ui/isolated-bottom-sheet-modal/index.tsx index 1f70a6babe..18ecff9127 100644 --- a/packages/app/src/components/ui/isolated-bottom-sheet-modal/index.tsx +++ b/packages/app/src/components/ui/isolated-bottom-sheet-modal/index.tsx @@ -9,7 +9,7 @@ import { type BottomSheetController, createBottomSheetVisibilityTracker, } from "./visibility-tracker"; -import { BottomSheetTextInputScope } from "@/components/ui/text-input/bottom-sheet-scope"; +import { BottomSheetScope } from "@/components/ui/bottom-sheet-scope"; type GorhomBottomSheetModalMethods = ElementRef; @@ -65,9 +65,7 @@ export const IsolatedBottomSheetModal = forwardRef< enableDismissOnClose stackBehavior={presentation} > - - {contextBridge ? contextBridge(children) : children} - + {contextBridge ? contextBridge(children) : children} ); diff --git a/packages/app/src/components/ui/scroll-view.tsx b/packages/app/src/components/ui/scroll-view.tsx new file mode 100644 index 0000000000..d6abed39d9 --- /dev/null +++ b/packages/app/src/components/ui/scroll-view.tsx @@ -0,0 +1,61 @@ +import { forwardRef, type Ref } from "react"; +import { + ScrollView as NativeScrollView, + FlatList as NativeFlatList, + type ScrollViewProps, + type FlatListProps, +} from "react-native"; +import { BottomSheetScrollView, BottomSheetFlatList } from "@gorhom/bottom-sheet"; +import { + ScrollView as GestureScrollView, + FlatList as GestureFlatList, + type NativeViewGestureHandlerProps, +} from "react-native-gesture-handler"; +import { isNative } from "@/constants/platform"; +import { useIsInsideBottomSheet } from "./bottom-sheet-scope"; + +// Both libraries forward to the RN FlatList instance. Their published ref types +// disagree about getScrollResponder (Gorhom) and include the component function +// in the instance intersection (RNGH); keep that type discrepancy at this boundary. +const SheetFlatList = BottomSheetFlatList as unknown as typeof NativeFlatList; +const HorizontalFlatList = GestureFlatList as unknown as ( + props: FlatListProps & NativeViewGestureHandlerProps & { ref?: Ref> }, +) => React.ReactElement; + +/** The presentation owns gesture integration; callers keep the React Native API. */ +export const ScrollView = forwardRef( + function ScrollView(props, ref) { + const inSheet = useIsInsideBottomSheet(); + if (!inSheet) return ; + if (props.horizontal) { + return isNative ? ( + + ) : ( + + ); + } + return ( + + {props.children} + + ); + }, +); + +function SheetAwareFlatList(props: FlatListProps, ref: Ref>) { + const inSheet = useIsInsideBottomSheet(); + if (!inSheet) return ; + if (props.horizontal) { + return isNative ? ( + + ) : ( + + ); + } + return ; +} + +// forwardRef erases the item generic. All three implementations expose the RN list methods. +export const FlatList = forwardRef(SheetAwareFlatList) as ( + props: FlatListProps & { ref?: Ref> }, +) => React.ReactElement; diff --git a/packages/app/src/components/ui/scroll-view.web.tsx b/packages/app/src/components/ui/scroll-view.web.tsx new file mode 100644 index 0000000000..7372623b5c --- /dev/null +++ b/packages/app/src/components/ui/scroll-view.web.tsx @@ -0,0 +1,3 @@ +// Web dialogs use ordinary scrolling at every breakpoint. Keep native gesture +// dependencies out of this module's import graph. +export { ScrollView, FlatList } from "react-native"; diff --git a/packages/app/src/components/ui/scrollable-code-surface.tsx b/packages/app/src/components/ui/scrollable-code-surface.tsx index e55093b9d8..3b99f8bcaf 100644 --- a/packages/app/src/components/ui/scrollable-code-surface.tsx +++ b/packages/app/src/components/ui/scrollable-code-surface.tsx @@ -1,14 +1,8 @@ import { useMemo, type ReactNode } from "react"; -import { - ScrollView, - Text, - View, - type StyleProp, - type TextStyle, - type ViewStyle, -} from "react-native"; +import { Text, View, type StyleProp, type TextStyle, type ViewStyle } from "react-native"; import { StyleSheet } from "react-native-unistyles"; +import { ScrollView } from "./scroll-view"; import { isWeb } from "@/constants/platform"; import { CODE_SURFACE_DATASET } from "@/styles/code-surface"; import { inlineUnistylesStyle } from "@/styles/unistyles-inline-style"; @@ -87,7 +81,7 @@ export function ScrollableCodeSurface({ [maxHeight], ); const outerScrollStyle = useMemo( - () => [maxHeightStyle, scrollStyle], + () => [styles.scroll, maxHeightStyle, scrollStyle], [maxHeightStyle, scrollStyle], ); const contentStyle = useMemo( @@ -108,24 +102,21 @@ export function ScrollableCodeSurface({ - - {horizontal ? ( - - {codeContent} - - ) : ( - codeContent - )} + + + {horizontal ? ( + + {codeContent} + + ) : ( + codeContent + )} + ); @@ -171,6 +162,10 @@ function getSurfaceStyle(tone: CodeSurfaceTone): StyleProp { } const styles = StyleSheet.create((theme) => ({ + scroll: { + flexShrink: 1, + minHeight: 0, + }, container: { overflow: "hidden", }, diff --git a/packages/app/src/components/ui/text-input/sheet-aware.tsx b/packages/app/src/components/ui/text-input/sheet-aware.tsx new file mode 100644 index 0000000000..33539b6cbb --- /dev/null +++ b/packages/app/src/components/ui/text-input/sheet-aware.tsx @@ -0,0 +1,24 @@ +import { forwardRef, useCallback } from "react"; +import { TextInput as NativeTextInput, type TextInputProps } from "react-native"; +import { BottomSheetTextInput } from "@gorhom/bottom-sheet"; +import { isNative } from "@/constants/platform"; +import { useIsInsideBottomSheet } from "../bottom-sheet-scope"; + +/** Registers focus with the sheet so the keyboard can move the active input into view. */ +export const SheetAwareTextInput = forwardRef( + function SheetAwareTextInput(props, ref) { + const inSheet = useIsInsideBottomSheet(); + const setRef = useCallback( + (input: NativeTextInput | null | undefined) => { + if (typeof ref === "function") ref(input ?? null); + else if (ref) ref.current = input ?? null; + }, + [ref], + ); + return inSheet && isNative ? ( + + ) : ( + + ); + }, +); diff --git a/packages/app/src/components/ui/text-input/text-input.native.test.tsx b/packages/app/src/components/ui/text-input/text-input.native.test.tsx index a04bd89d50..2b04a84c63 100644 --- a/packages/app/src/components/ui/text-input/text-input.native.test.tsx +++ b/packages/app/src/components/ui/text-input/text-input.native.test.tsx @@ -2,7 +2,7 @@ import React, { act, createRef } from "react"; import { createRoot, type Root } from "react-dom/client"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import { BottomSheetTextInputScope } from "./bottom-sheet-scope"; +import { BottomSheetScope } from "@/components/ui/bottom-sheet-scope"; import { EditingTextInput } from "./text-input.native"; import type { EditingTextInputHandle } from "./types"; @@ -62,9 +62,9 @@ describe("EditingTextInputNative", () => { root?.render( <> - + - + , ); }); diff --git a/packages/app/src/components/ui/text-input/text-input.native.tsx b/packages/app/src/components/ui/text-input/text-input.native.tsx index c505a9b917..074367a1c9 100644 --- a/packages/app/src/components/ui/text-input/text-input.native.tsx +++ b/packages/app/src/components/ui/text-input/text-input.native.tsx @@ -5,7 +5,7 @@ import PasteInput, { type PastedFile, type PasteTextInputInstance, } from "@mattermost/react-native-paste-input"; -import { useIsInsideBottomSheet } from "./bottom-sheet-scope"; +import { useIsInsideBottomSheet } from "@/components/ui/bottom-sheet-scope"; import type { EditingTextInputHandle, EditingTextInputProps } from "./types"; type NativeInput = (TextInput | PasteTextInputInstance) & { diff --git a/packages/app/src/plugins/react-native/clipboard.ts b/packages/app/src/plugins/react-native/clipboard.ts new file mode 100644 index 0000000000..4357a0baa1 --- /dev/null +++ b/packages/app/src/plugins/react-native/clipboard.ts @@ -0,0 +1,6 @@ +export async function copyText(text: string): Promise { + const { setStringAsync } = require("expo-clipboard") as typeof import("expo-clipboard"); + if (!(await setStringAsync(text))) { + throw new Error("Clipboard copy was denied or is unavailable"); + } +} diff --git a/packages/app/src/plugins/react-native/clipboard.web.ts b/packages/app/src/plugins/react-native/clipboard.web.ts new file mode 100644 index 0000000000..7207c2c689 --- /dev/null +++ b/packages/app/src/plugins/react-native/clipboard.web.ts @@ -0,0 +1,6 @@ +// Expo's web fallback reports success even when document.execCommand returns +// false. Use the browser promise so the SDK can promise success or rejection. +export async function copyText(text: string): Promise { + if (!navigator.clipboard) throw new Error("Clipboard copy is unavailable in this browser"); + await navigator.clipboard.writeText(text); +} diff --git a/packages/app/src/plugins/react-native/modal.tsx b/packages/app/src/plugins/react-native/modal.tsx index 38728b56b6..2785531d55 100644 --- a/packages/app/src/plugins/react-native/modal.tsx +++ b/packages/app/src/plugins/react-native/modal.tsx @@ -30,7 +30,12 @@ function useModalContext(): ModalContextValue { return context; } -function ModalContent({ children }: ModalContentProps) { +function ModalContent({ + children, + style, + contentContainerStyle, + scrollable = true, +}: ModalContentProps) { const modal = useModalContext(); const queryClient = useQueryClient(); const toast = useAppToast(); @@ -52,6 +57,10 @@ function ModalContent({ children }: ModalContentProps) { onClose={modal.dismiss} header={modal.header} contextBridge={contextBridge} + bodyStyle={style} + contentStyle={contentContainerStyle} + scrollable={scrollable} + desktopHeight={scrollable ? undefined : "85%"} > {children} diff --git a/packages/app/src/plugins/react-native/runtime.ts b/packages/app/src/plugins/react-native/runtime.ts index 4ac8ef3349..bdf39910a4 100644 --- a/packages/app/src/plugins/react-native/runtime.ts +++ b/packages/app/src/plugins/react-native/runtime.ts @@ -1,6 +1,18 @@ import { Icon } from "../icons"; import { Modal } from "./modal"; +import { ScrollView, FlatList } from "./scroll-view"; +import { TextInput } from "./text-input"; +import { copyText } from "./clipboard"; import { useToast } from "./toast"; import { useRevealedText } from "@/hooks/use-revealed-text"; -export const pluginReactNativeRuntime = { Icon, Modal, useRevealedText, useToast }; +export const pluginReactNativeRuntime = { + Icon, + Modal, + ScrollView, + FlatList, + TextInput, + copyText, + useRevealedText, + useToast, +}; diff --git a/packages/app/src/plugins/react-native/scroll-view.tsx b/packages/app/src/plugins/react-native/scroll-view.tsx new file mode 100644 index 0000000000..40dcc2f192 --- /dev/null +++ b/packages/app/src/plugins/react-native/scroll-view.tsx @@ -0,0 +1,25 @@ +import { forwardRef } from "react"; +import type { + ScrollView as NativeScrollView, + ScrollViewProps, + FlatListProps, + FlatList as NativeFlatList, +} from "react-native"; +import type * as Shared from "@/components/ui/scroll-view"; + +// Plugin evaluation also runs before the native UI is ready. Load presentation +// dependencies at render time, as Modal does, rather than evaluating them on import. +export const ScrollView = forwardRef( + function ScrollView(props, ref) { + const { ScrollView: HostScrollView } = + require("../../components/ui/scroll-view") as typeof Shared; + return ; + }, +); + +export const FlatList = forwardRef, FlatListProps>( + function FlatList(props, ref) { + const { FlatList: HostFlatList } = require("../../components/ui/scroll-view") as typeof Shared; + return ; + }, +) as typeof Shared.FlatList; diff --git a/packages/app/src/plugins/react-native/text-input.tsx b/packages/app/src/plugins/react-native/text-input.tsx new file mode 100644 index 0000000000..0330e68533 --- /dev/null +++ b/packages/app/src/plugins/react-native/text-input.tsx @@ -0,0 +1,12 @@ +import { forwardRef, type ElementRef } from "react"; +import type { TextInputProps } from "react-native"; + +import type { SheetAwareTextInput } from "@/components/ui/text-input/sheet-aware"; + +export const TextInput = forwardRef, TextInputProps>( + function TextInput(props, ref) { + const { SheetAwareTextInput } = + require("../../components/ui/text-input/sheet-aware") as typeof import("../../components/ui/text-input/sheet-aware"); + return ; + }, +); diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 710bce8339..34b481ffda 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -65,6 +65,7 @@ "@types/node": "^20.9.0", "@types/react": "~19.2.0", "react": "19.1.0", + "react-native": "0.81.5", "typescript": "^5.9.3", "vitest": "^4.1.6", "zod": "^4.4.3" @@ -73,6 +74,12 @@ "@getpaseo/client": "0.7.2", "@getpaseo/protocol": "0.7.2", "react": "19.1.0", + "react-native": ">=0.81.5", "zod": "^4.4.3" + }, + "peerDependenciesMeta": { + "react-native": { + "optional": true + } } } diff --git a/packages/plugin/src/react-native.ts b/packages/plugin/src/react-native.ts index d582cb724a..ea196c433f 100644 --- a/packages/plugin/src/react-native.ts +++ b/packages/plugin/src/react-native.ts @@ -1,4 +1,22 @@ -import type { ComponentType, FunctionComponent, ReactNode } from "react"; +import type { + ComponentType, + FunctionComponent, + ReactNode, + ForwardRefExoticComponent, + RefAttributes, + ReactElement, + Ref, +} from "react"; +import type { + StyleProp, + ViewStyle, + ScrollView as NativeScrollView, + ScrollViewProps, + FlatList as NativeFlatList, + FlatListProps, + TextInput as NativeTextInput, + TextInputProps, +} from "react-native"; import type { PluginIconProps } from "./contracts.js"; export interface ModalProps { @@ -11,6 +29,12 @@ export interface ModalProps { export interface ModalContentProps { children: ReactNode; + /** Paint the full body below the header. */ + style?: StyleProp; + /** Overrides the default 24px padding and 16px gap. Safe-area clearance stays host-owned. */ + contentContainerStyle?: StyleProp; + /** Default true. Set false for a bounded body with your own ScrollView or FlatList. */ + scrollable?: boolean; } export interface ModalComponent extends FunctionComponent { @@ -35,3 +59,18 @@ export declare function useToast(): ToastApi; export declare function useRevealedText(text: string, phase: "streaming" | "complete"): string; export type { PluginIconProps } from "./contracts.js"; + +/** React Native scrolling with the host's sheet gestures when rendered inside a sheet. */ +export declare const ScrollView: ForwardRefExoticComponent< + ScrollViewProps & RefAttributes +>; +export declare function FlatList( + props: FlatListProps & { ref?: Ref> }, +): ReactElement; +/** Copies text to this client's clipboard. Rejects when copying is unavailable or denied. */ +export declare function copyText(text: string): Promise; + +/** Native input focus integrated with modal keyboard positioning. */ +export declare const TextInput: ForwardRefExoticComponent< + TextInputProps & RefAttributes +>; diff --git a/plugin-examples/modal-ui/README.md b/plugin-examples/modal-ui/README.md new file mode 100644 index 0000000000..96cbbd8b78 --- /dev/null +++ b/plugin-examples/modal-ui/README.md @@ -0,0 +1,26 @@ +# Modal UI example + +Install this directory as a local plugin, then open **Modal examples** from the sidebar or a workspace tab. + +The examples demonstrate default and custom padding, a full-width body, author-owned ScrollView and +FlatList scrolling, horizontal tabs, and clipboard actions with a keyboard-aware input. See the +[host UI reference](../../public-docs/plugins/v0.8/reference.md#host-ui) for the API contract. + +The browser regression installs this exact example in an isolated daemon: + +```sh +cd packages/app +npx playwright test e2e/browser/plugin-modal-body.spec.ts --project=browser --workers=1 +``` + +On Android, open each example and swipe through its content. In FlatList, use **Jump to last row** +before expanding the sheet; row 100 should be visible. Drag the handle to expand the sheet. In Form, +press **Copy text**, long-press the input, and choose **Paste**. The input should contain +“Copied from Paseo”. With the system keyboard enabled, focusing the input should keep it visible. + +These captures show Android copy/paste and custom padding on browser and wide native layouts. +Android API 35 and Chromium were exercised; iOS and Electron were not tested. + +| Android copy/paste | Browser custom padding | Wide Android custom padding | +| ---------------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------- | +| ![Android copy and OS paste](screenshots/android-copy-paste.png) | ![Browser custom padding](screenshots/web-custom-inset.png) | ![Wide Android custom padding](screenshots/android-wide-custom-inset.png) | diff --git a/plugin-examples/modal-ui/client/examples.tsx b/plugin-examples/modal-ui/client/examples.tsx new file mode 100644 index 0000000000..e834983bfc --- /dev/null +++ b/plugin-examples/modal-ui/client/examples.tsx @@ -0,0 +1,205 @@ +import type { PluginSurfaceProps } from "@getpaseo/plugin"; +import { + Modal, + ScrollView, + FlatList, + TextInput, + copyText, + useToast, +} from "@getpaseo/plugin/react-native"; +import { useCallback, useMemo, useRef, useState } from "react"; +import { + Pressable, + Text, + View, + StyleSheet, + type StyleProp, + type ViewStyle, + type TextStyle, + type FlatList as NativeFlatList, +} from "react-native"; + +const modes = [ + "Form", + "Custom inset", + "Full bleed", + "ScrollView", + "FlatList", + "Horizontal", +] as const; +type Mode = (typeof modes)[number]; +const rows = Array.from({ length: 100 }, (_, index) => index + 1); +const tabs = ["Overview", "Configuration", "Activity", "Permissions", "System logs"]; +const styles = StyleSheet.create({ + screen: { flex: 1, padding: 16, gap: 12 }, + button: { padding: 12, borderWidth: 1, borderRadius: 6 }, + fill: { flex: 1, minHeight: 0 }, + customInset: { padding: 8, paddingBottom: 40, gap: 16 }, + fullBleed: { padding: 0, gap: 0 }, + row: { height: 56, padding: 16, borderBottomWidth: 1 }, + form: { gap: 16 }, + input: { borderWidth: 1, padding: 12, borderRadius: 6 }, + tabs: { flexGrow: 0, flexShrink: 0 }, + tab: { padding: 18, minWidth: 160 }, +}); + +export function ModalExamples({ theme }: Pick) { + const [mode, setMode] = useState(null); + const [input, setInput] = useState(""); + const [selected, setSelected] = useState(""); + const list = useRef>(null); + const toast = useToast(); + const color = useMemo(() => ({ color: theme.colors.foreground }), [theme]); + const body = useMemo(() => ({ backgroundColor: theme.colors.surface2 }), [theme]); + const button = useMemo(() => [styles.button, { borderColor: theme.colors.border }], [theme]); + const rowStyle = useMemo(() => [styles.row, { borderColor: theme.colors.border }], [theme]); + const inputStyle = useMemo( + () => [styles.input, color, { borderColor: theme.colors.border }], + [color, theme], + ); + + const copy = useCallback(async () => { + try { + await copyText("Copied from Paseo"); + toast.show("Text copied", { variant: "success" }); + } catch { + toast.error("Could not copy text. Select the text and use Copy."); + } + }, [toast]); + + const row = useCallback( + (item: number) => { + return ( + + ); + }, + [rowStyle, color], + ); + const renderRow = useCallback(({ item }: { item: number }) => row(item), [row]); + const close = useCallback((open: boolean) => { + if (!open) setMode(null); + }, []); + const jumpToEnd = useCallback(() => list.current?.scrollToEnd({ animated: false }), []); + const screen = useMemo(() => [styles.screen, body], [body]); + + let contentStyle: StyleProp = styles.fullBleed; + if (mode === "Form") contentStyle = undefined; + if (mode === "Custom inset") contentStyle = styles.customInset; + + const form = ( + + + Paseo clipboard example + + + Copy text + + + Input: {input || "empty"} + + ); + + return ( + + Modal body examples + {modes.map((example) => ( + + key={example} + value={example} + label={`Open ${example}`} + style={button} + textStyle={color} + onSelect={setMode} + /> + ))} + Selected: {selected || "none"} + + + {mode === "Form" || mode === "Custom inset" ? form : null} + {mode === "Full bleed" ? rows.map(row) : null} + {mode === "ScrollView" ? ( + + {rows.map(row)} + + ) : null} + {mode === "FlatList" ? ( + <> + + Jump to last row + + + + ) : null} + {mode === "Horizontal" ? ( + <> + + {tabs.map((tab) => ( + + ))} + + {form} + {rows.slice(0, 20).map(row)} + + ) : null} + + + + ); +} + +function getRowLayout(_: unknown, index: number) { + return { index, length: 56, offset: index * 56 }; +} + +function ChoiceButton({ + value, + label, + style, + textStyle, + onSelect, +}: { + value: Value; + label: string; + style: StyleProp; + textStyle: StyleProp; + onSelect(value: Value): void; +}) { + const select = useCallback(() => onSelect(value), [onSelect, value]); + return ( + + {label} + + ); +} diff --git a/plugin-examples/modal-ui/index.client.tsx b/plugin-examples/modal-ui/index.client.tsx new file mode 100644 index 0000000000..15bd5ae2c8 --- /dev/null +++ b/plugin-examples/modal-ui/index.client.tsx @@ -0,0 +1,21 @@ +import type { PluginClientContext } from "@getpaseo/plugin"; +import { ModalExamples } from "./client/examples"; + +export default function contribute(plugin: PluginClientContext) { + plugin.addSurface("main", ModalExamples); + plugin.addSidebarItem({ + id: "main", + title: "Modal examples", + icon: "PanelsTopLeft", + surface: "main", + }); + plugin.addWorkspacePanel({ + id: "examples", + title: "Modal examples", + icon: "PanelsTopLeft", + context: "workspace", + locations: ["workspace", "explorer"], + Component: ModalExamples, + }); + return () => {}; +} diff --git a/plugin-examples/modal-ui/paseo-plugin.json b/plugin-examples/modal-ui/paseo-plugin.json new file mode 100644 index 0000000000..b2dc64c17a --- /dev/null +++ b/plugin-examples/modal-ui/paseo-plugin.json @@ -0,0 +1,3 @@ +{ + "id": "modal-ui-example" +} diff --git a/plugin-examples/modal-ui/screenshots/android-copy-paste.png b/plugin-examples/modal-ui/screenshots/android-copy-paste.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5da20bf87d5551cc64f7240e58eb66003c35a3 GIT binary patch literal 79035 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 E1C8KaaR2}S literal 0 HcmV?d00001 diff --git a/plugin-examples/modal-ui/screenshots/android-wide-custom-inset.png b/plugin-examples/modal-ui/screenshots/android-wide-custom-inset.png new file mode 100644 index 0000000000000000000000000000000000000000..0346fdc9ccc0e14dc676136146d1673245f69def GIT binary patch literal 70900 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 literal 0 HcmV?d00001 diff --git a/plugin-examples/modal-ui/screenshots/web-custom-inset.png b/plugin-examples/modal-ui/screenshots/web-custom-inset.png new file mode 100644 index 0000000000000000000000000000000000000000..513dc104c94c8fdce230728888280f86639ea53e GIT binary patch literal 53973 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 | — | Styles the full body viewport, including empty space. Use for backgrounds. | +| `contentContainerStyle` | `StyleProp` | Padding 24, gap 16 | Overrides the content layout. Set `padding: 0, gap: 0` for edge-to-edge rows. | +| `scrollable` | `boolean` | `true` | The host scrolls the body. Set `false` for a bounded body with your own scroller. | + +A plain `Modal.Content` is already padded and scrollable. Avoid adding a second padded wrapper +unless you want another inset. Body styles leave the host header, drag handle, and dismissal controls +intact. The host reserves bottom safe-area space on compact native layouts; setting content padding +to zero removes the decorative inset, not that space. Keyboard clearance is handled separately. + +With `scrollable={false}`, the body fills the available sheet height, and the centered dialog uses +85% of the available height. Use `flex: 1, minHeight: 0` on your list. In this mode the body scrolls +at every sheet height; drag the handle to resize or dismiss the sheet. Default scrolling dialogs stay +content-sized on wide layouts. Presentation follows window size, including narrow desktop windows +and wide tablets. The close button, backdrop, platform back action, web Escape key, and compact sheet gesture dismiss the modal. Dismissal calls `onOpenChange(false)`; the plugin must update `open` to close it. @@ -330,6 +344,72 @@ the modal. Dismissal calls `onOpenChange(false)`; the plugin must update `open` Modal children keep the plugin runtime context. `usePaseo`, `useRpc`, `useWorkspace`, and `useAgent` work inside them. +### Scrolling + +Import `ScrollView` and `FlatList` from `@getpaseo/plugin/react-native` when content can appear in a +Paseo modal. They accept React Native props and refs and integrate with the sheet's gestures. Outside +a sheet they use ordinary React Native scrolling. Do not import bottom-sheet libraries directly. + +Use one vertical scroll owner: either the default modal body, or your own list with +`scrollable={false}`. A fixed-height vertical list nested inside the default scrolling body can compete +with the sheet for gestures on Android. Horizontal scrolling can coexist with the host's vertical body. + +```tsx +import { FlatList, Modal } from "@getpaseo/plugin/react-native"; +import { Text } from "react-native"; + +// Inside your controlled Modal: + + item.id} + renderItem={({ item }) => ( + {item.title} + )} + /> +; +``` + +For horizontal tabs, place `…` inside the +default `Modal.Content`. Keep the content's vertical scrolling on the host. + +### Copy and paste + +`copyText(text): Promise` writes to the clipboard on the device running the app. Call it from a +user action and await it before reporting success. It rejects if the platform denies copying or the +clipboard is unavailable; browser permissions and secure-context requirements still apply. + +```tsx +import { copyText, useToast } from "@getpaseo/plugin/react-native"; + +// Inside your component: +const toast = useToast(); +async function copyResult() { + try { + await copyText(result); + toast.show("Copied", { variant: "success" }); + } catch { + toast.error("Could not copy. Select the text and use Copy."); + } +} +``` + +Programmatic copying and native text selection are separate interactions. Use `` +for long-press selection and OS Copy. Import `TextInput` from `@getpaseo/plugin/react-native` for modal forms. It accepts React Native +input props and refs, supports OS Paste, and registers focus with the native sheet so the keyboard +can raise the form. Outside a sheet it uses the ordinary input. A plain React Native input supports +Paste too, but does not register focus with the sheet; the keyboard can cover it. No clipboard read +API is needed for OS Paste. Avoid DOM clipboard code in native plugins and the deprecated +`Clipboard` export from `react-native`. + +The runnable [modal UI example](https://github.com/getpaseo/paseo/tree/main/plugin-examples/modal-ui) +contains a padded form, full-width rows, a virtualized list, horizontal tabs, and a copy/paste input. + ### Toasts `useToast()` returns two methods: