From 388b29d51a4dc9dad0d90eff5ebdbb24e4f8181b Mon Sep 17 00:00:00 2001 From: Sergey Kudashev <kudashevs@gmail.com> Date: Sat, 7 Dec 2024 13:29:27 +0300 Subject: [PATCH] Add ShareProviders add Bluesky share provider --- README.md | 4 +++- config/share-buttons.php | 5 +++++ src/Facades/ShareButtonsFacade.php | 1 + src/ShareButtons.php | 1 + tests/Acceptance/ShareButtonsTest.php | 6 ++++++ 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index adb1d197..c28e3924 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ a flexible and convenient way within seconds. The package was originated from th * Facebook * X (formerly Twitter) +* Bluesky * LinkedIn * Telegram * WhatsApp @@ -127,7 +128,8 @@ Each method accepts an array of options (more information about these options in [//]: # (@todo don't forget to update these methods) ``` facebook($options) # Generates a Facebook share button -twitter($options) # Generates a Twitter share button +twitter($options) # Generates an X (former Twitter) share button +bluesky($options) # Generates a Bluesky share button linkedin($options) # Generates a LinkedIn share button telegram($options) # Generates a Telegram share button whatsapp($options) # Generates a WhatsApp share button diff --git a/config/share-buttons.php b/config/share-buttons.php index 103296f3..2dcf11ce 100644 --- a/config/share-buttons.php +++ b/config/share-buttons.php @@ -37,6 +37,10 @@ */ 'buttons' => [ + 'bluesky' => [ + 'url' => 'https://bsky.app/intent/compose?text=:url%20:text', + 'text' => 'Default share text', + ], 'copylink' => [ 'url' => ':url', 'extra' => [ @@ -115,6 +119,7 @@ */ 'templates' => [ + 'bluesky' => '<a href=":url" class="social-button:class":id:title:rel><span class="fab fa-square-bluesky"></span></a>', 'copylink' => '<a href=":url" class="social-button:class" id="clip":title:rel><span class="fas fa-share"></span></a>', 'evernote' => '<a href=":url" class="social-button:class":id:title:rel><span class="fab fa-evernote"></span></a>', 'facebook' => '<a href=":url" class="social-button:class":id:title:rel><span class="fab fa-facebook-square"></span></a>', diff --git a/src/Facades/ShareButtonsFacade.php b/src/Facades/ShareButtonsFacade.php index 0b71e3e3..d975d440 100644 --- a/src/Facades/ShareButtonsFacade.php +++ b/src/Facades/ShareButtonsFacade.php @@ -10,6 +10,7 @@ * * @method ShareButtons page($url, string $title = '', array $options = []) * @method ShareButtons currentPage($url, string $title = '', array $options = []) + * @method ShareButtons bluesky(array $options = []) * @method ShareButtons copylink(array $options = []) * @method ShareButtons evernote(array $options = []) * @method ShareButtons facebook(array $options = []) diff --git a/src/ShareButtons.php b/src/ShareButtons.php index 71d00bc6..cfd16ce0 100644 --- a/src/ShareButtons.php +++ b/src/ShareButtons.php @@ -13,6 +13,7 @@ /** * @todo don't forget to update these method signatures * + * @method ShareButtons bluesky(array $options = []) * @method ShareButtons copylink(array $options = []) * @method ShareButtons evernote(array $options = []) * @method ShareButtons facebook(array $options = []) diff --git a/tests/Acceptance/ShareButtonsTest.php b/tests/Acceptance/ShareButtonsTest.php index 168d6bae..6400d5ac 100644 --- a/tests/Acceptance/ShareButtonsTest.php +++ b/tests/Acceptance/ShareButtonsTest.php @@ -103,6 +103,12 @@ public function it_can_generate_an_expected_share_button( public static function provideDifferentShareButtonsValues(): array { return [ + 'bluesky' => [ + 'bluesky', + 'https://mysite.com', + 'My bluesky title', + 'https://bsky.app/intent/compose?text=https%3A%2F%2Fmysite.com%20My+bluesky+title', + ], 'copylink' => [ 'copylink', 'https://mysite.com',