Skip to content

Commit 86c7aef

Browse files
committed
Add loading variant for Snaps UI Button
Update manifest shasum Add loading variant to old button
1 parent 9d8915b commit 86c7aef

File tree

6 files changed

+13
-4
lines changed

6 files changed

+13
-4
lines changed

packages/examples/packages/browserify-plugin/snap.manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "https://github.com/MetaMask/snaps.git"
88
},
99
"source": {
10-
"shasum": "d1js9Y4zJwk7n/e47V5fdMreo1FBtVKl4GtPhfckZrs=",
10+
"shasum": "w8ZPchwG+LqlFzbmkqVQ5nDqt5GDFkZsU8dUm1b5NXo=",
1111
"location": {
1212
"npm": {
1313
"filePath": "dist/bundle.js",

packages/snaps-sdk/src/jsx/components/form/Button.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export type ButtonProps = {
2222
children: SnapsChildren<StringElement | IconElement | ImageElement>;
2323
name?: string | undefined;
2424
type?: 'button' | 'submit' | undefined;
25-
variant?: 'primary' | 'destructive' | undefined;
25+
variant?: 'primary' | 'destructive' | 'loading' | undefined;
2626
disabled?: boolean | undefined;
2727
form?: string | undefined;
2828
};

packages/snaps-sdk/src/jsx/validation.test.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ describe('ButtonStruct', () => {
163163
<Button name="foo">bar</Button>,
164164
<Button type="submit">foo</Button>,
165165
<Button variant="destructive">foo</Button>,
166+
<Button variant="loading">foo</Button>,
166167
<Button disabled={true}>foo</Button>,
167168
<Button key="button">foo</Button>,
168169
<Button>

packages/snaps-sdk/src/jsx/validation.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,9 @@ export const ButtonStruct: Describe<ButtonElement> = element('Button', {
243243
children: children([StringElementStruct, ImageStruct, IconStruct]),
244244
name: optional(string()),
245245
type: optional(nullUnion([literal('button'), literal('submit')])),
246-
variant: optional(nullUnion([literal('primary'), literal('destructive')])),
246+
variant: optional(
247+
nullUnion([literal('primary'), literal('destructive'), literal('loading')]),
248+
),
247249
disabled: optional(boolean()),
248250
form: optional(string()),
249251
});

packages/snaps-sdk/src/ui/components/button.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { LiteralStruct, NodeType } from '../nodes';
1515
export enum ButtonVariant {
1616
Primary = 'primary',
1717
Secondary = 'secondary',
18+
Loading = 'loading',
1819
}
1920

2021
export enum ButtonType {
@@ -31,6 +32,7 @@ export const ButtonStruct = assign(
3132
union([
3233
enumValue(ButtonVariant.Primary),
3334
enumValue(ButtonVariant.Secondary),
35+
enumValue(ButtonVariant.Loading),
3436
]),
3537
),
3638
buttonType: optional(

packages/snaps-utils/src/ui.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,16 @@ const ALLOWED_PROTOCOLS = ['https:', 'mailto:', 'metamask:'];
5151
* @param variant - The legacy button component variant.
5252
* @returns The button variant.
5353
*/
54-
function getButtonVariant(variant?: 'primary' | 'secondary' | undefined) {
54+
function getButtonVariant(
55+
variant?: 'primary' | 'secondary' | 'loading' | undefined,
56+
) {
5557
switch (variant) {
5658
case 'primary':
5759
return 'primary';
5860
case 'secondary':
5961
return 'destructive';
62+
case 'loading':
63+
return 'loading';
6064
default:
6165
return undefined;
6266
}

0 commit comments

Comments
 (0)