mirror of
https://github.com/jason5ng32/MyIP.git
synced 2026-11-04 08:55:47 +00:00
Improvements
This commit is contained in:
1 parent
96525d2fc7
commit
ae52320d3b
2 files changed
+3
-9
No files matched your search
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<footer class="pb-6 text-sm text-muted-foreground">
|
||||
<footer class="pb-6 text-sm text-muted-foreground" :class="!isInHomePage ? 'border-t border-secondary' : ''">
|
||||
<!-- Primary footer links: Sponsor / Privacy / About / Changelog / Special
|
||||
Thanks. The last three open the same About sheet on their own tab.
|
||||
Text-only (no per-button icons) to keep the row calm. -->
|
||||
@@ -174,13 +174,14 @@ import { Badge } from '@/components/ui/badge';
|
||||
import { Separator } from '@/components/ui/separator';
|
||||
import { Compass, ExternalLink, CircleFadingArrowUp, CirclePlus, BugOff, Smile } from '@lucide/vue';
|
||||
import { Icon } from '@iconify/vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
|
||||
const { t, tm, rt, locale } = useI18n();
|
||||
|
||||
const store = useMainStore();
|
||||
const isMobile = computed(() => store.isMobile);
|
||||
const configs = computed(() => store.configs);
|
||||
|
||||
const isInHomePage = computed(() => useRoute().path === '/');
|
||||
const tabs = ['about', 'changelog', 'acknowledgement'];
|
||||
const content = ref('about');
|
||||
// Static data from JSON — reverse once via computed so the template stays tidy.
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
<div class="flex min-h-[calc(100dvh_-_3.5rem_-_env(safe-area-inset-top))] flex-col">
|
||||
<main class="flex-1">
|
||||
<div class="mx-auto w-full max-w-[1400px] px-4 md:px-6 py-6">
|
||||
<PageBreadcrumb v-if="tool" :items="breadcrumb" />
|
||||
<h1 v-if="tool" class="mb-4 flex items-center gap-2 text-2xl md:text-3xl font-semibold tracking-tight">
|
||||
<span aria-hidden="true">{{ tool.emoji }}</span>
|
||||
{{ t(tool.titleKey) }}
|
||||
@@ -29,7 +28,6 @@ import { TOOL_BY_SLUG } from '@/data/tools.js';
|
||||
import { useDocumentMeta } from '@/composables/use-document-meta.js';
|
||||
import { shouldDropToolCache } from '@/utils/tool-cache.js';
|
||||
import Footer from '@/components/Footer.vue';
|
||||
import PageBreadcrumb from '@/components/PageBreadcrumb.vue';
|
||||
import { ToolLoadingSkeleton } from '@/components/ui/tool-loading-skeleton';
|
||||
|
||||
defineOptions({ name: 'ToolPage' });
|
||||
@@ -60,11 +58,6 @@ const slug = computed((previous) => routeSlug.value ?? previous ?? null);
|
||||
const tool = computed(() => TOOL_BY_SLUG.get(slug.value) || null);
|
||||
const toolComponent = computed(() => (tool.value ? asyncToolFor(tool.value) : null));
|
||||
|
||||
const breadcrumb = computed(() => [
|
||||
{ label: t('advancedtools.Title'), section: 'AdvancedTools' },
|
||||
{ label: `${tool.value.emoji} ${t(tool.value.titleKey)}` },
|
||||
]);
|
||||
|
||||
// Per-tool head: localized title + description, self-referential canonical.
|
||||
useDocumentMeta(() => {
|
||||
if (!tool.value) return {};
|
||||
|
||||
Reference in new issue
Block a user