-
Paul Pestov authoredPaul Pestov authored
Projects.vue 1.64 KiB
<template>
<template v-if="releases.length === 0">
<p>{{$t('no_content')}}</p>
</template>
<template v-else>
<div
v-for="{ tag, projects } in releases"
:key="tag"
class="_border-left _border-left-color:gray-40 _padding-bottom:5"
>
<div class="timeline-item _font-weight:bold _padding-left:3">
<i-badge size="lg" class="_padding:1 _font-weight:bold">ocrd_all {{tag}}</i-badge>
</div>
<i-row class="projects-container _margin-left:2 _margin-top:3 _display:flex">
<i-column v-for="projectId in projects" :key="projectId" sm="3" class="_margin-bottom:2 _display:flex">
<Project :id="projectId" class="_flex-grow:1"></Project>
</i-column>
</i-row>
</div>
</template>
</template>
<script setup>
import { onMounted, ref } from "vue"
import { store } from "@/helpers/store"
import api from "@/helpers/api"
import Project from "@/components/projects/Project.vue"
const releases = ref([])
onMounted(async () => {
store.setRepos(await api.getProjects())
releases.value = await api.getOcrdAllReleases()
store.setReleases(releases.value)
})
</script>
<style lang="scss" scoped>
.timeline-item {
&:before {
content: "";
position: absolute;
display: block;
width: 18px;
height: 18px;
background: var(--color--gray-40);
left: -10px;
top: 50%;
transform: translateY(-50%);
border-radius: 50%;
}
}
.badge {
&:before {
content: "";
position: absolute;
display: block;
width: 8px;
height: 8px;
background: var(----background);
left: -4px;
top: 50%;
transform: translateY(-50%) rotate(45deg);
}
}
</style>