refactor(10-12): migrate sidebar + layout + TreeItem SVGs to AppIcon

- StorageBrowser.vue: replace 8 inline SVGs (plus, folder x2, pencil, trash, share, folderMove, document)
- AppSidebar.vue: replace 8 inline SVGs (tag, inbox, chevronRight x2, folder, cloud, shield, cog dual-path, logout)
- AdminSidebar.vue: replace 6 inline SVGs (home, users, chartBar, lightBulb, clipboardList, logout)
- TreeItem.vue: replace 1 inline SVG (chevronRight expand/collapse)
This commit is contained in:
curo1305
2026-06-16 08:35:02 +02:00
parent 01a0605831
commit cb41753605
4 changed files with 35 additions and 105 deletions
+7 -24
View File
@@ -11,10 +11,7 @@
class="nav-link"
:class="{ 'nav-link-active': $route.path === '/admin' }"
>
<svg class="w-4 h-4 mr-2 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
</svg>
<AppIcon name="home" class="w-4 h-4 mr-2 shrink-0" />
Overview
</router-link>
@@ -23,10 +20,7 @@
class="nav-link"
:class="{ 'nav-link-active': $route.path.startsWith('/admin/users') }"
>
<svg class="w-4 h-4 mr-2 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z" />
</svg>
<AppIcon name="users" class="w-4 h-4 mr-2 shrink-0" />
Users
</router-link>
@@ -35,10 +29,7 @@
class="nav-link"
:class="{ 'nav-link-active': $route.path.startsWith('/admin/quotas') }"
>
<svg class="w-4 h-4 mr-2 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
</svg>
<AppIcon name="chartBar" class="w-4 h-4 mr-2 shrink-0" />
Quotas
</router-link>
@@ -47,10 +38,7 @@
class="nav-link"
:class="{ 'nav-link-active': $route.path.startsWith('/admin/ai') }"
>
<svg class="w-4 h-4 mr-2 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
</svg>
<AppIcon name="lightBulb" class="w-4 h-4 mr-2 shrink-0" />
AI Config
</router-link>
@@ -59,10 +47,7 @@
class="nav-link"
:class="{ 'nav-link-active': $route.path.startsWith('/admin/audit') }"
>
<svg class="w-4 h-4 mr-2 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" />
</svg>
<AppIcon name="clipboardList" class="w-4 h-4 mr-2 shrink-0" />
Audit Log
</router-link>
</nav>
@@ -78,10 +63,7 @@
aria-label="Sign out"
class="text-gray-400 hover:text-gray-600 transition-colors"
>
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1" />
</svg>
<AppIcon name="logout" class="w-4 h-4" />
</button>
</div>
</div>
@@ -91,6 +73,7 @@
<script setup>
import { useRouter } from 'vue-router'
import { useAuthStore } from '../../stores/auth.js'
import AppIcon from '../ui/AppIcon.vue'
const authStore = useAuthStore()
const router = useRouter()