mirror of
https://github.com/luckfox-eng29/kvm.git
synced 2026-01-20 10:14:18 +01:00
feat(ui): enable multiple keyboard layouts for "paste text" to remote host (#405)
* Enable multiple keyboard layouts for paste text from host * Trema is the more robust method for capital umlauts * Improve error handling and pre-loading * Improve accent handling * Remove obscure Alt-Gr keys, unsure if they are supported everywhere * Add Swiss French * Change line ordering * Fix whitespace * Add French (France) * Add English (UK) * Add Swedish * Add Spanish * Fix fr_FR special characters * Add more keys to Spanish * Remove default value shift: false * Add Norwegian * Operator precedence 🤦 * Add Italian * Add Czech * Move guard statements outside of loop * Move language name definitions into the keyboard layout files * Change the locale names to their native language German->Deutsch et. al. * Move hold key handling into Go backend analogous to https://www.kernel.org/doc/Documentation/usb/gadget_hid.txt * Remove trailing whitespace * Fix * Add Belgisch Nederlands * Add JSONRPC handling * Use useSettingsStore * Revert "Move hold key handling into Go backend analogous to https://www.kernel.org/doc/Documentation/usb/gadget_hid.txt" This reverts commit 146cee9309ca7a8b7ab103e955f3fcc38a4bc692. * Move FeatureFlag to navigation * Fix: flip Y/Z * Add useEffect dependencies * Embolden language * Add to useCallback dependencies --------- Co-authored-by: Marc Brooks <IDisposable@gmail.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { NavLink, Outlet, useLocation } from "react-router-dom";
|
||||
import {
|
||||
LuSettings,
|
||||
LuMouse,
|
||||
LuKeyboard,
|
||||
LuVideo,
|
||||
LuCpu,
|
||||
@@ -19,6 +20,7 @@ import { LinkButton } from "@/components/Button";
|
||||
import LoadingSpinner from "@/components/LoadingSpinner";
|
||||
import { useUiStore } from "@/hooks/stores";
|
||||
import useKeyboard from "@/hooks/useKeyboard";
|
||||
import { FeatureFlag } from "../components/FeatureFlag";
|
||||
|
||||
import { cx } from "../cva.config";
|
||||
|
||||
@@ -149,11 +151,25 @@ export default function SettingsRoute() {
|
||||
className={({ isActive }) => (isActive ? "active" : "")}
|
||||
>
|
||||
<div className="flex items-center gap-x-2 rounded-md px-2.5 py-2.5 text-sm transition-colors hover:bg-slate-100 dark:hover:bg-slate-700 in-[.active]:bg-blue-50 in-[.active]:text-blue-700! md:in-[.active]:bg-transparent dark:in-[.active]:bg-blue-900 dark:in-[.active]:text-blue-200! dark:md:in-[.active]:bg-transparent">
|
||||
<LuKeyboard className="h-4 w-4 shrink-0" />
|
||||
|
||||
<LuMouse className="h-4 w-4 shrink-0" />
|
||||
<h1>Mouse</h1>
|
||||
</div>
|
||||
</NavLink>
|
||||
</div>
|
||||
<FeatureFlag minAppVersion="0.4.0" name="Paste text">
|
||||
<div className="shrink-0">
|
||||
<NavLink
|
||||
to="keyboard"
|
||||
className={({ isActive }) => (isActive ? "active" : "")}
|
||||
>
|
||||
<div className="flex items-center gap-x-2 rounded-md px-2.5 py-2.5 text-sm transition-colors hover:bg-slate-100 dark:hover:bg-slate-700 [.active_&]:bg-blue-50 [.active_&]:!text-blue-700 md:[.active_&]:bg-transparent dark:[.active_&]:bg-blue-900 dark:[.active_&]:!text-blue-200 dark:md:[.active_&]:bg-transparent">
|
||||
<LuKeyboard className="h-4 w-4 shrink-0" />
|
||||
<h1>Keyboard</h1>
|
||||
</div>
|
||||
</NavLink>
|
||||
</div>
|
||||
</FeatureFlag>
|
||||
<div className="shrink-0">
|
||||
<NavLink
|
||||
to="video"
|
||||
|
||||
Reference in New Issue
Block a user