Chungus 2.0

This commit is contained in:
Owen
2025-10-10 11:27:15 -07:00
parent f64a477c3d
commit d92b87b7c8
224 changed files with 1507 additions and 1586 deletions

View File

@@ -0,0 +1,43 @@
"use client";
import RemoteExitNodeContext from "@app/contexts/remoteExitNodeContext";
import { GetRemoteExitNodeResponse } from "#private/routers/remoteExitNode";
import { useState } from "react";
import { useTranslations } from "next-intl";
type RemoteExitNodeProviderProps = {
children: React.ReactNode;
remoteExitNode: GetRemoteExitNodeResponse;
};
export function RemoteExitNodeProvider({
children,
remoteExitNode: serverRemoteExitNode
}: RemoteExitNodeProviderProps) {
const [remoteExitNode, setRemoteExitNode] = useState<GetRemoteExitNodeResponse>(serverRemoteExitNode);
const t = useTranslations();
const updateRemoteExitNode = (updatedRemoteExitNode: Partial<GetRemoteExitNodeResponse>) => {
if (!remoteExitNode) {
throw new Error(t('remoteExitNodeErrorNoUpdate'));
}
setRemoteExitNode((prev) => {
if (!prev) {
return prev;
}
return {
...prev,
...updatedRemoteExitNode
};
});
};
return (
<RemoteExitNodeContext.Provider value={{ remoteExitNode, updateRemoteExitNode }}>
{children}
</RemoteExitNodeContext.Provider>
);
}
export default RemoteExitNodeProvider;