The server status needs to be stored in the redux store as it needs to be determined before mounting the Landing component.
51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
import { Action } from 'redux'
|
|
import { HeliosDistribution, HeliosServer } from 'common/distribution/DistributionFactory'
|
|
import { ServerStatus } from 'common/mojang/net/ServerStatusAPI'
|
|
|
|
export enum AppActionType {
|
|
SetDistribution = 'SET_DISTRIBUTION',
|
|
SetSelectedServer = 'SET_SELECTED_SERVER',
|
|
SetSelectedServerStatus = 'SET_SELECTED_SERVER_STATUS'
|
|
}
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
|
export interface AppAction extends Action {}
|
|
|
|
export interface SetDistributionAction extends AppAction {
|
|
payload?: HeliosDistribution
|
|
}
|
|
|
|
export interface SetSelectedServerAction extends AppAction {
|
|
payload?: HeliosServer
|
|
}
|
|
|
|
export interface SetSelectedServerStatusAction extends AppAction {
|
|
payload?: ServerStatus
|
|
}
|
|
|
|
export function setDistribution(distribution?: HeliosDistribution): SetDistributionAction {
|
|
return {
|
|
type: AppActionType.SetDistribution,
|
|
payload: distribution
|
|
}
|
|
}
|
|
|
|
export function setSelectedServer(server?: HeliosServer): SetSelectedServerAction {
|
|
return {
|
|
type: AppActionType.SetSelectedServer,
|
|
payload: server
|
|
}
|
|
}
|
|
|
|
export function setSelectedServerStatus(serverStatus?: ServerStatus): SetSelectedServerStatusAction {
|
|
return {
|
|
type: AppActionType.SetSelectedServerStatus,
|
|
payload: serverStatus
|
|
}
|
|
}
|
|
|
|
export const AppActionDispatch = {
|
|
setDistribution: (d?: HeliosDistribution): SetDistributionAction => setDistribution(d),
|
|
setSelectedServer: (s?: HeliosServer): SetSelectedServerAction => setSelectedServer(s),
|
|
setSelectedServerStatus: (ss?: ServerStatus): SetSelectedServerStatusAction => setSelectedServerStatus(ss)
|
|
} |