Skip to content

Commit 335cf79

Browse files
committed
Updated QR code on dashboard share menu
1 parent aab1156 commit 335cf79

File tree

2 files changed

+39
-19
lines changed

2 files changed

+39
-19
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
"require": {
88
"php": ">=8.0",
99
"awssat/laravel-visits": "^6.0",
10-
"bacon/bacon-qr-code": "^2.0",
1110
"codedge/laravel-selfupdater": "^3.6",
1211
"cohensive/oembed": "^0.17",
1312
"doctrine/dbal": "^3.0",
@@ -20,6 +19,7 @@
2019
"laravel/tinker": "^2.5",
2120
"livewire/livewire": "^2.12",
2221
"rappasoft/laravel-livewire-tables": "^2.15",
22+
"simplesoftwareio/simple-qrcode": "~4",
2323
"spatie/laravel-backup": "^8.17"
2424
},
2525
"require-dev": {

resources/views/layouts/sidebar.blade.php

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
@php
2-
use BaconQrCode\Renderer\ImageRenderer;
3-
use BaconQrCode\Renderer\Image\ImagickImageBackEnd;
4-
use BaconQrCode\Renderer\RendererStyle\RendererStyle;
5-
use BaconQrCode\Writer;
6-
use BaconQrCode\Renderer\Image\SvgImageBackEnd;
2+
use SimpleSoftwareIO\QrCode\Facades\QrCode;
73
use App\Models\User;
84
$usrhandl = Auth::user()->littlelink_name;
95
@endphp
@@ -685,33 +681,57 @@
685681
</div>
686682
@php
687683
try {
688-
$qrCodeData = url('@'.Auth::user()->littlelink_name);
684+
$redirectURL = url('').'/'.'u/'.Auth::user()->id;
689685
690-
$renderer = new ImageRenderer(
691-
new RendererStyle(400),
692-
new SvgImageBackEnd()
693-
);
694-
$writer = new Writer($renderer);
686+
if (extension_loaded('imagick')) {
687+
$imgSrc = QrCode::format('png')->size(1000)->generate($redirectURL);
688+
$imgSrc = base64_encode($imgSrc);
689+
$imgSrc = 'data:image/png;base64,' . $imgSrc;
690+
$imgType = 'png';
691+
} else {
692+
$imgSrc = QrCode::size(1000)->generate($redirectURL);
693+
$imgSrc = base64_encode($imgSrc);
694+
$imgSrc = 'data:image/svg+xml;base64,' . $imgSrc;
695+
$imgType = 'svg';
696+
}
695697
696-
$svgImageData = $writer->writeString($qrCodeData);
697-
698-
$svgImageBase64 = base64_encode($svgImageData);
699-
700-
$imgSrc = 'data:image/svg+xml;base64,' . $svgImageBase64;
701-
} catch(exception $e) {echo '<p class="text-center pt-5">{{__("messages.QR code could not be generated")}}</p>'; if(auth()->user()->role == 'admin'){echo "<p class='ps-3'>{{__('messages.Reason:')}} <pre class='ps-4'>".$e->getMessage()."</pre></p>";}}
698+
} catch(exception $e) {
699+
$imgSrc = url('/assets/linkstack/images/themes/no-preview.png');
700+
$imgType = NULL;
701+
}
702702
@endphp
703703
<div class="modal-body">
704704
<div class="bd-example">
705-
<img draggable="false" src="@php if(isset($imgSrc)){echo $imgSrc;} @endphp" style="width:100%;height:auto;" class="bd-placeholder-img img-thumbnail">
705+
<img id="generatedImage" draggable="false" src="@php if(isset($imgSrc)){echo $imgSrc;} @endphp" style="width:100%;height:auto;" class="bd-placeholder-img img-thumbnail">
706706
</div>
707707
</div>
708708
<div class="modal-footer">
709+
@if($imgType == 'png')
710+
<button type="button" class="btn btn-info" id="downloadButton">{{__('messages.Download')}}</button>
711+
@endif
709712
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{{__('messages.Close')}}</button>
710713
</div>
711714
</div>
712715
</div>
713716
</div>
714717

718+
<script>
719+
document.addEventListener("DOMContentLoaded", function() {
720+
var downloadButton = document.getElementById("downloadButton");
721+
var generatedImage = document.getElementById("generatedImage");
722+
723+
downloadButton.addEventListener("click", function() {
724+
var format = generatedImage.getAttribute("data-format") || "png";
725+
var downloadLink = document.createElement("a");
726+
downloadLink.href = generatedImage.src;
727+
downloadLink.download = "generated_image." + format;
728+
document.body.appendChild(downloadLink);
729+
downloadLink.click();
730+
document.body.removeChild(downloadLink);
731+
});
732+
});
733+
</script>
734+
715735
<!-- Library Bundle Script -->
716736
<script src="{{asset('assets/js/core/libs.min.js')}}"></script>
717737

0 commit comments

Comments
 (0)