Compare commits

...

5 Commits

Author SHA1 Message Date
Daniel Lorch 6d18f78b27 Add to useCallback dependencies 2025-05-21 14:52:44 +00:00
Daniel Lorch fc1b304250 Embolden language 2025-05-21 14:50:46 +00:00
Daniel Lorch 4804929ce0 Add useEffect dependencies 2025-05-21 14:49:27 +00:00
Daniel Lorch d962a8fb05 Fix: flip Y/Z 2025-05-21 14:38:12 +00:00
Daniel Lorch 1460fc5ac2 Move FeatureFlag to navigation 2025-05-21 14:37:38 +00:00
4 changed files with 38 additions and 38 deletions

View File

@ -44,7 +44,7 @@ export default function PasteModal() {
if ("error" in resp) return;
setKeyboardLayout(resp.result as string);
});
}, []);
}, [send, setKeyboardLayout]);
const onCancelPasteMode = useCallback(() => {
setPasteMode(false);
@ -98,7 +98,7 @@ export default function PasteModal() {
console.error(error);
notifications.error("Failed to paste text");
}
}, [rpcDataChannel?.readyState, send, setDisableVideoFocusTrap, setPasteMode]);
}, [rpcDataChannel?.readyState, send, setDisableVideoFocusTrap, setPasteMode, keyboardLayout]);
useEffect(() => {
if (TextAreaRef.current) {
@ -169,7 +169,7 @@ export default function PasteModal() {
</div>
<div className="space-y-4">
<p className="text-xs text-slate-600 dark:text-slate-400">
Sending key codes using keyboard layout {layouts[keyboardLayout]}
Sending text using keyboard layout: {layouts[keyboardLayout]}
</p>
</div>
</div>

View File

@ -56,8 +56,8 @@ export const chars = {
V: { key: "KeyV", shift: true },
W: { key: "KeyW", shift: true },
X: { key: "KeyX", shift: true },
Y: { key: "KeyZ", shift: true },
Z: { key: "KeyY", shift: true },
Y: { key: "KeyY", shift: true },
Z: { key: "KeyZ", shift: true },
a: { key: "KeyA" },
"á": { key: "KeyA", accentKey: keyAcute },
"â": { key: "KeyA", accentKey: keyHat },
@ -106,8 +106,8 @@ export const chars = {
v: { key: "KeyV" },
w: { key: "KeyW" },
x: { key: "KeyX" },
y: { key: "KeyZ" },
z: { key: "KeyY" },
y: { key: "KeyY" },
z: { key: "KeyZ" },
"§": { key: "Backquote" },
"½": { key: "Backquote", shift: true },
1: { key: "Digit1" },

View File

@ -6,7 +6,6 @@ import notifications from "@/notifications";
import { SettingsPageHeader } from "@components/SettingsPageheader";
import { layouts } from "@/keyboardLayouts";
import { FeatureFlag } from "../components/FeatureFlag";
import { SelectMenuBasic } from "../components/SelectMenuBasic";
import { SettingsItem } from "./devices.$id.settings";
@ -52,7 +51,6 @@ export default function SettingsKeyboardRoute() {
/>
<div className="space-y-4">
<FeatureFlag minAppVersion="0.4.0" name="Paste text">
{ /* this menu item could be renamed to plain "Keyboard layout" in the future, when also the virtual keyboard layout mappings are being implemented */ }
<SettingsItem
title="Paste text"
@ -70,7 +68,6 @@ export default function SettingsKeyboardRoute() {
<p className="text-xs text-slate-600 dark:text-slate-400">
Pasting text sends individual key strokes to the target device. The keyboard layout determines which key codes are being sent. Ensure that the keyboard layout in JetKVM matches the settings in the operating system.
</p>
</FeatureFlag>
</div>
</div>
);

View File

@ -20,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";
@ -156,6 +157,7 @@ export default function SettingsRoute() {
</div>
</NavLink>
</div>
<FeatureFlag minAppVersion="0.4.0" name="Paste text">
<div className="shrink-0">
<NavLink
to="keyboard"
@ -167,6 +169,7 @@ export default function SettingsRoute() {
</div>
</NavLink>
</div>
</FeatureFlag>
<div className="shrink-0">
<NavLink
to="video"