Updated to supabase client

This commit is contained in:
Cal Corum 2025-05-07 13:29:06 -05:00
parent a372724f65
commit 8f45b5a182
5 changed files with 67 additions and 51 deletions

View File

@ -18,13 +18,19 @@
</div>
</template>
<script setup>
defineProps({
player: {
type: Object,
required: true
}
})
<script setup lang="ts">
import type { Player } from '~/types/Player';
const props = defineProps<{
player: Player
}>()
// defineProps({
// player: {
// type: Player,
// required: true
// }
// })
</script>
<style scoped>

View File

@ -2,6 +2,16 @@
const supabase = useSupabaseClient()
const email = ref('')
// const sighInWithDiscord = async () => {
// const { data, error } = await supabase.auth.signInWithOAuth({
// provider: 'discord',
// options: {
// redirectTo: 'http://localhost:3000/confirm'
// }
// })
// if (error) console.log(error)
// }
const signInWithOtp = async () => {
const { error } = await supabase.auth.signInWithOtp({
email: email.value,

View File

@ -2,27 +2,28 @@
import type { Player } from '~/types/Player'
const route = useRoute()
const config = useRuntimeConfig()
const playerId = route.params.id
const { data, pending, error } = await useFetch<Player[]>(
`${config.public.supabaseUrl}/rest/v1/players?select=*,rarity!inner(*)&id=eq.${playerId}`,
const client = useSupabaseClient()
const { data: player, pending, error } = await useAsyncData<Player | null>(
'players',
async () => {
const { data } = await client.from('players')
.select('*,rarity!inner(*)')
.eq('id', playerId)
.single()
console.log(`player:`)
console.log(data)
return data
},
{
method: 'GET',
headers: {
apikey: config.public.supabaseKey
},
lazy: true,
server: false
}
)
const player = computed(() => data.value?.[0] ?? {})
console.log('data:')
console.log(data)
console.log('player: ')
console.log(player)
</script>
<template>
@ -30,6 +31,7 @@
<div>
<div v-if="pending">Loading...</div>
<div v-else-if="error">Failed to load player</div>
<div v-else-if="!player">No playler found</div>
<div v-else>
<Player :player="player" />
</div>

View File

@ -1,33 +1,28 @@
<script setup lang='ts'>
import type { Player } from '~/types/Player'
const config = useRuntimeConfig()
// const config = useRuntimeConfig()
const client = useSupabaseClient()
const { data, pending, error } = await useFetch<Player[]>(
`${config.public.supabaseUrl}/rest/v1/random_player`,
const { data: playerList, pending, error } = await useAsyncData<Player[] | null>(
'random_player',
async () => {
const { data } = await client.from('random_player')
.select('*,rarity!inner(*),mlb_player!inner(*)')
.eq('franchise', 'Baltimore Orioles')
.eq('mlb_player.offense_col', 1)
.limit(3)
console.log('players from supabase: ')
console.log(data)
return data
},
{
method: 'GET',
headers: {
apikey: config.public.supabaseKey
},
server: false,
query: {
select: '*,rarity!inner(*),mlb_player!inner(*)',
// 'rarity.name': 'eq.All-Star',
// 'mlb_player.offense_col': 'eq.1',
franchise: 'eq.Baltimore Orioles',
limit: 3
}
lazy: true,
server: false
}
)
// const player = computed(() => data.value?.[0] ?? null)
const players = computed(() => data.value ?? [])
console.log('data:')
console.log(data)
console.log('player: ')
console.log(players)
</script>
<template>
@ -35,8 +30,9 @@
<div >
<div v-if="pending">Loading...</div>
<div v-else-if="error">Failed to load player</div>
<div v-else-if="playerList?.length == 0">No players found</div>
<div v-else class="grid">
<div v-for="player in players" :key="player.id">
<div v-for="player in playerList" :key="player.id">
<Player :player="player" />
</div>
</div>

14
types/Player.d.ts vendored
View File

@ -1,3 +1,10 @@
export interface Rarity {
id: number
name: string
color: string
value: number
}
export interface Player {
id: number
name: string
@ -6,10 +13,5 @@ export interface Player {
headshot: string
description: string
franchise: string
rarity: {
id: number
name: string
color: string
value: number
}
rarity: Rarity
}