48 lines
995 B
Vue
48 lines
995 B
Vue
<script setup lang="ts">
|
|
import { computed } from "vue";
|
|
|
|
const props = defineProps<{
|
|
authors: string[];
|
|
}>();
|
|
|
|
interface Author {
|
|
name: string;
|
|
github: string;
|
|
}
|
|
|
|
const data = [
|
|
{
|
|
name: "nbats",
|
|
github: "https://github.com/nbats",
|
|
},
|
|
{
|
|
name: "Kai",
|
|
github: "https://github.com/Kai-FMHY",
|
|
},
|
|
{
|
|
name: "taskylizard",
|
|
github: "https://github.com/taskylizard",
|
|
},
|
|
{
|
|
name: "zinklog",
|
|
github: "https://github.com/zinklog2",
|
|
},
|
|
{
|
|
name: "Q",
|
|
github: "https://github.com/qiracy",
|
|
},
|
|
] satisfies Author[];
|
|
|
|
const authors = computed(() => data.filter((author) => props.authors.includes(author.name)));
|
|
</script>
|
|
|
|
<template>
|
|
<div class="flex flex-wrap gap-4 pt-2">
|
|
<div v-for="(c, index) of authors" class="flex gap-2 items-center">
|
|
<img :src="`${c.github}.png`" class="w-8 h-8 rounded-full" />
|
|
<a :href="c.github">{{ c.name }}</a>
|
|
<span v-if="index < authors.length - 1"> • </span>
|
|
</div>
|
|
</div>
|
|
</template>
|