/
Updates.tsx
50 lines (44 loc) · 1.25 KB
/
Updates.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import { logError } from '@metamask/snaps-utils';
import { FunctionComponent } from 'react';
import { Button, ButtonGroup } from 'react-bootstrap';
import { useGetSnapsQuery, useInstallSnapMutation } from '../../../api';
import { Result, Snap } from '../../../components';
import {
UPDATES_SNAP_ID,
UPDATES_SNAP_NEW_VERSION,
UPDATES_SNAP_OLD_VERSION,
} from './constants';
export const Updates: FunctionComponent = () => {
const [installSnap, { isLoading }] = useInstallSnapMutation();
const { data: snaps } = useGetSnapsQuery();
const currentVersion = snaps?.[UPDATES_SNAP_ID]?.version;
const handleUpdate = () => {
installSnap({
snapId: UPDATES_SNAP_ID,
version: UPDATES_SNAP_NEW_VERSION,
}).catch(logError);
};
return (
<Snap
name="Update Snap"
snapId={UPDATES_SNAP_ID}
version={UPDATES_SNAP_OLD_VERSION}
testId="Update"
>
<Result className="mb-3">
<span id="updateSnapVersion">
{JSON.stringify(currentVersion, null, 2)}
</span>
</Result>
<ButtonGroup>
<Button
disabled={isLoading}
onClick={handleUpdate}
id="connectUpdateNew"
>
Update Snap
</Button>
</ButtonGroup>
</Snap>
);
};