<script setup lang="ts">
import { computed, isDrawerOrModalExist, isMac, useSidebar } from '#imports'

const rightSidebar = useSidebar('nc-right-sidebar')

const leftSidebar = useSidebar('nc-left-sidebar')

const isSidebarsOpen = computed({
  get: () => rightSidebar.isOpen.value || leftSidebar.isOpen.value,
  set: (value) => {
    rightSidebar.toggle(value)
    leftSidebar.toggle(value)
  },
})

useEventListener(document, 'keydown', async (e: KeyboardEvent) => {
  const cmdOrCtrl = isMac() ? e.metaKey : e.ctrlKey
  if (e.altKey && !e.shiftKey && !cmdOrCtrl) {
    switch (e.keyCode) {
      case 70: {
        // ALT + F
        if (!isDrawerOrModalExist()) {
          isSidebarsOpen.value = !isSidebarsOpen.value
        }
        break
      }
    }
  }
})
</script>

<template>
  <a-tooltip placement="left">
    <!-- todo: i18n -->
    <template #title>
      <span class="text-xs">{{ isSidebarsOpen ? 'Full width' : 'Exit full width' }}</span>
    </template>
    <div
      v-e="['c:toolbar:fullscreen']"
      class="nc-fullscreen-btn cursor-pointer flex align-center self-center px-2 py-2 mr-2"
      @click="isSidebarsOpen = !isSidebarsOpen"
    >
      <IcTwotoneWidthFull v-if="isSidebarsOpen" class="text-gray-300" />
      <IcTwotoneWidthNormal v-else class="text-gray-300" />
    </div>
  </a-tooltip>
</template>
