Loading client/src/components/Form/Elements/FormData/FormData.vue +5 −1 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import { useHistoryStore } from "@/stores/historyStore"; import { orList } from "@/utils/strings"; import type { DataOption } from "./types"; import { containsDataOption } from "./types"; import { BATCH, SOURCE, VARIANTS } from "./variants"; import FormSelection from "../FormSelection.vue"; Loading Loading @@ -427,7 +428,10 @@ function handleIncoming(incoming: Record<string, unknown> | Record<string, unkno if (config.multiple) { const newValues = currentValue.value ? currentValue.value.slice() : []; incomingValues.forEach((v) => { // Avoid duplicates if (!containsDataOption(newValues, v)) { newValues.push(v); } }); currentValue.value = newValues; } else { Loading client/src/components/Form/Elements/FormData/types.ts +4 −0 Original line number Diff line number Diff line Loading @@ -17,3 +17,7 @@ export function isDataOption(item: object): item is DataOption { export function itemUniqueKey(item: DataOption): string { return `${item.src}-${item.id}`; } export function containsDataOption(items: DataOption[], item: DataOption): boolean { return items.some((i) => itemUniqueKey(i) === itemUniqueKey(item)); } Loading
client/src/components/Form/Elements/FormData/FormData.vue +5 −1 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import { useHistoryStore } from "@/stores/historyStore"; import { orList } from "@/utils/strings"; import type { DataOption } from "./types"; import { containsDataOption } from "./types"; import { BATCH, SOURCE, VARIANTS } from "./variants"; import FormSelection from "../FormSelection.vue"; Loading Loading @@ -427,7 +428,10 @@ function handleIncoming(incoming: Record<string, unknown> | Record<string, unkno if (config.multiple) { const newValues = currentValue.value ? currentValue.value.slice() : []; incomingValues.forEach((v) => { // Avoid duplicates if (!containsDataOption(newValues, v)) { newValues.push(v); } }); currentValue.value = newValues; } else { Loading
client/src/components/Form/Elements/FormData/types.ts +4 −0 Original line number Diff line number Diff line Loading @@ -17,3 +17,7 @@ export function isDataOption(item: object): item is DataOption { export function itemUniqueKey(item: DataOption): string { return `${item.src}-${item.id}`; } export function containsDataOption(items: DataOption[], item: DataOption): boolean { return items.some((i) => itemUniqueKey(i) === itemUniqueKey(item)); }