diff --git a/src/commands/CreateBookFromClipboardCommand.ts b/src/commands/CreateBookFromClipboardCommand.ts index b196540..da93238 100644 --- a/src/commands/CreateBookFromClipboardCommand.ts +++ b/src/commands/CreateBookFromClipboardCommand.ts @@ -15,7 +15,14 @@ export class CreateBookFromClipboardCommand extends Command { } async callback() { - const data = await navigator.clipboard.readText(); + let data: string; + try { + data = await navigator.clipboard.readText(); + } catch (err) { + console.error("Failed to read clipboard:", err) + new Notice("Failed to get book from the clipboard"); + return; + } const result = await bookSchema.safeParseAsync(JSON.parse(data)); if (!result.success) { diff --git a/src/commands/CreateBookFromGoodreadsUrlCommand.ts b/src/commands/CreateBookFromGoodreadsUrlCommand.ts index 145c4f8..aaef30a 100644 --- a/src/commands/CreateBookFromGoodreadsUrlCommand.ts +++ b/src/commands/CreateBookFromGoodreadsUrlCommand.ts @@ -17,7 +17,15 @@ export class CreateBookFromGoodreadsUrlCommand extends Command { } async callback() { - const url = await navigator.clipboard.readText(); + let url: string; + try { + url = await navigator.clipboard.readText(); + } catch (err) { + console.error("Failed to read clipboard:", err) + new Notice("Failed to get URL from clipboard"); + return; + } + const legacyId = parseInt( GOODREADS_URL_PATTERN.exec(url)?.[1] ?? "", 10 diff --git a/src/commands/UpdateCoverFromURLCommand.ts b/src/commands/UpdateCoverFromURLCommand.ts index 2536a83..4657b05 100644 --- a/src/commands/UpdateCoverFromURLCommand.ts +++ b/src/commands/UpdateCoverFromURLCommand.ts @@ -18,7 +18,15 @@ export class UpdateCoverFromURLCommand extends EditorCheckCommand { protected async run(_editor: Editor, ctx: MarkdownView | MarkdownFileInfo): Promise { const file = ctx.file!; - const url = await navigator.clipboard.readText(); + + let url: string; + try { + url = await navigator.clipboard.readText(); + } catch (err) { + console.error("Failed to read clipbaord:", err); + new Notice("Failed to get cover image url from clipboard"); + return; + } let coverFile: TFile; try {