From 6e3c05072cb507e2a376b7019836bea7bf663cb0 Mon Sep 17 00:00:00 2001 From: AAGaming Date: Sat, 15 Oct 2022 23:46:42 -0400 Subject: Developer menu (#211) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add settings utils to use settings outside of components * initial implementation of developer menu * ✨ Add support for addScriptToEvaluateOnNewDocument * React DevTools support * increase chance of RDT successfully injecting * Rewrite toaster hook to not re-create the window * remove friends focus workaround because it's fixed * Expose various DFL utilities as DFL in dev mode * try to fix text field focuss * move focusable to outside field * add onTouchEnd and onClick to focusable * Update pnpm-lock.yaml Co-authored-by: FinalDoom <7464170-FinalDoom@users.noreply.gitlab.com> Co-authored-by: TrainDoctor --- .../components/settings/pages/developer/index.tsx | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 frontend/src/components/settings/pages/developer/index.tsx (limited to 'frontend/src/components/settings/pages/developer/index.tsx') diff --git a/frontend/src/components/settings/pages/developer/index.tsx b/frontend/src/components/settings/pages/developer/index.tsx new file mode 100644 index 00000000..447c9606 --- /dev/null +++ b/frontend/src/components/settings/pages/developer/index.tsx @@ -0,0 +1,84 @@ +import { Field, Focusable, TextField, Toggle } from 'decky-frontend-lib'; +import { useRef } from 'react'; +import { FaReact, FaSteamSymbol } from 'react-icons/fa'; + +import { setShouldConnectToReactDevTools, setShowValveInternal } from '../../../../developer'; +import { useSetting } from '../../../../utils/hooks/useSetting'; + +export default function DeveloperSettings() { + const [enableValveInternal, setEnableValveInternal] = useSetting('developer.valve_internal', false); + const [reactDevtoolsEnabled, setReactDevtoolsEnabled] = useSetting('developer.rdt.enabled', false); + const [reactDevtoolsIP, setReactDevtoolsIP] = useSetting('developer.rdt.ip', ''); + const textRef = useRef(null); + + return ( + <> + + Enables the Valve internal developer menu.{' '} + Do not touch anything in this menu unless you know what it does. + + } + icon={} + > + { + setEnableValveInternal(toggleValue); + setShowValveInternal(toggleValue); + }} + /> + {' '} + { + (textRef.current?.childNodes[0] as HTMLInputElement)?.focus(); + } + : undefined + } + onClick={ + reactDevtoolsIP == '' + ? () => { + (textRef.current?.childNodes[0] as HTMLInputElement)?.focus(); + } + : undefined + } + onOKButton={ + reactDevtoolsIP == '' + ? () => { + (textRef.current?.childNodes[0] as HTMLInputElement)?.focus(); + } + : undefined + } + > + + + Enables connection to a computer running React DevTools. Changing this setting will reload Steam. Set + the IP address before enabling. + +
+ setReactDevtoolsIP(e?.target.value)} /> +
+ + } + icon={} + > + { + setReactDevtoolsEnabled(toggleValue); + setShouldConnectToReactDevTools(toggleValue); + }} + /> +
+
+ + ); +} -- cgit v1.2.3