diff --git a/src/components/modules/anotation.tsx b/src/components/modules/anotation.tsx
index 2a9ea261..d375563c 100644
--- a/src/components/modules/anotation.tsx
+++ b/src/components/modules/anotation.tsx
@@ -3,6 +3,7 @@ import Input from "~/components/elements/input";
import { api } from "~/utils/api";
import { getRandomColor } from "~/utils/randomColor";
import { useTranslations } from "next-intl";
+import { toast } from "react-hot-toast";
type IAnotationProps = {
name: string;
@@ -58,6 +59,10 @@ const Anotation = ({ nwid, nodeid }: IProps) => {
(anotation) => anotation.name === value,
);
if (isInList) {
+ if (!nodeid)
+ return toast.error(
+ "Member does not exist in DB, please Authorize first",
+ );
setAnotation(
{
name: value,
diff --git a/src/components/modules/table/memberHeaderColumns.tsx b/src/components/modules/table/memberHeaderColumns.tsx
index 3cf3871c..49c8ad0b 100644
--- a/src/components/modules/table/memberHeaderColumns.tsx
+++ b/src/components/modules/table/memberHeaderColumns.tsx
@@ -135,7 +135,19 @@ export const MemberHeaderColumns = ({ nwid, central = false }: IProp) => {
),
id: "creationTime",
cell: (info) => {
- return ;
+ const formatTime = (value: string, unit: string) => {
+ // Map full unit names to their abbreviations
+ const unitAbbreviations: { [key: string]: string } = {
+ second: "s ago",
+ minute: "m ago",
+ hour: "hr ago",
+ day: "dy ago",
+ };
+ const abbreviation = unitAbbreviations[unit] || unit;
+
+ return `${value} ${abbreviation}`;
+ };
+ return ;
},
}),
columnHelper.accessor("peers", {
diff --git a/src/pages/network/[id].tsx b/src/pages/network/[id].tsx
index 6e398e24..bf220e66 100644
--- a/src/pages/network/[id].tsx
+++ b/src/pages/network/[id].tsx
@@ -45,29 +45,56 @@ const NetworkById = () => {
{ enabled: !!query.id, refetchInterval: 10000 },
);
const { network, members = [] } = networkById || {};
- if (loadingNetwork) {
- // add loading progress bar to center of page, vertially and horizontally
+
+ if (errorNetwork) {
return (
-
+ {errorNetwork.message}
+
+ - {t("errorSteps.step1")}
+ - {t("errorSteps.step2")}
+
+
+ Network Actions
+
+
+
+
+
+
);
}
- if (errorNetwork) {
+ if (loadingNetwork) {
+ // add loading progress bar to center of page, vertially and horizontally
return (
- {errorNetwork.message}
+
-
- - {t("errorSteps.step1")}
- - {t("errorSteps.step2")}
-
);
}
+
return (
diff --git a/src/server/api/routers/networkRouter.ts b/src/server/api/routers/networkRouter.ts
index 6c310b38..5d568a04 100644
--- a/src/server/api/routers/networkRouter.ts
+++ b/src/server/api/routers/networkRouter.ts
@@ -134,7 +134,6 @@ export const networkRouter = createTRPCRouter({
.catch((err: APIError) => {
throwError(`${err.message}`);
});
-
// console.log(JSON.stringify(ztControllerResponse, null, 2));
if (!ztControllerResponse)
return throwError("Failed to get network details!");
@@ -214,10 +213,9 @@ export const networkRouter = createTRPCRouter({
.mutation(async ({ ctx, input }) => {
try {
// Delete ZT network
- const createCentralNw = await ztController.network_delete(
- input.nwid,
- input.central,
- );
+ const createCentralNw = await ztController
+ .network_delete(input.nwid, input.central)
+ .catch(() => []);
if (input.central) return createCentralNw;
// Delete networkMembers
diff --git a/src/utils/ztApi.ts b/src/utils/ztApi.ts
index 6d64f1f2..40aeb489 100644
--- a/src/utils/ztApi.ts
+++ b/src/utils/ztApi.ts
@@ -315,18 +315,13 @@ export const network_members = async function (
) {
// get headers based on local or central api
const { headers, ztCentralApiUrl } = await getOptions(isCentral);
- try {
- const addr = isCentral
- ? `${ztCentralApiUrl}/network/${nwid}/member`
- : `${LOCAL_ZT_ADDR}/controller/network/${nwid}/member`;
- // fetch members
- return await getData(addr, headers);
- } catch (error: unknown) {
- const prefix = isCentral ? "[CENTRAL] " : "";
- const message = `${prefix}An error occurred while getting network_members`;
- throw new APIError(message, error as AxiosError);
- }
+ const addr = isCentral
+ ? `${ztCentralApiUrl}/network/${nwid}/member`
+ : `${LOCAL_ZT_ADDR}/controller/network/${nwid}/member`;
+
+ // fetch members
+ return await getData(addr, headers);
};
export const local_network_detail = async function (
@@ -338,7 +333,6 @@ export const local_network_detail = async function (
try {
// get all members for a specific network
const members = await network_members(nwid);
-
const network = await getData(
`${LOCAL_ZT_ADDR}/controller/network/${nwid}`,
headers,
@@ -358,9 +352,7 @@ export const local_network_detail = async function (
members: [...membersArr],
};
} catch (error) {
- const message =
- "An error occurred while getting data from network_details function";
- throw new APIError(message, error as AxiosError);
+ throw new APIError(error, error as AxiosError);
}
};
// Get network details