mirror of https://github.com/jetkvm/kvm.git
Compare commits
5 Commits
9a40840244
...
65c23fbf1d
| Author | SHA1 | Date |
|---|---|---|
|
|
65c23fbf1d | |
|
|
bbbea61723 | |
|
|
426cd6fe56 | |
|
|
9115362956 | |
|
|
6b052e7777 |
|
|
@ -10,9 +10,12 @@ import { useDeviceUiNavigation } from "@/hooks/useAppNavigation";
|
||||||
import { useVersion } from "@/hooks/useVersion";
|
import { useVersion } from "@/hooks/useVersion";
|
||||||
import { useDeviceStore } from "@/hooks/stores";
|
import { useDeviceStore } from "@/hooks/stores";
|
||||||
import notifications from "@/notifications";
|
import notifications from "@/notifications";
|
||||||
|
import { DOWNGRADE_VERSION } from "@/ui.config";
|
||||||
|
|
||||||
import { GitHubIcon } from "./Icons";
|
import { GitHubIcon } from "./Icons";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
interface FailSafeModeOverlayProps {
|
interface FailSafeModeOverlayProps {
|
||||||
reason: string;
|
reason: string;
|
||||||
}
|
}
|
||||||
|
|
@ -86,7 +89,7 @@ export function FailSafeModeOverlay({ reason }: FailSafeModeOverlayProps) {
|
||||||
const handleReportAndDownloadLogs = () => {
|
const handleReportAndDownloadLogs = () => {
|
||||||
setIsDownloadingLogs(true);
|
setIsDownloadingLogs(true);
|
||||||
|
|
||||||
send("getFailSafeLogs", {}, (resp: JsonRpcResponse) => {
|
send("getFailSafeLogs", {}, async (resp: JsonRpcResponse) => {
|
||||||
setIsDownloadingLogs(false);
|
setIsDownloadingLogs(false);
|
||||||
|
|
||||||
if ("error" in resp) {
|
if ("error" in resp) {
|
||||||
|
|
@ -105,7 +108,9 @@ export function FailSafeModeOverlay({ reason }: FailSafeModeOverlayProps) {
|
||||||
a.href = url;
|
a.href = url;
|
||||||
a.download = filename;
|
a.download = filename;
|
||||||
document.body.appendChild(a);
|
document.body.appendChild(a);
|
||||||
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||||
a.click();
|
a.click();
|
||||||
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||||
document.body.removeChild(a);
|
document.body.removeChild(a);
|
||||||
URL.revokeObjectURL(url);
|
URL.revokeObjectURL(url);
|
||||||
|
|
||||||
|
|
@ -126,7 +131,7 @@ Please attach the recovery logs file that was downloaded to your computer:
|
||||||
\`${filename}\`
|
\`${filename}\`
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Please omit any sensitive information from the logs.
|
> Please remove any sensitive information from the logs. The reports are public and can be viewed by anyone.
|
||||||
|
|
||||||
## Additional Context
|
## Additional Context
|
||||||
[Please describe what you were doing when this occurred]`;
|
[Please describe what you were doing when this occurred]`;
|
||||||
|
|
@ -141,7 +146,7 @@ Please attach the recovery logs file that was downloaded to your computer:
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleDowngrade = () => {
|
const handleDowngrade = () => {
|
||||||
navigateTo("/settings/general/update?app=0.4.8");
|
navigateTo(`/settings/general/update?app=${DOWNGRADE_VERSION}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
@ -177,7 +182,7 @@ Please attach the recovery logs file that was downloaded to your computer:
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="h-8 w-px bg-slate-200 dark:bg-slate-700 block" />
|
<div className="h-8 w-px bg-slate-200 dark:bg-slate-700 block" />
|
||||||
<Tooltip text="Download logs first to unlock" show={!hasDownloadedLogs}>
|
<Tooltip text="Download logs first" show={!hasDownloadedLogs}>
|
||||||
<Button
|
<Button
|
||||||
onClick={() => navigateTo("/settings/general/reboot")}
|
onClick={() => navigateTo("/settings/general/reboot")}
|
||||||
theme="light"
|
theme="light"
|
||||||
|
|
@ -187,12 +192,12 @@ Please attach the recovery logs file that was downloaded to your computer:
|
||||||
/>
|
/>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
||||||
<Tooltip text="Download logs first to unlock" show={!hasDownloadedLogs}>
|
<Tooltip text="Download logs first" show={!hasDownloadedLogs}>
|
||||||
<Button
|
<Button
|
||||||
size="SM"
|
size="SM"
|
||||||
onClick={handleDowngrade}
|
onClick={handleDowngrade}
|
||||||
theme="light"
|
theme="light"
|
||||||
text="Downgrade to v0.4.8"
|
text={`Downgrade to v${DOWNGRADE_VERSION}`}
|
||||||
disabled={!hasDownloadedLogs}
|
disabled={!hasDownloadedLogs}
|
||||||
/>
|
/>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
|
||||||
|
|
@ -853,7 +853,7 @@ export default function KvmIdRoute() {
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="relative flex h-full w-full overflow-hidden">
|
<div className="relative flex h-full w-full overflow-hidden">
|
||||||
{!isFailsafeMode && <WebRTCVideo />}
|
{!isFailsafeMode && failsafeReason === "video" && <WebRTCVideo />}
|
||||||
<div
|
<div
|
||||||
style={{ animationDuration: "500ms" }}
|
style={{ animationDuration: "500ms" }}
|
||||||
className="animate-slideUpFade pointer-events-none absolute inset-0 flex items-center justify-center p-4"
|
className="animate-slideUpFade pointer-events-none absolute inset-0 flex items-center justify-center p-4"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
export const CLOUD_API = import.meta.env.VITE_CLOUD_API;
|
export const CLOUD_API = import.meta.env.VITE_CLOUD_API;
|
||||||
|
|
||||||
|
export const DOWNGRADE_VERSION = import.meta.env.VITE_DOWNGRADE_VERSION || "0.4.8";
|
||||||
|
|
||||||
// In device mode, an empty string uses the current hostname (the JetKVM device's IP) as the API endpoint
|
// In device mode, an empty string uses the current hostname (the JetKVM device's IP) as the API endpoint
|
||||||
export const DEVICE_API = "";
|
export const DEVICE_API = "";
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue