Skip to content

Instantly share code, notes, and snippets.

@tanthammar
tanthammar / AppServiceProvider.php
Created March 16, 2023 18:10 — forked from paulund/AppServiceProvider.php
Laravel Cache Auth::user(). Learn how to cache the logged in user at https://paulund.co.uk/laravel-cache-authuser
<?php
namespace App\Providers;
use App\Models\User;
use App\Observers\UserObserver;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
If you're into
- Laravel, https://laravel.com/
- Filament https://filamentphp.com/
- DTOs or Json columns.
Some templates...
@tanthammar
tanthammar / always-on-top.js
Created May 14, 2021 17:31
JS Get highest z-index, always on top
window.findHighestZ = () => [...document.querySelectorAll('body *')]
.map(elt => parseFloat(getComputedStyle(elt).zIndex))
.reduce((z, highest=Number.MIN_SAFE_INTEGER) =>
isNaN(z) || z < highest ? (isNaN(highest) ? 1 : highest) : z
)
//vanilla
document.getElementById("foo").style.zIndex = window.findHighestZ()
@tanthammar
tanthammar / AutoGeneratesPosition.php
Last active February 20, 2021 04:17
Auto generate spatial point when creating or updating a Model
<?php
namespace App\Traits;
use App\Helpers\GeoHelper;
use Grimzy\LaravelMysqlSpatial\Types\Point;
trait AutoGeneratesPosition
{
@tanthammar
tanthammar / validation.php
Created August 21, 2020 18:07
sv/validation.php
<?php
return [
'accepted' => 'Detta alternativ måste accepteras.',
'active_url' => 'Värdet är inte en giltig URL.',
'after' => 'Datumet måste vara efter :date.',
'after_or_equal' => 'Fältet måste vara ett datum efter :date eller lika med :date',
'alpha' => 'Fältet får bara innehålla bokstäver.',
'alpha_dash' => 'Fältet får bara innehålla bokstäver, nummer och bindestreck.',
'alpha_num' => 'Fältet får bara innehålla bokstäver och nummer.',
<?php
/**
* In your Livewire model for the list of items
*/
class ItemList extends Component
{
// rest of component
@tanthammar
tanthammar / HasLinks.php
Last active July 5, 2022 18:22
No more controllers! Only Laravel LiveWire routes and a handy Eloquent Model trait.
@tanthammar
tanthammar / session-timeout-alert-after-livewire-scripts.blade.php
Last active November 23, 2023 11:50
Laravel Livewire Turbolinks Blade component to keep session alive
{{-- You do not need to add this component if you are using the permanent option in the head component --}}
<script>
if (!window.sessionTimerPermanent && window.Livewire) {
window.livewire.hook('afterDomUpdate', startSessionTimer)
}
// if you are on livewire > 1.3.1 and want to avoid the default error alert
// https://github.com/livewire/livewire/pull/1146
window.livewire.onError(statusCode => {
if (statusCode === 419) {
@tanthammar
tanthammar / keep-csrf-alive.blade.php
Last active June 23, 2020 08:45
Keep livewire form session alive (419)
<script data-turbolinks-eval=false>
function updateToken() {
fetch('/update-csrf')
.then(response => response.text())
.then(csrf => {
document.head.querySelector('meta[name="csrf-token"]').setAttribute('content', csrf)
})
}
setInterval(updateToken, 1000 * 60 * 5)
</script>
<?php
$spaces = [
'driver' => 's3',
'key' => env('DO_SPACES_KEY'),
'secret' => env('DO_SPACES_SECRET'),
'endpoint' => env('DO_SPACES_ENDPOINT'),
'region' => env('DO_SPACES_REGION'),
'bucket' => env('DO_SPACES_BUCKET')
];