update developer settings

This commit is contained in:
kmmiio99o 2025-12-23 16:22:01 +01:00
parent 57804aad2f
commit c8bd5a4303
No known key found for this signature in database
GPG key ID: 13A107AB06ACF9FA

View file

@ -3,8 +3,18 @@ import { CheckState, useFileExists } from "@core/ui/hooks/useFS";
import AssetBrowser from "@core/ui/settings/pages/Developer/AssetBrowser";
import { useProxy } from "@core/vendetta/storage";
import { findAssetId } from "@lib/api/assets";
import { connectToDebugger, disconnectFromDebugger, isConnectedToDebugger } from "@lib/api/debug";
import { getReactDevToolsProp, getReactDevToolsVersion, isLoaderConfigSupported, isReactDevToolsPreloaded, isVendettaLoader } from "@lib/api/native/loader";
import {
connectToDebugger,
disconnectFromDebugger,
isConnectedToDebugger,
} from "@lib/api/debug";
import {
getReactDevToolsProp,
getReactDevToolsVersion,
isLoaderConfigSupported,
isReactDevToolsPreloaded,
isVendettaLoader,
} from "@lib/api/native/loader";
import { loaderConfig, settings } from "@lib/api/settings";
import { lazyDestructure } from "@lib/utils/lazy";
import { NavigationNative } from "@metro/common";
@ -40,7 +50,8 @@ const { AlertModal, AlertActionButton } = lazyDestructure(() =>
findByProps("AlertModal", "AlertActions"),
);
const RDT_EMBED_LINK = "https://codeberg.org/raincord/raindevtools/raw/branch/dev/dist/index.bundle";
const RDT_EMBED_LINK =
"https://codeberg.org/raincord/raindevtools/raw/branch/dev/dist/index.bundle";
const useStyles = createStyles({
leadingText: {
@ -57,8 +68,10 @@ const useStyles = createStyles({
});
export default function Developer() {
const [rdtFileExists, fs] = useFileExists("preloads/reactDevtools.js");
const [isDebuggerConnected, setIsDebuggerConnected] = useState(isConnectedToDebugger());
const [rdtFileExists, fs] = useFileExists("preloads/reactDevtools.js");
const [isDebuggerConnected, setIsDebuggerConnected] = useState(
isConnectedToDebugger(),
);
const styles = useStyles();
const navigation = NavigationNative.useNavigation();
@ -66,6 +79,23 @@ export default function Developer() {
useProxy(settings);
useProxy(loaderConfig);
useEffect(() => {
const interval = setInterval(() => {
setIsDebuggerConnected(isConnectedToDebugger());
}, 1000);
return () => clearInterval(interval);
}, []);
const handleDebuggerConnect = () => {
if (isDebuggerConnected) {
disconnectFromDebugger();
setIsDebuggerConnected(false);
} else {
connectToDebugger(settings.debuggerUrl);
setTimeout(() => setIsDebuggerConnected(isConnectedToDebugger()), 100);
}
};
return (
<ErrorBoundary>
<ScrollView
@ -245,6 +275,11 @@ export default function Developer() {
fs.downloadFile(
RDT_EMBED_LINK,
"preloads/reactDevtools.js",
).then(() =>
showToast(
"Successfully installed! A reload is required",
findAssetId("DownloadIcon"),
),
);
} else if (rdtFileExists === CheckState.TRUE) {
fs.removeFile("preloads/reactDevtools.js");
@ -252,7 +287,7 @@ export default function Developer() {
}}
icon={findAssetId(
rdtFileExists === CheckState.TRUE
? "ic_message_delete"
? "TrashIcon"
: "DownloadIcon",
)}
style={{ marginLeft: 8 }}