diff --git a/src/ui/Desktop/Admin/AdminSettings.tsx b/src/ui/Desktop/Admin/AdminSettings.tsx index 722c1cc5..e0d5cf4e 100644 --- a/src/ui/Desktop/Admin/AdminSettings.tsx +++ b/src/ui/Desktop/Admin/AdminSettings.tsx @@ -29,16 +29,10 @@ import { disableOIDCConfig, makeUserAdmin, removeAdminStatus, - deleteUser + deleteUser, + getCookie } from "@/ui/main-axios.ts"; -function getCookie(name: string) { - return document.cookie.split('; ').reduce((r, v) => { - const parts = v.split('='); - return parts[0] === name ? decodeURIComponent(parts[1]) : r; - }, ""); -} - interface AdminSettingsProps { isTopbarOpen?: boolean; } diff --git a/src/ui/Desktop/Apps/Terminal/Terminal.tsx b/src/ui/Desktop/Apps/Terminal/Terminal.tsx index cd4e2362..eab494c1 100644 --- a/src/ui/Desktop/Apps/Terminal/Terminal.tsx +++ b/src/ui/Desktop/Apps/Terminal/Terminal.tsx @@ -6,6 +6,7 @@ import {Unicode11Addon} from '@xterm/addon-unicode11'; import {WebLinksAddon} from '@xterm/addon-web-links'; import {useTranslation} from 'react-i18next'; import {toast} from 'sonner'; +import {getCookie} from '@/ui/main-axios.ts'; interface SSHTerminalProps { hostConfig: any; @@ -131,12 +132,6 @@ export const Terminal = forwardRef(function SSHTerminal( hardRefresh(); } - function getCookie(name: string) { - return document.cookie.split('; ').reduce((r, v) => { - const parts = v.split('='); - return parts[0] === name ? decodeURIComponent(parts[1]) : r; - }, ""); - } function getUseRightClickCopyPaste() { return getCookie("rightClickCopyPaste") === "true" diff --git a/src/ui/Desktop/Homepage/HomepageAuth.tsx b/src/ui/Desktop/Homepage/HomepageAuth.tsx index f60bbf6f..d3a5ebb3 100644 --- a/src/ui/Desktop/Homepage/HomepageAuth.tsx +++ b/src/ui/Desktop/Homepage/HomepageAuth.tsx @@ -21,18 +21,12 @@ import { getOIDCAuthorizeUrl, verifyTOTPLogin, setCookie, + getCookie, getServerConfig, type ServerConfig } from "../../main-axios.ts"; import {ServerConfig as ServerConfigComponent} from "@/ui/Desktop/ElectronOnly/ServerConfig.tsx"; -function getCookie(name: string) { - return document.cookie.split('; ').reduce((r, v) => { - const parts = v.split('='); - return parts[0] === name ? decodeURIComponent(parts[1]) : r; - }, ""); -} - interface HomepageAuthProps extends React.ComponentProps<"div"> { setLoggedIn: (loggedIn: boolean) => void; setIsAdmin: (isAdmin: boolean) => void; diff --git a/src/ui/Desktop/Navigation/TopNavbar.tsx b/src/ui/Desktop/Navigation/TopNavbar.tsx index 5124194c..201ba3b7 100644 --- a/src/ui/Desktop/Navigation/TopNavbar.tsx +++ b/src/ui/Desktop/Navigation/TopNavbar.tsx @@ -15,6 +15,7 @@ import {Checkbox} from "@/components/ui/checkbox.tsx"; import {Separator} from "@/components/ui/separator.tsx"; import {useTranslation} from "react-i18next"; import {TabDropdown} from "@/ui/Desktop/Navigation/Tabs/TabDropdown.tsx"; +import {getCookie, setCookie} from "@/ui/main-axios.ts"; interface TopNavbarProps { isTopbarOpen: boolean; @@ -204,15 +205,8 @@ export function TopNavbar({isTopbarOpen, setIsTopbarOpen}: TopNavbarProps): Reac const terminalTabs = tabs.filter((tab: any) => tab.type === 'terminal'); - function getCookie(name: string) { - return document.cookie.split('; ').reduce((r, v) => { - const parts = v.split('='); - return parts[0] === name ? decodeURIComponent(parts[1]) : r; - }, ""); - } - const updateRightClickCopyPaste = (checked: boolean) => { - document.cookie = `rightClickCopyPaste=${checked}; expires=2147483647; path=/`; + setCookie("rightClickCopyPaste", checked.toString()); } return ( diff --git a/src/ui/Mobile/Homepage/HomepageAuth.tsx b/src/ui/Mobile/Homepage/HomepageAuth.tsx index 6f47f285..ff8d3057 100644 --- a/src/ui/Mobile/Homepage/HomepageAuth.tsx +++ b/src/ui/Mobile/Homepage/HomepageAuth.tsx @@ -18,17 +18,11 @@ import { completePasswordReset, getOIDCAuthorizeUrl, verifyTOTPLogin, - setCookie + setCookie, + getCookie } from "@/ui/main-axios.ts"; import {PasswordInput} from "@/components/ui/password-input.tsx"; -function getCookie(name: string) { - return document.cookie.split('; ').reduce((r, v) => { - const parts = v.split('='); - return parts[0] === name ? decodeURIComponent(parts[1]) : r; - }, ""); -} - interface HomepageAuthProps extends React.ComponentProps<"div"> { setLoggedIn: (loggedIn: boolean) => void; setIsAdmin: (isAdmin: boolean) => void; diff --git a/src/ui/Mobile/MobileApp.tsx b/src/ui/Mobile/MobileApp.tsx index 2a8bbdee..3b502ef6 100644 --- a/src/ui/Mobile/MobileApp.tsx +++ b/src/ui/Mobile/MobileApp.tsx @@ -4,17 +4,10 @@ import {TerminalKeyboard} from "@/ui/Mobile/Apps/Terminal/TerminalKeyboard.tsx"; import {BottomNavbar} from "@/ui/Mobile/Navigation/BottomNavbar.tsx"; import {LeftSidebar} from "@/ui/Mobile/Navigation/LeftSidebar.tsx"; import {TabProvider, useTabs} from "@/ui/Mobile/Navigation/Tabs/TabContext.tsx"; -import {getUserInfo} from "@/ui/main-axios.ts"; +import {getUserInfo, getCookie} from "@/ui/main-axios.ts"; import {HomepageAuth} from "@/ui/Mobile/Homepage/HomepageAuth.tsx"; import {useTranslation} from "react-i18next"; -function getCookie(name: string) { - return document.cookie.split('; ').reduce((r, v) => { - const parts = v.split('='); - return parts[0] === name ? decodeURIComponent(parts[1]) : r; - }, ""); -} - const AppContent: FC = () => { const {t} = useTranslation(); const {tabs, currentTab, getTab, removeTab} = useTabs();