mirror of
https://github.com/lingble/chatwoot.git
synced 2025-10-30 18:47:51 +00:00
This PR has the initial version of the new sidebar targeted for the next major redesign of the app. This PR includes the following changes - Components in the `layouts-next` and `base-next` directories in `dashboard/components` - Two generic components `Avatar` and `Icon` - `SidebarGroup` component to manage expandable sidebar groups with nested navigation items. This includes handling active states, transitions, and permissions. - `SidebarGroupHeader` component to display the header of each navigation group with optional icons and active state indication. - `SidebarGroupLeaf` component for individual navigation items within a group, supporting icons and active state. - `SidebarGroupSeparator` component to visually separate nested navigation items. (They look a lot like header) - `SidebarGroupEmptyLeaf` component to render empty state of any navigation groups. ---- Co-authored-by: Pranav <pranav@chatwoot.com> Co-authored-by: Pranav <pranavrajs@gmail.com>
46 lines
997 B
Vue
46 lines
997 B
Vue
<script>
|
|
import { FEATURE_FLAGS } from 'dashboard/featureFlags';
|
|
import { BUS_EVENTS } from 'shared/constants/busEvents';
|
|
import { mapGetters } from 'vuex';
|
|
import { emitter } from 'shared/helpers/mitt';
|
|
|
|
export default {
|
|
props: {
|
|
size: {
|
|
type: String,
|
|
default: 'small',
|
|
},
|
|
},
|
|
computed: {
|
|
...mapGetters({
|
|
accountId: 'getCurrentAccountId',
|
|
isFeatureEnabledonAccount: 'accounts/isFeatureEnabledonAccount',
|
|
}),
|
|
hasNextSidebar() {
|
|
return this.isFeatureEnabledonAccount(
|
|
this.accountId,
|
|
FEATURE_FLAGS.CHATWOOT_V4
|
|
);
|
|
},
|
|
},
|
|
methods: {
|
|
onMenuItemClick() {
|
|
emitter.emit(BUS_EVENTS.TOGGLE_SIDEMENU);
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<!-- eslint-disable-next-line vue/no-root-v-if -->
|
|
<template>
|
|
<woot-button
|
|
v-if="!hasNextSidebar"
|
|
:size="size"
|
|
variant="clear"
|
|
color-scheme="secondary"
|
|
class="-ml-3 text-black-900 dark:text-slate-300"
|
|
icon="list"
|
|
@click="onMenuItemClick"
|
|
/>
|
|
</template>
|