@gumhq/react-sdk
Version:
React SDK for Gum
94 lines (67 loc) • 3.11 kB
Markdown
<p align="center">
<img alt="npm" src="https://img.shields.io/npm/v/@gumhq/react-sdk?color=%23d45bff">
<img alt="npm" src="https://img.shields.io/npm/dt/@gumhq/react-sdk?color=%23d45bff">
</p>
```bash
yarn add @gumhq/react-sdk
```
For more detailed documentation, please visit the [Gum documentation](https://docs.gum.fun/).
The `useGumContext`, `useCreateProfile`, and `useUploaderContext` hooks provide the necessary utilities to create a new profile.
```tsx
import {
useCreateProfile,
useGumContext,
useUploaderContext,
} from "@gumhq/react-sdk";
import { useWallet } from "@solana/wallet-adapter-react";
import { useState } from "react";
export function ProfileCreation() {
const [profileName, setProfileName] = useState("");
const [profileBio, setProfileBio] = useState("");
const [profileUsername, setProfileUsername] = useState("");
const [profileAvatar, setProfileAvatar] = useState("");
const wallet = useWallet();
const { publicKey } = wallet;
const { sdk } = useGumContext(); // access the Gum SDK
const { createProfileWithDomain } = useCreateProfile(sdk); // create a new profile
const { handleUpload } = useUploaderContext(); // upload metadata to Arweave/GenesysGo
const createProfile = async (event: React.FormEvent<HTMLFormElement>) => {
event.preventDefault();
const profileMetadata = {
name: profileName,
bio: profileBio,
avatar: profileAvatar,
};
const uploadResponse = await handleUpload(profileMetadata, wallet);
if (!uploadResponse) {
console.error("Error uploading profile metadata");
return false;
}
const profileResponse = await createProfileWithDomain(
uploadResponse.url,
profileUsername,
publicKey
);
if (!profileResponse) {
console.error("Error creating profile");
return false;
}
console.log("Profile created successfully", profileResponse);
};
// Your HTML form and fields would go here
}
```
The Gum Quickstart is an excellent starting point for developers aiming to leverage Gum in their Next.js applications. This ready-to-use template not only expedites the setup process, but also includes functional examples and components to facilitate the creation of domain profiles, posts, and more. Check out the [Gum Quickstart](https://github.com/gumhq/gum-quickstart) to get started.
Check out the [example app](https://github.com/gumhq/gum-example-app) that uses the Gum SDK to demonstrate its capabilities. The app is a simple React app that showcases the creation of a domain, profile, and posts.
We welcome contributions to improve the SDK. Please raise an issue or submit a pull request with any suggestions or bug fixes.
The Gum SDK is licensed under the [GNU General Public License v3.0](https://github.com/gumhq/sdk/blob/master/packages/react-sdk/LICENSE).
Join our Discord community at [https://discord.gg/tCswbSK5W2](https://discord.gg/tCswbSK5W2) for any questions or support.