mirror of https://github.com/halo-dev/halo
37 lines
1001 B
Vue
37 lines
1001 B
Vue
![]() |
<script lang="ts" setup>
|
||
|
import { VLoading } from "@halo-dev/components";
|
||
|
import { useQuery } from "@tanstack/vue-query";
|
||
|
import DeviceListItem from "./components/DeviceListItem.vue";
|
||
|
import { ucApiClient } from "@halo-dev/api-client";
|
||
|
|
||
|
const { data, isLoading } = useQuery({
|
||
|
queryKey: ["uc:devices"],
|
||
|
queryFn: async () => {
|
||
|
const { data } = await ucApiClient.security.device.listDevices();
|
||
|
return data;
|
||
|
},
|
||
|
refetchInterval(data) {
|
||
|
const hasDeletingData = data?.some(
|
||
|
(device) => !!device.device.metadata.deletionTimestamp
|
||
|
);
|
||
|
|
||
|
return hasDeletingData ? 1000 : false;
|
||
|
},
|
||
|
});
|
||
|
</script>
|
||
|
|
||
|
<template>
|
||
|
<VLoading v-if="isLoading" />
|
||
|
|
||
|
<Transition v-else appear name="fade">
|
||
|
<ul
|
||
|
class="box-border h-full w-full divide-y divide-gray-100 overflow-hidden rounded-base border"
|
||
|
role="list"
|
||
|
>
|
||
|
<li v-for="device in data" :key="device?.device.spec.sessionId">
|
||
|
<DeviceListItem :device="device" />
|
||
|
</li>
|
||
|
</ul>
|
||
|
</Transition>
|
||
|
</template>
|