From 116dce753559c15a5c3d579eaef78d38d6d3ce4e Mon Sep 17 00:00:00 2001 From: Oleg Date: Sat, 27 Aug 2022 13:38:40 +0300 Subject: [PATCH] added donate button --- components/DonateButton.ts | 73 ++++++++++++++++++++++++++++++++++++++ main.ts | 8 ++++- 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 components/DonateButton.ts diff --git a/components/DonateButton.ts b/components/DonateButton.ts new file mode 100644 index 0000000..1e51e2a --- /dev/null +++ b/components/DonateButton.ts @@ -0,0 +1,73 @@ +export const renderDonateButton = (containerEl: HTMLElement) => { + containerEl.createEl('br'); + containerEl.createEl('h3', { text: 'Support development' }); + + const donateText = containerEl.createEl('p'); + + donateText.appendChild( + createEl('span', { + text: 'If you enjoy Bulk Rename, consider ', + }), + ); + donateText.appendChild( + createEl('a', { + text: 'buying me a coffee', + href: 'https://www.buymeacoffee.com/oleglustenko', + }), + ); + donateText.appendChild( + createEl('span', { + text: ', and following me on Twitter ', + }), + ); + donateText.appendChild( + createEl('a', { + text: '@oleglustenko', + href: 'https://twitter.com/oleglustenko', + }), + ); + + const div = containerEl.createEl('div', { + cls: 'bulkrename-donation', + }); + + const parser = new DOMParser(); + div.appendChild( + createDonateButton( + 'https://www.buymeacoffee.com/oleglustenko', + parser.parseFromString(buyMeACoffee, 'text/xml').documentElement, + ), + ); +}; + +const createDonateButton = (link: string, img: HTMLElement): HTMLElement => { + const a = document.createElement('a'); + a.setAttribute('href', link); + a.addClass('bulkrename-donate-button'); + a.appendChild(img); + return a; +}; + +const buyMeACoffee = ` + + + + + + + + + + + + + + + + + + + + + +`; diff --git a/main.ts b/main.ts index 7eebdcb..fca68d8 100644 --- a/main.ts +++ b/main.ts @@ -1,5 +1,6 @@ import { App, Plugin, PluginSettingTab, Setting, TFile } from 'obsidian'; import { FolderSuggest } from './suggestions/folderSuggest'; +import { renderDonateButton } from './components/DonateButton'; interface MyPluginSettings { folderName: string; @@ -57,6 +58,7 @@ class BulkRenameSettingsTab extends PluginSettingTab { this.renderReplaceSymbol(); this.renderFilesAndPreview(); this.renderRenameFiles(); + this.renderSupportDevelopment(); } renderReplaceSymbol() { @@ -149,7 +151,7 @@ class BulkRenameSettingsTab extends PluginSettingTab { } renderRenameFiles() { - let desc = document.createDocumentFragment(); + const desc = document.createDocumentFragment(); desc.append( 'You are going to update all marked files', desc.createEl('br'), @@ -182,6 +184,10 @@ class BulkRenameSettingsTab extends PluginSettingTab { }); } + renderSupportDevelopment() { + renderDonateButton(this.containerEl); + } + calculateFiles() { this.plugin.settings.fileNames = [ ...getObsidianFiles(this.app, this.plugin.settings.folderName),