commit: 01f6f89c7de7dee3c91d2850490981d73a3c0465
parent 23a8bee053c7c5cfa0daee1fe8bd46d22221bb56
Author: Henry Jameson <me@hjkos.com>
Date: Thu, 29 Feb 2024 19:54:25 +0200
interactive lists & non-interactive lists
Diffstat:
5 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/App.scss b/src/App.scss
@@ -411,6 +411,10 @@ nav {
--__horizontal-gap: 0.75em;
--__vertical-gap: 0.5em;
+ &.-non-interactive {
+ cursor: auto;
+ }
+
&.-active,
&:hover {
border-top-width: 1px;
diff --git a/src/components/list/list.vue b/src/components/list/list.vue
@@ -7,7 +7,7 @@
v-for="item in items"
:key="getKey(item)"
class="list-item"
- :class="getClass(item)"
+ :class="[getClass(item), nonInteractive ? '-non-interactive' : '']"
role="listitem"
>
<slot
@@ -38,6 +38,10 @@ export default {
getClass: {
type: Function,
default: item => ''
+ },
+ nonInteractive: {
+ type: Boolean,
+ default: false
}
}
}
diff --git a/src/components/list/list_item.style.js b/src/components/list/list_item.style.js
@@ -3,7 +3,7 @@ export default {
selector: '.list-item',
states: {
active: '.-active',
- hover: ':hover'
+ hover: ':hover:not(.-non-interactive)'
},
validInnerComponents: [
'Text',
diff --git a/src/components/selectable_list/selectable_list.vue b/src/components/selectable_list/selectable_list.vue
@@ -29,11 +29,13 @@
<div
class="selectable-list-item-inner"
:class="{ 'selectable-list-item-selected-inner': isSelected(item) }"
+ @click.stop="toggle(!isSelected(item), item)"
>
<div class="selectable-list-checkbox-wrapper">
<Checkbox
:model-value="isSelected(item)"
@update:model-value="checked => toggle(checked, item)"
+ @click.stop
/>
</div>
<slot
diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue
@@ -75,7 +75,7 @@
:label="$t('user_card.followees')"
:disabled="!user.friends_count"
>
- <FriendList :user-id="userId">
+ <FriendList :user-id="userId" :non-interactive="true">
<template #item="{item}">
<FollowCard :user="item" />
</template>
@@ -87,7 +87,7 @@
:label="$t('user_card.followers')"
:disabled="!user.followers_count"
>
- <FollowerList :user-id="userId">
+ <FollowerList :user-id="userId" :non-interactive="true">
<template #item="{item}">
<FollowCard
:user="item"