Skip to content

Commit 805952a

Browse files
committed
Update typescript bindings with new status field
1 parent 8db3a05 commit 805952a

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

resources/scripts/api/server/getServer.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import http, { FractalResponseData, FractalResponseList } from '@/api/http';
22
import { rawDataToServerAllocation, rawDataToServerEggVariable } from '@/api/transformers';
3-
import { ServerEggVariable } from '@/api/server/types';
3+
import { ServerEggVariable, ServerStatus } from '@/api/server/types';
44

55
export interface Allocation {
66
id: number;
@@ -17,6 +17,7 @@ export interface Server {
1717
uuid: string;
1818
name: string;
1919
node: string;
20+
status: ServerStatus;
2021
sftpDetails: {
2122
ip: string;
2223
port: number;
@@ -38,6 +39,10 @@ export interface Server {
3839
allocations: number;
3940
backups: number;
4041
};
42+
// Only isSuspended got marked as deprecated since the isInstalling is a nice helper
43+
// since you'd have to check multiple potential values for that. isSuspended should
44+
// be replaced with status !== 'suspended'.
45+
/** @deprecated */
4146
isSuspended: boolean;
4247
isInstalling: boolean;
4348
isTransferring: boolean;
@@ -51,6 +56,7 @@ export const rawDataToServerObject = ({ attributes: data }: FractalResponseData)
5156
uuid: data.uuid,
5257
name: data.name,
5358
node: data.node,
59+
status: data.status,
5460
invocation: data.invocation,
5561
dockerImage: data.docker_image,
5662
sftpDetails: {
@@ -61,8 +67,8 @@ export const rawDataToServerObject = ({ attributes: data }: FractalResponseData)
6167
limits: { ...data.limits },
6268
eggFeatures: data.egg_features || [],
6369
featureLimits: { ...data.feature_limits },
64-
isSuspended: data.is_suspended,
65-
isInstalling: data.is_installing,
70+
isSuspended: data.status === 'suspended',
71+
isInstalling: data.status === 'installing' || data.status === 'install_failed',
6672
isTransferring: data.is_transferring,
6773
variables: ((data.relationships?.variables as FractalResponseList | undefined)?.data || []).map(rawDataToServerEggVariable),
6874
allocations: ((data.relationships?.allocations as FractalResponseList | undefined)?.data || []).map(rawDataToServerAllocation),

resources/scripts/api/server/types.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
export type ServerStatus = 'installing' | 'install_failed' | 'suspended' | 'restoring_backup' | null;
2+
13
export interface ServerBackup {
24
uuid: string;
35
isSuccessful: boolean;

resources/scripts/components/dashboard/ServerRow.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,16 @@ const StatusIndicatorBox = styled(GreyRowBox)<{ $status: ServerPowerState | unde
4141

4242
export default ({ server, className }: { server: Server; className?: string }) => {
4343
const interval = useRef<number>(null);
44-
const [ isSuspended, setIsSuspended ] = useState(server.isSuspended);
44+
const [ isSuspended, setIsSuspended ] = useState(server.status === 'suspended');
4545
const [ stats, setStats ] = useState<ServerStats | null>(null);
4646

4747
const getStats = () => getServerResourceUsage(server.uuid)
4848
.then(data => setStats(data))
4949
.catch(error => console.error(error));
5050

5151
useEffect(() => {
52-
setIsSuspended(stats?.isSuspended || server.isSuspended);
53-
}, [ stats?.isSuspended, server.isSuspended ]);
52+
setIsSuspended(stats?.isSuspended || server.status === 'suspended');
53+
}, [ stats?.isSuspended, server.status ]);
5454

5555
useEffect(() => {
5656
// Don't waste a HTTP request if there is nothing important to show to the user because
@@ -107,7 +107,7 @@ export default ({ server, className }: { server: Server; className?: string }) =
107107
isSuspended ?
108108
<div css={tw`flex-1 text-center`}>
109109
<span css={tw`bg-red-500 rounded px-2 py-1 text-red-100 text-xs`}>
110-
{server.isSuspended ? 'Suspended' : 'Connection Error'}
110+
{server.status === 'suspended' ? 'Suspended' : 'Connection Error'}
111111
</span>
112112
</div>
113113
:

0 commit comments

Comments
 (0)