Skip to content

Commit 191be15

Browse files
Use functions instead of views in affiliate hooks
1 parent 928d7f2 commit 191be15

File tree

5 files changed

+31
-9
lines changed

5 files changed

+31
-9
lines changed

apps/next/pages/account/affiliate.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export const Page: NextPageWithLayout = () => {
1212
<title>Send | Affiliates</title>
1313
<meta
1414
name="description"
15-
content="View your network, track your score, and see your referrals activity."
15+
content="View your network and track referral activity."
1616
key="desc"
1717
/>
1818
</Head>
@@ -21,7 +21,7 @@ export const Page: NextPageWithLayout = () => {
2121
)
2222
}
2323

24-
const subheader = 'View your network, track your score, and see your referrals activity.'
24+
const subheader = 'View your network and track referral activity.'
2525

2626
export const getServerSideProps = userProtectedGetSSP()
2727

packages/app/features/affiliate/screen.tsx

+1-4
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@ import {
1616
} from '@my/ui'
1717

1818
import { useAffiliateReferrals } from './utils/useAffiliateReferrals'
19-
2019
import { Fragment } from 'react'
21-
22-
import formatAmount from 'app/utils/formatAmount'
2320
import { useAffiliateStats } from './utils/useAffiliateStats'
2421

2522
export const AffiliateScreen = () => {
@@ -136,7 +133,7 @@ const ReferralsList = () => {
136133
</Paragraph>
137134
)}
138135
{pages?.map((referrals) => {
139-
return referrals?.map(({ referral }) => {
136+
return referrals?.map((referral) => {
140137
if (!referral) return null
141138
return (
142139
<Fragment key={`${referral.referred_id}-${referral.tag}`}>

packages/app/features/affiliate/utils/useAffiliateReferrals.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export function useAffiliateReferrals({ pageSize = 10 }: { pageSize?: number } =
1111
async function fetchAffiliateReferrals({ pageParam }: { pageParam: number }) {
1212
const from = pageParam * pageSize
1313
const to = (pageParam + 1) * pageSize - 1
14-
const request = supabase.from('affiliate_referrals').select('*').range(from, to)
14+
const request = supabase.rpc('get_affiliate_referrals').select('*').range(from, to)
1515
const { data, error } = await request
1616
throwIf(error)
1717
return data

packages/app/features/affiliate/utils/useAffiliateStats.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1+
import type { Functions } from '@my/supabase/database.types'
12
import { useQuery } from '@tanstack/react-query'
23
import { useSupabase } from 'app/utils/supabase/useSupabase'
34

45
export function useAffiliateStats() {
56
const supabase = useSupabase()
6-
async function fetchAffiliateStats() {
7-
const request = supabase.from('affiliate_stats_summary').select('*').single()
7+
async function fetchAffiliateStats(): Promise<
8+
Functions<'get_affiliate_stats_summary'>[number] | null
9+
> {
10+
const request = supabase.rpc('get_affiliate_stats_summary').select('*').single()
811

912
const { data, error } = await request
1013
if (error) {

supabase/database-generated.types.ts

+22
Original file line numberDiff line numberDiff line change
@@ -1256,6 +1256,28 @@ export type Database = {
12561256
Args: Record<PropertyKey, never>
12571257
Returns: string
12581258
}
1259+
get_affiliate_referrals: {
1260+
Args: Record<PropertyKey, never>
1261+
Returns: {
1262+
referred_id: string
1263+
send_plus_minus: number
1264+
avatar_url: string
1265+
tag: string
1266+
created_at: string
1267+
}[]
1268+
}
1269+
get_affiliate_stats_summary: {
1270+
Args: Record<PropertyKey, never>
1271+
Returns: {
1272+
id: string
1273+
created_at: string
1274+
user_id: string
1275+
send_plus_minus: number
1276+
referral_count: number
1277+
network_plus_minus: number
1278+
affiliate_send_score: number
1279+
}[]
1280+
}
12591281
insert_challenge: {
12601282
Args: Record<PropertyKey, never>
12611283
Returns: {

0 commit comments

Comments
 (0)