init
This commit is contained in:
158
src/app/store/rooms/rooms.actions.ts
Normal file
158
src/app/store/rooms/rooms.actions.ts
Normal file
@@ -0,0 +1,158 @@
|
||||
import { createAction, props } from '@ngrx/store';
|
||||
import { Room, RoomSettings, ServerInfo, RoomPermissions } from '../../core/models';
|
||||
|
||||
// Load rooms from storage
|
||||
export const loadRooms = createAction('[Rooms] Load Rooms');
|
||||
|
||||
export const loadRoomsSuccess = createAction(
|
||||
'[Rooms] Load Rooms Success',
|
||||
props<{ rooms: Room[] }>()
|
||||
);
|
||||
|
||||
export const loadRoomsFailure = createAction(
|
||||
'[Rooms] Load Rooms Failure',
|
||||
props<{ error: string }>()
|
||||
);
|
||||
|
||||
// Search servers
|
||||
export const searchServers = createAction(
|
||||
'[Rooms] Search Servers',
|
||||
props<{ query: string }>()
|
||||
);
|
||||
|
||||
export const searchServersSuccess = createAction(
|
||||
'[Rooms] Search Servers Success',
|
||||
props<{ servers: ServerInfo[] }>()
|
||||
);
|
||||
|
||||
export const searchServersFailure = createAction(
|
||||
'[Rooms] Search Servers Failure',
|
||||
props<{ error: string }>()
|
||||
);
|
||||
|
||||
// Create room
|
||||
export const createRoom = createAction(
|
||||
'[Rooms] Create Room',
|
||||
props<{ name: string; description?: string; topic?: string; isPrivate?: boolean; password?: string }>()
|
||||
);
|
||||
|
||||
export const createRoomSuccess = createAction(
|
||||
'[Rooms] Create Room Success',
|
||||
props<{ room: Room }>()
|
||||
);
|
||||
|
||||
export const createRoomFailure = createAction(
|
||||
'[Rooms] Create Room Failure',
|
||||
props<{ error: string }>()
|
||||
);
|
||||
|
||||
// Join room
|
||||
export const joinRoom = createAction(
|
||||
'[Rooms] Join Room',
|
||||
props<{ roomId: string; password?: string; serverInfo?: { name: string; description?: string; hostName?: string } }>()
|
||||
);
|
||||
|
||||
export const joinRoomSuccess = createAction(
|
||||
'[Rooms] Join Room Success',
|
||||
props<{ room: Room }>()
|
||||
);
|
||||
|
||||
export const joinRoomFailure = createAction(
|
||||
'[Rooms] Join Room Failure',
|
||||
props<{ error: string }>()
|
||||
);
|
||||
|
||||
// Leave room
|
||||
export const leaveRoom = createAction('[Rooms] Leave Room');
|
||||
|
||||
export const leaveRoomSuccess = createAction('[Rooms] Leave Room Success');
|
||||
|
||||
// Delete room
|
||||
export const deleteRoom = createAction(
|
||||
'[Rooms] Delete Room',
|
||||
props<{ roomId: string }>()
|
||||
);
|
||||
|
||||
export const deleteRoomSuccess = createAction(
|
||||
'[Rooms] Delete Room Success',
|
||||
props<{ roomId: string }>()
|
||||
);
|
||||
|
||||
// Forget room locally
|
||||
export const forgetRoom = createAction(
|
||||
'[Rooms] Forget Room',
|
||||
props<{ roomId: string }>()
|
||||
);
|
||||
|
||||
export const forgetRoomSuccess = createAction(
|
||||
'[Rooms] Forget Room Success',
|
||||
props<{ roomId: string }>()
|
||||
);
|
||||
|
||||
// Update room settings
|
||||
export const updateRoomSettings = createAction(
|
||||
'[Rooms] Update Room Settings',
|
||||
props<{ settings: Partial<RoomSettings> }>()
|
||||
);
|
||||
|
||||
export const updateRoomSettingsSuccess = createAction(
|
||||
'[Rooms] Update Room Settings Success',
|
||||
props<{ settings: RoomSettings }>()
|
||||
);
|
||||
|
||||
export const updateRoomSettingsFailure = createAction(
|
||||
'[Rooms] Update Room Settings Failure',
|
||||
props<{ error: string }>()
|
||||
);
|
||||
|
||||
// Update room permissions
|
||||
export const updateRoomPermissions = createAction(
|
||||
'[Rooms] Update Room Permissions',
|
||||
props<{ roomId: string; permissions: Partial<RoomPermissions> }>()
|
||||
);
|
||||
|
||||
// Update server icon (permission enforced)
|
||||
export const updateServerIcon = createAction(
|
||||
'[Rooms] Update Server Icon',
|
||||
props<{ roomId: string; icon: string }>()
|
||||
);
|
||||
|
||||
export const updateServerIconSuccess = createAction(
|
||||
'[Rooms] Update Server Icon Success',
|
||||
props<{ roomId: string; icon: string; iconUpdatedAt: number }>()
|
||||
);
|
||||
|
||||
export const updateServerIconFailure = createAction(
|
||||
'[Rooms] Update Server Icon Failure',
|
||||
props<{ error: string }>()
|
||||
);
|
||||
|
||||
// Set current room
|
||||
export const setCurrentRoom = createAction(
|
||||
'[Rooms] Set Current Room',
|
||||
props<{ room: Room }>()
|
||||
);
|
||||
|
||||
// Clear current room
|
||||
export const clearCurrentRoom = createAction('[Rooms] Clear Current Room');
|
||||
|
||||
// Update room
|
||||
export const updateRoom = createAction(
|
||||
'[Rooms] Update Room',
|
||||
props<{ roomId: string; changes: Partial<Room> }>()
|
||||
);
|
||||
|
||||
// Receive room update from peer
|
||||
export const receiveRoomUpdate = createAction(
|
||||
'[Rooms] Receive Room Update',
|
||||
props<{ room: Partial<Room> }>()
|
||||
);
|
||||
|
||||
// Clear search results
|
||||
export const clearSearchResults = createAction('[Rooms] Clear Search Results');
|
||||
|
||||
// Set connection status
|
||||
export const setConnecting = createAction(
|
||||
'[Rooms] Set Connecting',
|
||||
props<{ isConnecting: boolean }>()
|
||||
);
|
||||
Reference in New Issue
Block a user