chore: upgrade ui components

This commit is contained in:
ReaJason
2025-04-06 13:55:17 +08:00
parent 8a0e3ee5de
commit 540559653f
32 changed files with 863 additions and 744 deletions
+35 -46
View File
@@ -1,11 +1,10 @@
import { CodeViewer } from "@/components/code-viewer.tsx";
import { QuickUsage } from "@/components/quick-usage.tsx";
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert.tsx";
import { Button } from "@/components/ui/button.tsx";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs.tsx";
import { downloadBytes } from "@/lib/utils.ts";
import { GenerateResult } from "@/types/shell.ts";
import { TriangleAlertIcon } from "lucide-react";
import { DownloadIcon } from "lucide-react";
import { useTranslation } from "react-i18next";
import { toast } from "sonner";
import { BasicInfo } from "./results/basic-info";
@@ -44,31 +43,26 @@ export function ShellResult({
/>
</TabsContent>
<TabsContent value="shell" className="mt-4">
<Alert>
<TriangleAlertIcon className="h-4 w-4" />
<AlertTitle>Warning</AlertTitle>
<AlertDescription>{t("tips.decompileTip")}</AlertDescription>
</Alert>
<div className="gap-4 my-2 flex items-center justify-end">
<Button
size="sm"
variant="outline"
className="w-28"
type="button"
onClick={() => {
if (!generateResult?.shellBytesBase64Str) {
toast.warning(t("tips.shellBytesEmpty"));
return;
}
downloadBytes(generateResult?.shellBytesBase64Str, generateResult?.shellClassName);
}}
>
{t("download")} Class
</Button>
</div>
<CodeViewer
showLineNumbers={false}
header={<div className="text-xs">{generateResult?.shellClassName}</div>}
button={
<Button
variant="ghost"
size="icon"
type="button"
className="h-7 w-7 [&_svg]:h-4 [&_svg]:w-4"
onClick={() => {
if (!generateResult?.shellBytesBase64Str) {
toast.warning(t("tips.shellBytesEmpty"));
return;
}
downloadBytes(generateResult?.shellBytesBase64Str, generateResult?.shellClassName);
}}
>
<DownloadIcon className="h-4 w-4" />
</Button>
}
wrapLongLines={true}
height={600}
code={generateResult?.shellBytesBase64Str ?? ""}
@@ -76,32 +70,27 @@ export function ShellResult({
/>
</TabsContent>
<TabsContent value="injector" className="mt-4">
<Alert>
<TriangleAlertIcon className="h-4 w-4" />
<AlertTitle>Warning</AlertTitle>
<AlertDescription>{t("tips.decompileTip")}</AlertDescription>
</Alert>
<div className="gap-4 my-2 flex items-center justify-end">
<Button
size="sm"
className="w-28"
variant="outline"
type="button"
onClick={() => {
if (!generateResult?.injectorBytesBase64Str) {
toast.warning(t("tips.shellBytesEmpty"));
return;
}
downloadBytes(generateResult?.injectorBytesBase64Str, generateResult?.injectorClassName);
}}
>
{t("download")} Class
</Button>
</div>
<CodeViewer
showLineNumbers={false}
wrapLongLines={true}
header={<div className="text-xs">{generateResult?.injectorClassName}</div>}
button={
<Button
variant="ghost"
size="icon"
type="button"
className="h-7 w-7 [&_svg]:h-4 [&_svg]:w-4"
onClick={() => {
if (!generateResult?.injectorBytesBase64Str) {
toast.warning(t("tips.shellBytesEmpty"));
return;
}
downloadBytes(generateResult?.injectorBytesBase64Str, generateResult?.injectorClassName);
}}
>
<DownloadIcon className="h-4 w-4" />
</Button>
}
height={600}
code={generateResult?.injectorBytesBase64Str ?? ""}
language="text"