Files
speckle-aectech-masterclass/frontend/src/components/commitSelector/CommitPanel.vue
T
2021-10-28 18:48:06 +02:00

117 lines
3.6 KiB
Vue

<template lang="html">
<v-sheet class="pa-4" elevation="8">
<p>Compare commit</p>
<v-row dense no-gutters>
<v-col cols="6">
<v-slide-group v-model="commitA" center-active show-arrows>
<v-slide-item
v-for="n in commits"
:key="n.id"
v-slot="{ active, toggle }"
:value="n"
>
<v-tooltip bottom>
<template v-slot:activator="{ on, attrs }">
<v-card
v-bind="attrs"
v-on="on"
:color="active ? 'success' : 'primary lighten-1'"
class="ma-1"
height="100"
width="40"
@click="toggle"
>
<div class="d-flex fill-height justify-center align-center">
<v-scale-transition mode="out-in">
<span v-if="!active" style="writing-mode: vertical-rl;">
{{ n.id }}
</span>
<v-icon
v-else
color="white"
size="20"
v-text="'mdi-close-circle-outline'"
></v-icon>
</v-scale-transition>
</div>
</v-card>
</template>
<span>{{ n.message }}</span>
</v-tooltip>
</v-slide-item>
</v-slide-group>
</v-col>
<v-col cols="6">
<v-slide-group v-model="commitB" center-active show-arrows>
<v-slide-item
v-for="n in commits"
:key="n.id"
v-slot="{ active, toggle }"
:value="n"
:disabled="commitA && n.id === commitA['id']"
>
<v-tooltip bottom>
<template v-slot:activator="{ on, attrs }">
<v-card
v-bind="attrs"
v-on="on"
:color="active ? 'success' : 'primary lighten-1'"
class="ma-1"
height="100"
width="40"
@click="toggle"
:disabled="commitA && n.id === commitA['id']"
>
<div class="d-flex fill-height justify-center align-center">
<v-scale-transition mode="out-in">
<span v-if="!active" style="writing-mode: vertical-rl;">
{{ n.id }}
</span>
<v-icon
v-else
color="white"
size="20"
v-text="'mdi-close-circle-outline'"
></v-icon>
</v-scale-transition>
</div>
</v-card>
</template>
<span>{{ n.message }}</span>
</v-tooltip>
</v-slide-item>
</v-slide-group>
</v-col>
<div>
You are about to compare commit
<v-chip :close="commitA" @click:close="commitA = null">
{{ commitA ? commitA.id : "Select commit" }}
</v-chip>
against
<v-chip :close="commitB" @click:close="commitB = null">
{{ commitB ? commitB.id : "Select commit" }}
</v-chip>
<v-btn color="success" :disabled="!commitA || !commitB">
Run this!
</v-btn>
</div>
</v-row>
</v-sheet>
</template>
<script>
export default {
name: "CommitPanel",
components: {},
props: ["commits"],
data() {
return {
commitA: null,
commitB: null
}
}
}
</script>
<style></style>