Skip to content

feat: Add React hooks wrapper package#63

Merged
big14way merged 1 commit intosorosave-protocol:mainfrom
kevin-undefined:main
Feb 25, 2026
Merged

feat: Add React hooks wrapper package#63
big14way merged 1 commit intosorosave-protocol:mainfrom
kevin-undefined:main

Conversation

@kevin-undefined
Copy link
Contributor

@kevin-undefined kevin-undefined commented Feb 24, 2026

Summary

This PR adds a React hooks wrapper package for the SoroSave SDK, making it easy to integrate SoroSave into React applications.

Changes

New Files

  • src/react/context.tsx - SoroSaveProvider component and hooks for accessing client/config
  • src/react/useGroup.ts - Hook for fetching and monitoring a savings group
  • src/react/useContribute.ts - Mutation hook for making contributions
  • src/react/useMemberGroups.ts - Hook for fetching all groups a member belongs to
  • src/react/index.ts - Public exports for the React package

Modified Files

  • package.json - Added React peer dependency and subpath exports for @sorosave/react
  • tsconfig.json - Added JSX support for React components
  • src/index.ts - Re-export React hooks
  • README.md - Added comprehensive React hooks documentation

Usage

import { SoroSaveProvider, useGroup, useContribute, useMemberGroups } from '@sorosave/react';

function App() {
  return (
    <SoroSaveProvider config={{
      contractId: 'YOUR_CONTRACT_ID',
      rpcUrl: 'https://soroban-testnet.stellar.org',
      networkPassphrase: 'Test SDF Network ; September 2015',
    }}>
      <YourApp />
    </SoroSaveProvider>
  );
}

function GroupInfo({ groupId }) {
  const { group, loading, error } = useGroup(groupId);
  // ...
}

Acceptance Criteria

  • Add useGroup(groupId) hook returning group data + loading + error
  • Add useContribute() hook returning mutation function
  • Add useMemberGroups(address) hook
  • Add SoroSaveProvider context component
  • Export as separate package via subpath exports

Closes #45

- Add SoroSaveProvider context component for SDK access
- Add useGroup hook for fetching group data
- Add useContribute hook for contribution mutations
- Add useMemberGroups hook for fetching member's groups
- Update package.json with React peer dependency and subpath exports
- Update README with React hooks documentation

Closes sorosave-protocol#45
@big14way big14way merged commit e5a1969 into sorosave-protocol:main Feb 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add React hooks wrapper package

2 participants