42 lines
1.9 KiB
Vue
42 lines
1.9 KiB
Vue
<template>
|
|
<Component v-if="components[resource]" :is="components[resource]"></Component>
|
|
<p v-else>Invalid resource</p>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import PodList from '~/components/inspect/resources/PodList.vue';
|
|
import CustomResourceDefinitionList from '~/components/inspect/resources/CustomResourceDefinitionList.vue';
|
|
import IngressList from '~/components/inspect/resources/IngressList.vue';
|
|
import ServiceList from '~/components/inspect/resources/ServiceList.vue';
|
|
import DeploymentList from "~/components/inspect/resources/DeploymentList.vue";
|
|
import NodeList from '~/components/inspect/resources/NodeList.vue';
|
|
import SecretList from '~/components/inspect/resources/SecretList.vue';
|
|
import ConfigMapList from '~/components/inspect/resources/ConfigMapList.vue';
|
|
import StatefulSetList from '~/components/inspect/resources/StatefulSetList.vue';
|
|
import PersistentVolumeList from '~/components/inspect/resources/PersistentVolumeList.vue';
|
|
import PersistentVolumeClaimList from '~/components/inspect/resources/PersistentVolumeClaimList.vue';
|
|
import NamespaceList from '~/components/inspect/resources/NamespaceList.vue';
|
|
import type { Component } from "vue";
|
|
import {ResourceType} from "~/components/inspect/ResourceType";
|
|
|
|
const resource = useRoute().params.resource as ResourceType;
|
|
|
|
const components: Record<ResourceType, Component> = {
|
|
[ResourceType.NODE]: NodeList,
|
|
[ResourceType.NAMESPACE]: NamespaceList,
|
|
[ResourceType.CUSTOM_RESOURCE_DEFINITION]: CustomResourceDefinitionList,
|
|
|
|
[ResourceType.POD]: PodList,
|
|
[ResourceType.DEPLOYMENT]: DeploymentList,
|
|
[ResourceType.STATEFUL_SET]: StatefulSetList,
|
|
|
|
[ResourceType.SERVICE]: ServiceList,
|
|
[ResourceType.INGRESS]: IngressList,
|
|
|
|
[ResourceType.SECRET]: SecretList,
|
|
[ResourceType.CONFIG_MAP]: ConfigMapList,
|
|
|
|
[ResourceType.PV]: PersistentVolumeList,
|
|
[ResourceType.PVC]: PersistentVolumeClaimList,
|
|
};
|
|
</script> |