Cockatrice/webclient/src/store/rooms/rooms.interfaces.tsx
Joseph Insalaco ea8da24215
Webatrice: Adding joined game to persistence layer (#5068)
* Adding joined game to persistence layer

* Linting fixes
2024-06-27 02:06:47 +00:00

50 lines
990 B
TypeScript

import { GameSortField, Room, Game, SortBy, UserSortField } from 'types';
export interface RoomsState {
rooms: RoomsStateRooms;
games: RoomsStateGames;
joinedRoomIds: JoinedRooms;
joinedGameIds: JoinedGames;
messages: RoomsStateMessages;
sortGamesBy: RoomsStateSortGamesBy;
sortUsersBy: RoomsStateSortUsersBy;
}
export interface RoomsStateRooms {
[roomId: number]: Room;
}
export interface RoomsStateGames {
[roomId: number]: {
[gameId: number]: Game;
};
}
export interface JoinedRooms {
[roomId: number]: boolean;
}
export interface JoinedGames {
[roomId: number]: {
[gameId: number]: boolean;
};
}
export interface RoomsStateMessages {
[roomId: number]: Message[];
}
export interface RoomsStateSortGamesBy extends SortBy {
field: GameSortField
}
export interface RoomsStateSortUsersBy extends SortBy {
field: UserSortField
}
export interface Message {
message: string;
messageType: number;
timeReceived: number;
timeOf?: number;
}