mirror of
https://github.com/hanzoai/vitest.git
synced 2026-09-24 17:04:25 +00:00
47 lines
1.7 KiB
Vue
47 lines
1.7 KiB
Vue
<script setup lang="ts">
|
|
import IconButton from '~/components/IconButton.vue'
|
|
import {
|
|
detailsPanelVisible,
|
|
detailsPosition,
|
|
hideDetailsPanel,
|
|
showDetailsPanel,
|
|
toggleDetailsPosition,
|
|
} from '~/composables/navigation'
|
|
|
|
function getDetailsPanelToggleRotation(action: 'show' | 'hide') {
|
|
// `i-carbon:side-panel-close` is treated as "pointing right" by default.
|
|
// We rotate it based on where the details panel is positioned.
|
|
if (detailsPosition.value === 'right') {
|
|
return action === 'hide' ? 'rotate-180' : ''
|
|
}
|
|
// detailsPosition === 'bottom'
|
|
return action === 'hide' ? '-rotate-90' : 'rotate-90'
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<IconButton
|
|
v-tooltip.bottom="`Switch panel position (${detailsPosition === 'bottom' ? 'right' : 'bottom'})`"
|
|
:title="`Switch panel position (${detailsPosition === 'bottom' ? 'right' : 'bottom'})`"
|
|
icon="i-carbon-split-screen"
|
|
:class="{ 'rotate-90': detailsPosition === 'right' }"
|
|
@click="toggleDetailsPosition"
|
|
/>
|
|
<IconButton
|
|
v-if="detailsPanelVisible"
|
|
v-tooltip.bottom="detailsPosition === 'right' ? 'Hide Right Panel' : 'Hide Bottom Panel'"
|
|
:title="detailsPosition === 'right' ? 'Hide Right Panel' : 'Hide Bottom Panel'"
|
|
icon="i-carbon:side-panel-close"
|
|
:class="getDetailsPanelToggleRotation('hide')"
|
|
@click="hideDetailsPanel"
|
|
/>
|
|
<IconButton
|
|
v-show="!detailsPanelVisible"
|
|
v-tooltip.bottom="detailsPosition === 'right' ? 'Show Right Panel' : 'Show Bottom Panel'"
|
|
:title="detailsPosition === 'right' ? 'Show Right Panel' : 'Show Bottom Panel'"
|
|
icon="i-carbon:side-panel-close"
|
|
:class="getDetailsPanelToggleRotation('show')"
|
|
@click="showDetailsPanel"
|
|
/>
|
|
</template>
|