server selector wip

This commit is contained in:
2025-04-16 14:21:43 +01:00
parent ab9c6d622f
commit dfee28b428
3 changed files with 90 additions and 17 deletions

View File

@@ -1,18 +1,19 @@
<script setup lang="ts">
import ServiceCard from '@/components/environments/ServiceCard.vue';
import ServerSelector from '@/components/ServerSelector.vue';
import { Card } from '@/components/ui/card';
import ServiceCategory from '@/enums/ServiceCategory';
import ServiceStatus from '@/enums/ServiceStatus';
import ServiceType from '@/enums/ServiceType';
import AppLayout from '@/layouts/AppLayout.vue';
import { Head } from '@inertiajs/vue3';
import { AppWindowIcon, DatabaseIcon, DatabaseZap, DoorOpenIcon, PlusIcon } from 'lucide-vue-next';
import { PlusIcon } from 'lucide-vue-next';
const props = defineProps({
environment: {
type: Object,
required: true,
},
servers: {
type: Array,
required: false,
}
});
</script>
@@ -48,16 +49,20 @@ const props = defineProps({
<div class="flex h-full flex-1 flex-col gap-4 rounded-xl p-4">
<Card class="pattern-graph-paper grid grid-cols-3 gap-6 p-6">
<div class="space-y-2">
<Card class="flex select-none items-center gap-2 bg-card/30 p-4 backdrop-blur-sm text-sm group">
<PlusIcon class="size-4 opacity-50" />
<span class="opacity-50 group-hover:opacity-100 transition">Install a gateway</span>
</Card>
<ServerSelector :servers="servers">
<template #trigger>
<Card class="group flex select-none items-center gap-2 bg-card/30 p-4 text-sm backdrop-blur-sm">
<PlusIcon class="size-4 opacity-50" />
<span class="opacity-50 transition group-hover:opacity-100">Install a gateway</span>
</Card>
</template>
</ServerSelector>
<!-- <ServiceCard :icon="DoorOpenIcon" :service-type="ServiceType.CADDY" :service-category="ServiceCategory.GATEWAY" :status="ServiceStatus.NOT_INSTALLED" /> -->
</div>
<div class="space-y-2">
<Card class="flex select-none items-center gap-2 bg-card/30 p-4 backdrop-blur-sm text-sm group">
<Card class="group flex select-none items-center gap-2 bg-card/30 p-4 text-sm backdrop-blur-sm">
<PlusIcon class="size-4 opacity-50" />
<span class="opacity-50 group-hover:opacity-100 transition">Install your application on a server</span>
<span class="opacity-50 transition group-hover:opacity-100">Install your application on a server</span>
</Card>
<!-- <ServiceCard
:icon="AppWindowIcon"
@@ -65,17 +70,17 @@ const props = defineProps({
:service-category="ServiceCategory.APPLICATION"
:status="ServiceStatus.NOT_INSTALLED"
/> -->
</div>
</div>
<div class="space-y-2">
<!-- <ServiceCard :icon="DatabaseIcon" :service-type="ServiceType.POSTGRES" :service-category="ServiceCategory.DATABASE" :status="ServiceStatus.NOT_INSTALLED" /> -->
<!-- <ServiceCard :icon="DatabaseZap" :service-type="ServiceType.REDIS" :service-category="ServiceCategory.CACHE" :status="ServiceStatus.NOT_INSTALLED" /> -->
<Card class="flex select-none items-center gap-2 bg-card/30 p-4 backdrop-blur-sm text-sm group">
<Card class="group flex select-none items-center gap-2 bg-card/30 p-4 text-sm backdrop-blur-sm">
<PlusIcon class="size-4 opacity-50" />
<span class="opacity-50 group-hover:opacity-100 transition">Add a database</span>
<span class="opacity-50 transition group-hover:opacity-100">Add a database</span>
</Card>
<Card class="flex select-none items-center gap-2 bg-card/30 p-4 backdrop-blur-sm text-sm group">
<Card class="group flex select-none items-center gap-2 bg-card/30 p-4 text-sm backdrop-blur-sm">
<PlusIcon class="size-4 opacity-50" />
<span class="opacity-50 group-hover:opacity-100 transition">Add cache</span>
<span class="opacity-50 transition group-hover:opacity-100">Add cache</span>
</Card>
</div>
</Card>