MCPcopy Create free account
hub / github.com/code100x/cms / usePayoutMethods

Function usePayoutMethods

src/hooks/usePayoutMethod.ts:12–57  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

10import { SolanaAddress, UpiId } from '@prisma/client';
11
12export const usePayoutMethods = () => {
13 const [upiAddresses, setUpiAddresses] = useState<UpiId[] | undefined>([]);
14 const [solanaAddresses, setSolanaAddresses] = useState<
15 SolanaAddress[] | undefined
16 >([]);
17
18 const fetchPayoutMethods = async () => {
19 const result = await getPayoutMethods();
20 if (result) {
21 setUpiAddresses(result.upiIds);
22 setSolanaAddresses(result.solanaAddresses);
23 }
24 };
25
26 const { execute: executeDeleteUPI } = useAction(deleteUpiId, {
27 onSuccess: () => {
28 toast.success('UPI Address deleted successfully');
29 fetchPayoutMethods();
30 },
31 onError: () => {
32 toast.error('Failed to delete UPI id');
33 },
34 });
35
36 const { execute: executeDeleteSolana } = useAction(deleteSolanaAddress, {
37 onSuccess: () => {
38 toast.success('Solana Address deleted successfully');
39 fetchPayoutMethods();
40 },
41 onError: () => {
42 toast.error('Failed to delete Solana address');
43 },
44 });
45
46 useEffect(() => {
47 fetchPayoutMethods();
48 }, []);
49
50 return {
51 upiAddresses,
52 solanaAddresses,
53 fetchPayoutMethods,
54 handleUpiDelete: (id: number) => executeDeleteUPI({ id }),
55 handleSolanaDelete: (id: number) => executeDeleteSolana({ id }),
56 };
57};

Callers 1

PageFunction · 0.90

Calls 2

useActionFunction · 0.90
fetchPayoutMethodsFunction · 0.70

Tested by

no test coverage detected