import { clsx, type ClassValue } from 'clsx'; import { twMerge } from 'tailwind-merge'; import type { Followed } from './types'; export function getFollowedKey(followed: Followed): number { if (followed.type == 'favorite') { return followed.fid; } else if (followed.type == 'collection') { return followed.sid; } else { return followed.mid; } } export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } // eslint-disable-next-line @typescript-eslint/no-explicit-any export type WithoutChild = T extends { child?: any } ? Omit : T; // eslint-disable-next-line @typescript-eslint/no-explicit-any export type WithoutChildren = T extends { children?: any } ? Omit : T; export type WithoutChildrenOrChild = WithoutChildren>; export type WithElementRef = T & { ref?: U | null };