MCPcopy Create free account
hub / github.com/MCSManager/MCSManager / useRemoteNode

Function useRemoteNode

frontend/src/hooks/useRemoteNode.ts:27–114  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

25}
26
27export function useRemoteNode() {
28 const operationForm = ref({
29 name: "",
30 current: 1,
31 pageSize: 8,
32 total: 0
33 });
34 const ALL = "all";
35 const currentStatus = ref<any>(ALL);
36 const { state, refresh } = useOverviewInfo();
37 const refreshLoading = ref(false);
38
39 const filterByName = (node: ComputedNodeInfo) => {
40 return operationForm.value.name !== ""
41 ? node.remarks.toLowerCase().includes(operationForm.value.name.toLowerCase())
42 : true;
43 };
44
45 const remoteNodes = computed(() => {
46 const nodeList = state.value?.remote;
47
48 const filteredNodes =
49 nodeList?.filter(
50 (node) =>
51 (currentStatus.value === ALL || node.available === currentStatus.value) &&
52 filterByName(node)
53 ) || [];
54
55 operationForm.value.total = filteredNodes.length || 0;
56
57 const startIndex = (operationForm.value.current - 1) * operationForm.value.pageSize;
58 const endIndex = startIndex + operationForm.value.pageSize;
59
60 const sliceFilteredNodes = filteredNodes.slice(startIndex, endIndex);
61
62 if (sliceFilteredNodes.length === 0 && operationForm.value.current > 1) {
63 operationForm.value.current -= 1;
64 refresh();
65 }
66
67 return sliceFilteredNodes;
68 });
69
70 const addNode = async (data: any) => {
71 await addNodeApi().execute({
72 data
73 });
74 await refresh(true);
75 };
76
77 const deleteNode = async (uuid: string) => {
78 await deleteNodeApi().execute({
79 params: {
80 uuid
81 }
82 });
83 await refresh(true);
84 };

Callers 1

handler.tsFile · 0.90

Calls 3

useOverviewInfoFunction · 0.90
filterByNameFunction · 0.85
refreshFunction · 0.70

Tested by

no test coverage detected