Some checks failed
Lock Threads / action (push) Has been cancelled
Mark stale issues and pull requests / stale (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot EE docker images / merge (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot CE docker images / merge (push) Has been cancelled
Run Chatwoot CE spec / lint-backend (push) Has been cancelled
Run Chatwoot CE spec / lint-frontend (push) Has been cancelled
Run Chatwoot CE spec / frontend-tests (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (0, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (1, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (10, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (11, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (12, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (13, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (14, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (15, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (2, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (3, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (4, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (5, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (6, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (7, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (8, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (9, 16) (push) Has been cancelled
Run Linux nightly installer / nightly (push) Has been cancelled
- Add Logistics component with progress tracking - Add OrderDetail component for order information - Support data-driven steps and actions - Add blue color scale to widget SCSS - Fix node overflow and progress bar rendering issues - Add English translations for dashboard components Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
64 lines
1.6 KiB
Vue
64 lines
1.6 KiB
Vue
<script setup>
|
|
import { computed } from 'vue';
|
|
import Icon from 'dashboard/components-next/icon/Icon.vue';
|
|
import { useDropdownContext } from './provider.js';
|
|
|
|
const props = defineProps({
|
|
label: { type: String, default: '' },
|
|
icon: { type: [String, Object, Function], default: '' },
|
|
link: { type: [String, Object], default: '' },
|
|
nativeLink: { type: Boolean, default: false },
|
|
click: { type: Function, default: null },
|
|
preserveOpen: { type: Boolean, default: false },
|
|
});
|
|
|
|
defineOptions({
|
|
inheritAttrs: false,
|
|
});
|
|
|
|
const { closeMenu } = useDropdownContext();
|
|
|
|
const componentIs = computed(() => {
|
|
if (props.link) {
|
|
if (props.nativeLink && typeof props.link === 'string') {
|
|
return 'a';
|
|
}
|
|
|
|
return 'router-link';
|
|
}
|
|
if (props.click) return 'button';
|
|
|
|
return 'div';
|
|
});
|
|
|
|
const triggerClick = () => {
|
|
if (props.click) {
|
|
props.click();
|
|
}
|
|
if (!props.preserveOpen) closeMenu();
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<li class="n-dropdown-item">
|
|
<component
|
|
:is="componentIs"
|
|
v-bind="$attrs"
|
|
class="flex text-left rtl:text-right items-center p-2 reset-base text-sm text-n-slate-12 w-full border-0"
|
|
:class="{
|
|
'hover:bg-n-alpha-2 rounded-lg w-full gap-3': !$slots.default,
|
|
}"
|
|
:href="componentIs === 'a' ? props.link : null"
|
|
:to="componentIs === 'router-link' ? props.link : null"
|
|
@click="triggerClick"
|
|
>
|
|
<slot>
|
|
<slot name="icon">
|
|
<Icon v-if="icon" class="size-4 text-n-slate-11" :icon="icon" />
|
|
</slot>
|
|
<slot name="label">{{ label }}</slot>
|
|
</slot>
|
|
</component>
|
|
</li>
|
|
</template>
|