Added socials.

This commit is contained in:
2024-11-04 02:36:30 +01:00
parent 208f1dfde4
commit de60b67cb9
20 changed files with 945 additions and 142 deletions

View File

@@ -104,8 +104,15 @@
<div class="delta-deltas">
<span class="delta-from delta-value">
<Socials
v-if="delta.key === 'socials'"
:rev="rev"
:index="index"
:socials="rev.base[delta.key]"
/>
<ul
v-if="Array.isArray(rev.base[delta.key])"
v-else-if="Array.isArray(rev.base[delta.key])"
class="nolist"
>[
<li
@@ -129,8 +136,15 @@
<span class="delta-arrow"></span>
<span class="delta-to delta-value">
<Socials
v-if="delta.key === 'socials'"
:rev="rev"
:index="index"
:socials="delta.value"
/>
<ul
v-if="Array.isArray(delta.value)"
v-else-if="Array.isArray(delta.value)"
class="nolist"
>[
<li
@@ -218,6 +232,7 @@ import { ref, computed, inject } from 'vue';
import { format } from 'date-fns';
import Avatar from '#/components/edit/avatar.vue';
import Socials from '#/components/edit/revision-socials.vue';
import Checkbox from '#/components/form/checkbox.vue';
import { get, post } from '#/src/api.js';
@@ -277,6 +292,14 @@ const curatedRevisions = computed(() => revisions.value.map((revision) => {
}))];
}
if (key === 'socials') {
// new socials don't have IDs yet, so we need to compare the values
return [key, value.map((item) => ({
...item,
modified: revision.deltas.some((delta) => delta.key === key && !delta.value.some((deltaItem) => deltaItem.url === item.url || `${deltaItem.platform}:${deltaItem.handle}` === `${item.platform}:${item.handle}`)),
}))];
}
if (dateKeys.includes(key)) {
return [key, new Date(value)];
}
@@ -300,6 +323,17 @@ const curatedRevisions = computed(() => revisions.value.map((revision) => {
};
}
if (delta.key === 'socials') {
// new socials don't have IDs yet, so we need to compare the values
return {
...delta,
value: delta.value.map((social) => ({
...social,
modified: !revision.base[delta.key].some((baseItem) => baseItem.url === social.url || `${baseItem.platform}:${baseItem.handle}` === `${social.platform}:${social.handle}`),
})),
};
}
if (dateKeys.includes(delta.key)) {
return {
...delta,