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