init
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
import { clsx, type ClassValue } from "clsx"
|
||||
import { twMerge } from "tailwind-merge"
|
||||
|
||||
export type RelationFieldValue = { value: string; label: string } | null
|
||||
|
||||
export function cn(...inputs: ClassValue[]) {
|
||||
return twMerge(clsx(inputs))
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a `{ value, label }` relation object from an API id + name pair.
|
||||
* Returns `null` when `id` is absent so the field stays clearable.
|
||||
*/
|
||||
export function toRelation(id: unknown, name?: string): RelationFieldValue {
|
||||
if (id == null) return null
|
||||
if (typeof id === "object" && id !== null && "value" in id && "label" in id) {
|
||||
return id as { value: string; label: string }
|
||||
}
|
||||
return { value: String(id), label: name ?? String(id) }
|
||||
}
|
||||
|
||||
/** Extract a numeric ID from a relation object for API payloads. */
|
||||
export function toId(relation: RelationFieldValue | undefined): number | undefined {
|
||||
return relation ? Number(relation.value) : undefined
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user