Skip to content

Commit

Permalink
feat: add error event (#22)
Browse files Browse the repository at this point in the history
  • Loading branch information
jpoehnelt authored Dec 6, 2024
1 parent 244361f commit d4a663e
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 3 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ and load OAuth tokens.
| `picker:canceled` | \`\` | Triggered when the user cancels the picker dialog. |
| `picker:picked` | \`\` | Triggered when the user picks one or more items. |
| `picker:loaded` | \`\` | Triggered when the picker is loaded. |
| `picker:error` | \`\` | Triggered when an error occurs. |

#### Slots

Expand Down
4 changes: 4 additions & 0 deletions custom-elements.json
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,10 @@
{
"description": "Triggered when the picker is loaded.",
"name": "picker:loaded"
},
{
"description": "Triggered when an error occurs.",
"name": "picker:error"
}
],
"attributes": [
Expand Down
10 changes: 7 additions & 3 deletions src/drive-picker/drive-picker-element.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ declare global {
"picker:canceled": CustomEvent<DrivePickerEventDetail>;
"picker:picked": CustomEvent<DrivePickerEventDetail>;
"picker:loaded": CustomEvent<DrivePickerEventDetail>;
"picker:error": CustomEvent<unknown>;
}
}

Expand All @@ -56,6 +57,7 @@ declare global {
* @fires picker:canceled - Triggered when the user cancels the picker dialog.
* @fires picker:picked - Triggered when the user picks one or more items.
* @fires picker:loaded - Triggered when the picker is loaded.
* @fires picker:error - Triggered when an error occurs.
*
* @slot - The default slot contains View elements to display in the picker.
* Each View element should implement a property `view` of type
Expand Down Expand Up @@ -138,7 +140,7 @@ export class DrivePickerElement extends HTMLElement {
this.picker?.dispose();

// this await is necessary as an attribute may have changed
// prior to the API initialy being loaded
// prior to the API initially being loaded
await this.loading;

if (!this.google) return;
Expand Down Expand Up @@ -263,11 +265,13 @@ export class DrivePickerElement extends HTMLElement {
case google.picker.Action.PICKED:
eventType = "picker:picked";
break;
case google.picker.Action.LOADED:
case google.picker.Action.ERROR:
eventType = "picker:error";
break;
case "loaded":
eventType = "picker:loaded";
break;
default:
console.warn(`Unknown action: ${data.action}`);
return;
}

Expand Down

0 comments on commit d4a663e

Please sign in to comment.