types.ts 829 B

12345678910111213141516171819202122232425262728
  1. // Remote actions - these only come FROM the socket
  2. export enum ActionTypeRemote {
  3. StateSet = 'STATE_SET',
  4. ClientListUpdated = 'CLIENT_LIST_UPDATED',
  5. }
  6. // Local actions - these are dispatched from this client
  7. export enum ActionTypeLocal {
  8. LoggedOut = '@@local/LOGGED_OUT',
  9. ErrorOccurred = '@@local/ERROR_OCCURRED',
  10. NameSet = '@@local/NAME_SET',
  11. StateSet = '@@local/STATE_SET',
  12. Seeked = '@@local/SEEKED',
  13. MasterSet = '@@local/MASTER_SET',
  14. PlayPaused = '@@local/PLAY_PAUSED',
  15. }
  16. export interface Action<T extends string = string, P = unknown> {
  17. type: T;
  18. payload: P;
  19. }
  20. export type ActionRemote<T extends ActionTypeRemote = ActionTypeRemote, P = unknown> = Action<
  21. T,
  22. P
  23. > & { fromClient?: string | null };
  24. export type ActionLocal<T extends ActionTypeLocal = ActionTypeLocal, P = unknown> = Action<T, P>;