From a08c8dde716a8334de5308b92d43c4e48d014021 Mon Sep 17 00:00:00 2001 From: Hassan Malik Date: Fri, 28 Feb 2025 08:07:06 -0500 Subject: [PATCH 1/6] added new method to dialogs snap to show require scroll content --- .../packages/dialogs/src/components/index.ts | 1 + .../src/components/require-scroll-content.tsx | 39 +++++++++++++++++++ .../examples/packages/dialogs/src/index.tsx | 8 +++- .../src/features/snaps/dialogs/Dialogs.tsx | 13 +++++++ 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 packages/examples/packages/dialogs/src/components/require-scroll-content.tsx diff --git a/packages/examples/packages/dialogs/src/components/index.ts b/packages/examples/packages/dialogs/src/components/index.ts index c7226ae4e2..c939e66b48 100644 --- a/packages/examples/packages/dialogs/src/components/index.ts +++ b/packages/examples/packages/dialogs/src/components/index.ts @@ -1 +1,2 @@ export * from './custom'; +export * from './require-scroll-content'; diff --git a/packages/examples/packages/dialogs/src/components/require-scroll-content.tsx b/packages/examples/packages/dialogs/src/components/require-scroll-content.tsx new file mode 100644 index 0000000000..45adcf8799 --- /dev/null +++ b/packages/examples/packages/dialogs/src/components/require-scroll-content.tsx @@ -0,0 +1,39 @@ +import { + Box, + Button, + Container, + Footer, + Text, + type SnapComponent, +} from '@metamask/snaps-sdk/jsx'; + +/** + * Long content that requires scrolling. + * + * @returns The long content component. + */ +export const RequireScrollContent: SnapComponent = () => ( + + + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + lorem ipsum dolor sit amet + +
+ + +
+
+); diff --git a/packages/examples/packages/dialogs/src/index.tsx b/packages/examples/packages/dialogs/src/index.tsx index a1849576e3..db2b5b2bdc 100644 --- a/packages/examples/packages/dialogs/src/index.tsx +++ b/packages/examples/packages/dialogs/src/index.tsx @@ -11,7 +11,7 @@ import { UserInputEventType, } from '@metamask/snaps-sdk'; -import { CustomDialog } from './components'; +import { CustomDialog, RequireScrollContent } from './components'; /** * Handle incoming JSON-RPC requests from the dapp, sent through the @@ -90,6 +90,12 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { }, }); + case 'showRequireScrollContent': + return snap.request({ + method: 'snap_dialog', + params: { content: }, + }); + default: throw new MethodNotFoundError({ method: request.method }); } diff --git a/packages/test-snaps/src/features/snaps/dialogs/Dialogs.tsx b/packages/test-snaps/src/features/snaps/dialogs/Dialogs.tsx index b808772078..48ed6397f7 100644 --- a/packages/test-snaps/src/features/snaps/dialogs/Dialogs.tsx +++ b/packages/test-snaps/src/features/snaps/dialogs/Dialogs.tsx @@ -43,6 +43,12 @@ export const Dialogs: FunctionComponent = () => { }).catch(logError); }; + const handleSubmitRequireScrollContent = () => { + invokeSnap({ + snapId, + method: 'showRequireScrollContent', + }).catch(logError); + }; return ( { > Custom + From cb06ad05bf09743a559dbfa904a70b4360ef985f Mon Sep 17 00:00:00 2001 From: Hassan Malik Date: Mon, 3 Mar 2025 13:28:21 -0500 Subject: [PATCH 2/6] apply code review --- .../src/components/require-scroll-content.tsx | 33 +++++++++---------- .../examples/packages/dialogs/src/index.tsx | 4 +-- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/packages/examples/packages/dialogs/src/components/require-scroll-content.tsx b/packages/examples/packages/dialogs/src/components/require-scroll-content.tsx index 45adcf8799..4164fb6308 100644 --- a/packages/examples/packages/dialogs/src/components/require-scroll-content.tsx +++ b/packages/examples/packages/dialogs/src/components/require-scroll-content.tsx @@ -14,24 +14,23 @@ import { */ export const RequireScrollContent: SnapComponent = () => ( - - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet - lorem ipsum dolor sit amet + + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. + Lorem ipsum dolor sit amet. -