React to a friend's current song or any of their recent plays: tap an emoji to add yours (or take it back), "☺+" for the quick six, and a full picker with search and categories (Unicode emoji up to 13.1, generated into the shared package so web and mobile match). One reaction per person per play; a new one replaces the old. Chips show counts and, on hover/ long label, who reacted; yours is highlighted. Listeners and followers get the update live. Not on your own plays, not across a block (blocking also clears reactions between the two people). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MzFywujuH9TiuXbr9vjoX8
This commit is contained in:
@@ -35,6 +35,13 @@ export interface MeDTO extends UserSummaryDTO {
|
||||
entitlements: Entitlements;
|
||||
}
|
||||
|
||||
/** One emoji on a play, and who left it (newest first). */
|
||||
export interface ReactionDTO {
|
||||
emoji: string;
|
||||
count: number;
|
||||
users: UserSummaryDTO[];
|
||||
}
|
||||
|
||||
export interface NowPlayingDTO {
|
||||
user: UserSummaryDTO;
|
||||
track: TrackDTO;
|
||||
@@ -46,6 +53,9 @@ export interface NowPlayingDTO {
|
||||
sourceUrl: string | null;
|
||||
progressMs: number | null;
|
||||
updatedAt: string;
|
||||
/** The play this is, for reactions (null for very old rows). */
|
||||
listenId: string | null;
|
||||
reactions: ReactionDTO[];
|
||||
}
|
||||
|
||||
/** A feed entry. pinnedAt is set when the viewer pinned this friend. */
|
||||
@@ -71,9 +81,11 @@ export interface FeaturedSongDTO {
|
||||
}
|
||||
|
||||
export interface RecentPlayDTO {
|
||||
listenId: string;
|
||||
track: TrackDTO;
|
||||
source: NowPlayingProvider;
|
||||
playedAt: string;
|
||||
reactions: ReactionDTO[];
|
||||
}
|
||||
|
||||
export interface ProfileDTO {
|
||||
|
||||
Reference in New Issue
Block a user