34 lines
790 B
TypeScript
34 lines
790 B
TypeScript
/**
|
|
* Composable for fetching and managing summoner spell data from CDragon API
|
|
* Returns a reactive Map of spell ID to spell data
|
|
*/
|
|
export const useSummonerSpellMap = () => {
|
|
const { data: summonerSpellsData } = useFetch<Array<SummonerSpell>>(
|
|
'/api/cdragon/summoner-spells',
|
|
{
|
|
lazy: true,
|
|
server: false
|
|
}
|
|
)
|
|
|
|
const summonerSpellMap = ref<Map<number, SummonerSpell>>(new Map())
|
|
|
|
watch(
|
|
summonerSpellsData,
|
|
newData => {
|
|
if (Array.isArray(newData)) {
|
|
const map = new Map<number, SummonerSpell>()
|
|
for (const spell of newData) {
|
|
if (spell?.id) {
|
|
map.set(spell.id, spell)
|
|
}
|
|
}
|
|
summonerSpellMap.value = map
|
|
}
|
|
},
|
|
{ immediate: true }
|
|
)
|
|
|
|
return { summonerSpellMap }
|
|
}
|