1242960d3S猫头猫import {internalSerialzeKey, internalSymbolKey} from '@/constants/commonConst'; 2242960d3S猫头猫import produce from 'immer'; 3242960d3S猫头猫 4242960d3S猫头猫/** 获取mediakey */ 5242960d3S猫头猫export function getMediaKey(mediaItem: ICommon.IMediaBase) { 6242960d3S猫头猫 return `${mediaItem.platform}@${mediaItem.id}`; 7242960d3S猫头猫} 8242960d3S猫头猫 9242960d3S猫头猫/** 比较两歌media是否相同 */ 10242960d3S猫头猫export function isSameMediaItem( 11242960d3S猫头猫 a: ICommon.IMediaBase | null | undefined, 12242960d3S猫头猫 b: ICommon.IMediaBase | null | undefined, 13242960d3S猫头猫) { 14242960d3S猫头猫 return a && b && a.id === b.id && a.platform === b.platform; 15242960d3S猫头猫} 16242960d3S猫头猫 17242960d3S猫头猫/** 获取复位的mediaItem */ 18*8b88e961S猫头猫export function resetMediaItem<T extends ICommon.IMediaBase>( 19*8b88e961S猫头猫 mediaItem: T, 20242960d3S猫头猫 platform?: string, 21*8b88e961S猫头猫 newObj?: boolean, 22*8b88e961S猫头猫): T { 23*8b88e961S猫头猫 if (!newObj) { 24*8b88e961S猫头猫 25242960d3S猫头猫 mediaItem.platform = platform ?? mediaItem.platform; 26242960d3S猫头猫 mediaItem[internalSerialzeKey] = undefined; 27242960d3S猫头猫 return mediaItem; 28242960d3S猫头猫 } else { 29242960d3S猫头猫 return produce(mediaItem, _ => { 30242960d3S猫头猫 _.platform = platform ?? mediaItem.platform; 31242960d3S猫头猫 _[internalSerialzeKey] = undefined; 32242960d3S猫头猫 }); 33242960d3S猫头猫 } 34242960d3S猫头猫} 35*8b88e961S猫头猫 36*8b88e961S猫头猫 37*8b88e961S猫头猫export function mergeProps (mediaItem: ICommon.IMediaBase, props: Record<string, any> | undefined) { 38*8b88e961S猫头猫 return props ? { 39*8b88e961S猫头猫 ...mediaItem, 40*8b88e961S猫头猫 ...props 41*8b88e961S猫头猫 } : mediaItem; 42*8b88e961S猫头猫}