All checks were successful
Build & Sign Wraith / Build Windows + Sign (push) Successful in 3m54s
- Convert all ~40 inline styles in UnlockLayout.vue to Tailwind CSS v4 arbitrary-value classes, matching MainLayout.vue color conventions (CSS variables + hex arbitraries). Visual appearance preserved exactly. - Create ToolShell.vue reusable wrapper that owns output/running state and execute/setOutput API via defineExpose. - Refactor PingTool, TracerouteTool, DnsLookup, WhoisTool, BandwidthTest to use ToolShell — each tool now contains only its unique inputs and invoke calls. Zero vue-tsc errors. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
26 lines
1.0 KiB
Vue
26 lines
1.0 KiB
Vue
<template>
|
|
<ToolShell ref="shell" placeholder="Enter a domain or IP and click Whois">
|
|
<template #default="{ running }">
|
|
<input v-model="target" type="text" placeholder="Domain or IP" class="px-3 py-1.5 text-sm rounded bg-[#161b22] border border-[#30363d] text-[#e0e0e0] outline-none focus:border-[#58a6ff] flex-1" @keydown.enter="lookup" />
|
|
<button class="px-4 py-1.5 text-sm font-bold rounded bg-[#58a6ff] text-black cursor-pointer disabled:opacity-40" :disabled="running" @click="lookup">Whois</button>
|
|
</template>
|
|
</ToolShell>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { ref } from "vue";
|
|
import { invoke } from "@tauri-apps/api/core";
|
|
import ToolShell from "./ToolShell.vue";
|
|
|
|
const props = defineProps<{ sessionId: string }>();
|
|
const target = ref("");
|
|
const shell = ref<InstanceType<typeof ToolShell> | null>(null);
|
|
|
|
async function lookup(): Promise<void> {
|
|
if (!target.value) return;
|
|
shell.value?.execute(() =>
|
|
invoke<string>("tool_whois", { sessionId: props.sessionId, target: target.value })
|
|
);
|
|
}
|
|
</script>
|