You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.1 KiB
64 lines
2.1 KiB
export enum AppState { |
|
Loading, // Initial loading state as config + status is loading. |
|
Registering, // Creating a default anonymous chat account. |
|
Online, // Stream is active. |
|
Offline, // Stream is not active. |
|
OfflineWaiting, // Period of time after going offline chat is still available. |
|
Banned, // Certain features are disabled for this single user. |
|
} |
|
|
|
export enum ChatVisibilityState { |
|
Hidden, // The chat components are not available to the user. |
|
Visible, // The chat components are not available to the user visually. |
|
} |
|
|
|
export enum ChatState { |
|
Available, // Normal state. Chat can be visible and used. |
|
NotAvailable, // Chat features are not available. |
|
Loading, // Chat is connecting and loading history. |
|
Offline, // Chat is offline/disconnected for some reason but is visible. |
|
} |
|
|
|
export enum VideoState { |
|
Available, // Play button should be visible and the user can begin playback. |
|
Unavailable, // Play button not be visible and video is not available. |
|
Playing, // Playback is taking place and the play button should not be shown. |
|
} |
|
|
|
export function getChatState(state: AppState): ChatState { |
|
switch (state) { |
|
case AppState.Loading: |
|
return ChatState.NotAvailable; |
|
case AppState.Banned: |
|
return ChatState.NotAvailable; |
|
case AppState.Online: |
|
return ChatState.Available; |
|
case AppState.Offline: |
|
return ChatState.NotAvailable; |
|
case AppState.OfflineWaiting: |
|
return ChatState.Available; |
|
case AppState.Registering: |
|
return ChatState.Loading; |
|
default: |
|
return ChatState.Offline; |
|
} |
|
} |
|
|
|
export function getChatVisibilityState(state: AppState): ChatVisibilityState { |
|
switch (state) { |
|
case AppState.Loading: |
|
return ChatVisibilityState.Hidden; |
|
case AppState.Banned: |
|
return ChatVisibilityState.Hidden; |
|
case AppState.Online: |
|
return ChatVisibilityState.Visible; |
|
case AppState.Offline: |
|
return ChatVisibilityState.Hidden; |
|
case AppState.OfflineWaiting: |
|
return ChatVisibilityState.Visible; |
|
case AppState.Registering: |
|
return ChatVisibilityState.Visible; |
|
default: |
|
return ChatVisibilityState.Hidden; |
|
} |
|
}
|
|
|