blob: bcd66c0e49ec11453564c0be4fe81c69e499f501 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
import { PanelSectionRow } from "@decky/ui";
import { FC } from "react";
import { STYLES } from "../utils/constants";
import { ApiResponse } from "../types/index";
export type OperationResult = ApiResponse;
interface ResultDisplayProps {
result: OperationResult | null;
}
export const ResultDisplay: FC<ResultDisplayProps> = ({ result }) => {
if (!result) return null;
const isSuccess = result.status === "success";
return (
<PanelSectionRow>
<div style={isSuccess ? STYLES.statusInstalled : STYLES.statusNotInstalled}>
{isSuccess ? (
<>
✅ {result.output?.includes("uninstall") || result.output?.includes("remov")
? "OptiScaler mod removed successfully"
: "OptiScaler mod installed successfully"}
</>
) : (
<>
❌ <strong>Error:</strong> {result.message || "Operation failed"}
</>
)}
{result.output && !isSuccess && (
<details style={{ marginTop: '8px' }}>
<summary style={{ cursor: 'pointer', fontSize: '12px' }}>View Details</summary>
<pre style={{ ...STYLES.preWrap, fontSize: '11px', marginTop: '4px' }}>
{result.output}
</pre>
</details>
)}
</div>
</PanelSectionRow>
);
};
|