From 595b26d25fe9d91038c7039ab48b632c9e04321b Mon Sep 17 00:00:00 2001 From: Jennifer Hasegawa <5481259+jhaaaa@users.noreply.github.com> Date: Fri, 23 Aug 2024 15:23:26 -0700 Subject: [PATCH] first pass --- README.md | 86 +++++++++++++++++++++++++++-------- subscribe-broadcast-page.png | Bin 0 -> 37539 bytes 2 files changed, 67 insertions(+), 19 deletions(-) create mode 100644 subscribe-broadcast-page.png diff --git a/README.md b/README.md index c403366..58a798c 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,67 @@ -This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). +# Set up an example subscribe-broadcast web page -## Getting Started +This repo provides an example subscribe-broadcast web page that demonstrates an implementation of a Subscribe button with [built-in user consent](https://docs.xmtp.org/consent/subscribe) provided by XMTP. -First, run the development server: +Follow these steps to set up an example subscribe-broadcast page like the one [deployed here](https://subscribe-broadcast.vercel.app/subscribe/button) and connected to the XMTP `dev` network. + +To get the most out of this repo, use it with the [broadcast-example-api repo](https://github.com/xmtp/broadcast-example-api). The broadcast-example-api repo provides an example broadcast API that you can use with the example subscribe-broadcast page to send broadcast messages and provide broadcast statuses. To learn how, see [Try the subscribe with built-in consent and broadcast flow](https://docs.xmtp.org/consent/subscribe-broadcast). + +**Note**: This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Install dependencies + +```bash +npm install +``` + +## Get a WalletConnect project ID + +If you don’t already have one, generate a WalletConnect AppKit project ID by visiting WalletConnect's project dashboard at `https://cloud.walletconnect.com/`. + +You’ll need the project ID in the next step. + +## Create .env file + +At the root of the `subscribe-broadcast` directory, create a `.env` file with the following contents. Replace `` with your WalletConnect project ID from the previous step. + +`NEXT_PUBLIC_API_HOST=http://localhost:6989` is a value based on the **broadcast-example-api** repo. + +``` +NEXT_PUBLIC_WALLET_CONNECT_ID= +NEXT_PUBLIC_API_HOST=http://localhost:6989 +``` + +## Define a broadcast + +With the example subscribe-broadcast page running, go to [http://localhost:3000/subscribe/button](http://localhost:3000/subscribe/button). + +You should see a dropdown list of broadcasts and a **Subscribe** button. + +![subscribe-broadcast web page](https://raw.githubusercontent.com/xmtp/docs-xmtp-org/main/docs/pages/img/subscribe-broadcast-page.png) + +To edit the available broadcasts, see the `src/app/broadcastConfigs.ts` file. + +```tsx +interface BroadcastConfig { + name: string; + address: string; +} + +export const broadcastConfigs: BroadcastConfig[] = [ + { + address: "0x62EEd858af7590fbCaE803d208c53ddBb0D1309c", + name: "Hello World Wild Web", + }, +]; +``` + +In the **address** field, enter a string that is the raw 0x Ethereum address of the broadcast sending address. + +In the **name** field, enter a string that is the name of a broadcast. + +## Start the development server + +You must be using Node.js >= v18.17.0. ```bash npm run dev @@ -14,23 +73,12 @@ pnpm dev bun dev ``` -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. - -This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. +Go to [http://localhost:3000/subscribe/button](http://localhost:3000/subscribe/button) to see the example subscribe-broadcast page running. -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! +![subscribe-broadcast web page](subscribe-broadcast-page.png) -## Deploy on Vercel +You can edit the page by modifying `app/page.tsx`. -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. +To use this subscribe-broadcast page to try out the flow to subscribe to a broadcast with built-in consent, use it with the [broadcast-example-api repo](https://github.com/xmtp/broadcast-example-api). -Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. +To learn how, see [Try the subscribe with built-in consent and broadcast flow](https://docs.xmtp.org/consent/subscribe-broadcast). diff --git a/subscribe-broadcast-page.png b/subscribe-broadcast-page.png new file mode 100644 index 0000000000000000000000000000000000000000..3d5515e41289b6c20cce2f451ddad2df0d09a5c2 GIT binary patch literal 37539 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 L9~Vg)zWx6I0UpQP literal 0 HcmV?d00001