Spaces:
Paused
Paused
Download web/src/components/ui/sidebar/SidebarMenuButton.vue from stremio-db/a: direct link, hf CLI and curl.
- Browser
- Download file 1.31 kB
-
https://huggingface.co/spaces/stremio-db/a/resolve/main/web/src/components/ui/sidebar/SidebarMenuButton.vue
- Command line
-
hf download hf://spaces/stremio-db/a/web/src/components/ui/sidebar/SidebarMenuButton.vue
-
curl -L -o SidebarMenuButton.vue https://huggingface.co/spaces/stremio-db/a/resolve/main/web/src/components/ui/sidebar/SidebarMenuButton.vue
1.31 kB
| <script setup lang="ts"> | |
| import type { Component } from "vue" | |
| import type { SidebarMenuButtonProps } from "./SidebarMenuButtonChild.vue" | |
| import { reactiveOmit } from "@vueuse/core" | |
| import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' | |
| import SidebarMenuButtonChild from "./SidebarMenuButtonChild.vue" | |
| import { useSidebar } from "./utils" | |
| defineOptions({ | |
| inheritAttrs: false, | |
| }) | |
| const props = withDefaults(defineProps<SidebarMenuButtonProps & { | |
| tooltip?: string | Component | |
| }>(), { | |
| as: "button", | |
| variant: "default", | |
| size: "default", | |
| }) | |
| const { isMobile, state } = useSidebar() | |
| const delegatedProps = reactiveOmit(props, "tooltip") | |
| </script> | |
| <template> | |
| <SidebarMenuButtonChild v-if="!tooltip" v-bind="{ ...delegatedProps, ...$attrs }"> | |
| <slot /> | |
| </SidebarMenuButtonChild> | |
| <Tooltip v-else> | |
| <TooltipTrigger as-child> | |
| <SidebarMenuButtonChild v-bind="{ ...delegatedProps, ...$attrs }"> | |
| <slot /> | |
| </SidebarMenuButtonChild> | |
| </TooltipTrigger> | |
| <TooltipContent | |
| side="right" | |
| align="center" | |
| :hidden="state !== 'collapsed' || isMobile" | |
| > | |
| <template v-if="typeof tooltip === 'string'"> | |
| {{ tooltip }} | |
| </template> | |
| <component :is="tooltip" v-else /> | |
| </TooltipContent> | |
| </Tooltip> | |
| </template> | |