zaphyra's git: domsonic

subsonic web-client

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
export const Dropdown = ({
  disabled = false,
  toggleClass = '',
}: {
  toggleClass?: string,
  disabled?: boolean,
}) => {
  return vine`
    <details class="dropdown">
      <summary role="button" :class="toggleClass">
        <slot name="button" />
      </summary>
      <ul>
        <slot />
      </ul>
    </details>
  `
}

export const DropdownItem = (props: {
  icon?: string,
  disabled?: boolean,
  href?: string,
  class?: any,
  divider?: boolean,
}) => {
  return vine`
    <li v-if="divider" class="divider" />
    <template v-else>
      <li :role="$attrs.onClick ? 'button': undefined" :class="class">
        <a v-if="href" :href="href" v-bind="$attrs">
          <slot />
          <Icon v-if="icon" :icon="icon"/>
        </a>
        <template v-else>
          <slot />
          <Icon v-if="icon" :icon="icon"/>
        </template>
      </li>
    </template>
  `
}