interactive lists & non-interactive lists

This commit is contained in:
Henry Jameson 2024-02-29 19:54:25 +02:00
parent 23a8bee053
commit 01f6f89c7d
5 changed files with 14 additions and 4 deletions

View File

@ -411,6 +411,10 @@ nav {
--__horizontal-gap: 0.75em; --__horizontal-gap: 0.75em;
--__vertical-gap: 0.5em; --__vertical-gap: 0.5em;
&.-non-interactive {
cursor: auto;
}
&.-active, &.-active,
&:hover { &:hover {
border-top-width: 1px; border-top-width: 1px;

View File

@ -7,7 +7,7 @@
v-for="item in items" v-for="item in items"
:key="getKey(item)" :key="getKey(item)"
class="list-item" class="list-item"
:class="getClass(item)" :class="[getClass(item), nonInteractive ? '-non-interactive' : '']"
role="listitem" role="listitem"
> >
<slot <slot
@ -38,6 +38,10 @@ export default {
getClass: { getClass: {
type: Function, type: Function,
default: item => '' default: item => ''
},
nonInteractive: {
type: Boolean,
default: false
} }
} }
} }

View File

@ -3,7 +3,7 @@ export default {
selector: '.list-item', selector: '.list-item',
states: { states: {
active: '.-active', active: '.-active',
hover: ':hover' hover: ':hover:not(.-non-interactive)'
}, },
validInnerComponents: [ validInnerComponents: [
'Text', 'Text',

View File

@ -29,11 +29,13 @@
<div <div
class="selectable-list-item-inner" class="selectable-list-item-inner"
:class="{ 'selectable-list-item-selected-inner': isSelected(item) }" :class="{ 'selectable-list-item-selected-inner': isSelected(item) }"
@click.stop="toggle(!isSelected(item), item)"
> >
<div class="selectable-list-checkbox-wrapper"> <div class="selectable-list-checkbox-wrapper">
<Checkbox <Checkbox
:model-value="isSelected(item)" :model-value="isSelected(item)"
@update:model-value="checked => toggle(checked, item)" @update:model-value="checked => toggle(checked, item)"
@click.stop
/> />
</div> </div>
<slot <slot

View File

@ -75,7 +75,7 @@
:label="$t('user_card.followees')" :label="$t('user_card.followees')"
:disabled="!user.friends_count" :disabled="!user.friends_count"
> >
<FriendList :user-id="userId"> <FriendList :user-id="userId" :non-interactive="true">
<template #item="{item}"> <template #item="{item}">
<FollowCard :user="item" /> <FollowCard :user="item" />
</template> </template>
@ -87,7 +87,7 @@
:label="$t('user_card.followers')" :label="$t('user_card.followers')"
:disabled="!user.followers_count" :disabled="!user.followers_count"
> >
<FollowerList :user-id="userId"> <FollowerList :user-id="userId" :non-interactive="true">
<template #item="{item}"> <template #item="{item}">
<FollowCard <FollowCard
:user="item" :user="item"