🛠️ Add Developer Tools component for development mode with improved formatting and functionality adjustments

This commit is contained in:
2026-01-28 22:54:07 +00:00
parent 740005e4b8
commit 59823392e1
2 changed files with 37 additions and 10 deletions

View File

@@ -5,10 +5,14 @@
<component :is="Component" />
</Transition>
</router-view>
<!-- Developer Tools Panel (development only) -->
<DeveloperTools />
</div>
</template>
<script setup>
import DeveloperTools from './components/DeveloperTools.vue';
// App now acts as the router container with transitions
</script>

View File

@@ -23,8 +23,13 @@
@change="toggleFlag(flag.name)"
/>
<code>{{ flag.name }}</code>
<span v-if="flag.hasOverride" class="override-badge">override</span>
<span v-if="flag.requiresPermission && !flag.hasPermission" class="locked-badge">
<span v-if="flag.hasOverride" class="override-badge"
>override</span
>
<span
v-if="flag.requiresPermission && !flag.hasPermission"
class="locked-badge"
>
🔒
</span>
</label>
@@ -33,7 +38,9 @@
</div>
</div>
<div class="button-group">
<button @click="resetAll" class="btn btn-secondary">Reset All Overrides</button>
<button @click="resetAll" class="btn btn-secondary">
Reset All Overrides
</button>
</div>
</div>
@@ -52,13 +59,19 @@
<div v-if="user" class="info-item">
<span class="label">Role:</span>
<span class="value">{{ user.isAdmin ? '👑 Admin' : '👤 User' }}</span>
<span class="value">{{
user.isAdmin ? '👑 Admin' : '👤 User'
}}</span>
</div>
<div v-if="user?.permissions" class="info-item full-width">
<span class="label">Permissions:</span>
<div class="tags">
<span v-for="perm in user.permissions" :key="perm" class="tag">
<span
v-for="perm in user.permissions"
:key="perm"
class="tag"
>
{{ perm }}
</span>
</div>
@@ -66,7 +79,11 @@
<div v-if="token" class="info-item full-width">
<span class="label">Token (truncated):</span>
<code class="token">{{ token.substring(0, 20) }}...{{ token.substring(token.length - 10) }}</code>
<code class="token"
>{{ token.substring(0, 20) }}...{{
token.substring(token.length - 10)
}}</code
>
</div>
</div>
</div>
@@ -107,14 +124,20 @@ import { useAuth } from '../composables/useAuth.js';
import { useFeatureFlags } from '../composables/useFeatureFlags.js';
const { user, token } = useAuth();
const { getFlags, toggle: toggleFlagOverride, resetAll: resetAllOverrides } = useFeatureFlags();
const {
getFlags,
toggle: toggleFlagOverride,
resetAll: resetAllOverrides
} = useFeatureFlags();
const isOpen = ref(false);
// Only show in development mode
const isAvailable = computed(() => process.env.NODE_ENV === 'development');
const nodeEnv = computed(() => process.env.NODE_ENV || 'unknown');
const appVersion = computed(() => import.meta.env.VITE_APP_VERSION || '1.0.0-dev');
const appVersion = computed(
() => import.meta.env.VITE_APP_VERSION || '1.0.0-dev'
);
const flags = computed(() => getFlags());
@@ -126,7 +149,7 @@ const close = () => {
isOpen.value = false;
};
const toggleFlag = (flagName) => {
const toggleFlag = flagName => {
toggleFlagOverride(flagName);
};
@@ -137,7 +160,7 @@ const resetAll = () => {
};
// Keyboard shortcut: Ctrl+Shift+D
const handleKeyDown = (e) => {
const handleKeyDown = e => {
if (e.ctrlKey && e.shiftKey && e.code === 'KeyD') {
e.preventDefault();
if (isAvailable.value) {