owltide/components/DiffFieldString.vue

41 lines
885 B
Vue
Raw Permalink Normal View History

<!--
SPDX-FileCopyrightText: © 2025 Hornwitser <code@hornwitser.no>
SPDX-License-Identifier: AGPL-3.0-or-later
-->
<template>
<DiffEntry
:title
:entries
/>
</template>
<script lang="ts" setup>
const props = defineProps<{
title: string,
before: string,
after: string,
state: "deleted" | "created" | "modified",
}>();
const entries = computed((): ["added" | "removed", string][] => {
if (props.state === "created") {
return props.after ? [["added", props.after]] : [];
}
if (props.state === "deleted") {
return props.before ? [["removed", props.before]] : [];
}
if (props.state === "modified") {
if (props.after === props.before)
return [];
if (!props.after)
return [["removed", props.before]];
if (!props.before)
return [["added", props.after]];
return [
["removed", props.before],
["added", props.after],
];
}
return [];
});
</script>