{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "current-user-avatar-vue",
"type": "registry:block",
"title": "Current User Avatar",
"description": "Component which renders the current user's avatar.",
"dependencies": [
"@supabase/supabase-js@latest"
],
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "registry/default/current-user-avatar/vue/components/current-user-avatar.vue",
"content": "\n\n\n \n \n \n {{ initials }}\n \n \n\n",
"type": "registry:component",
"target": "components/current-user-avatar.vue"
},
{
"path": "registry/default/current-user-avatar/vue/composables/useCurrentUserName.ts",
"content": "import { ref, onMounted } from 'vue'\n// @ts-ignore\nimport { createClient } from '@/lib/supabase/client'\n\nexport function useCurrentUserName() {\n const name = ref(null)\n\n const fetchProfileName = async () => {\n const { data, error } = await createClient().auth.getSession()\n\n if (error) {\n console.error(error)\n return\n }\n\n name.value = data.session?.user.user_metadata.full_name ?? '?'\n }\n\n onMounted(() => {\n fetchProfileName()\n })\n\n return {\n name,\n }\n}\n",
"type": "registry:component",
"target": "composables/useCurrentUserName.ts"
},
{
"path": "registry/default/current-user-avatar/vue/composables/useCurrentUserImage.ts",
"content": "import { ref, onMounted } from 'vue'\n// @ts-ignore\nimport { createClient } from '@/lib/supabase/client'\n\nexport function useCurrentUserImage() {\n const image = ref(null)\n\n const fetchUserImage = async () => {\n const { data, error } = await createClient().auth.getSession()\n\n if (error) {\n console.error(error)\n return\n }\n\n image.value = data.session?.user.user_metadata.avatar_url ?? null\n }\n\n onMounted(() => {\n fetchUserImage()\n })\n\n return {\n image,\n }\n}\n",
"type": "registry:component",
"target": "composables/useCurrentUserImage.ts"
}
]
}