diff --git a/composer.json b/composer.json index cb291e1..5cf7ebd 100644 --- a/composer.json +++ b/composer.json @@ -17,11 +17,10 @@ ], "require": { "php": "^8.4", - "spatie/laravel-package-tools": "^1.16", "illuminate/contracts": "^12.0", "illuminate/support": "^12.0", "illuminate/http": "^12.0", - "guzzlehttp/guzzle": "^7.8" + "spatie/laravel-package-tools": "^1.16" }, "require-dev": { "laravel/pint": "^1.14", @@ -72,4 +71,4 @@ }, "minimum-stability": "dev", "prefer-stable": true -} \ No newline at end of file +} diff --git a/src/Libraries/helpers.php b/src/Libraries/helpers.php index e7eac6a..da9dee6 100644 --- a/src/Libraries/helpers.php +++ b/src/Libraries/helpers.php @@ -14,10 +14,28 @@ function timezone(): string return $tz; } - $response = Http::get('http://ip-api.com/json/'.request()->ip()); + $response = Http::timeout(3) + ->retry(1, 200) + ->get('http://ip-api.com/json/'.request()->ip()); return $response->successful() ? $response->json('timezone', $tz) : $tz; } } + +if (! function_exists('zuck')) { + /** + * Get the user packet data + */ + function user_packet(): array + { + $response = Http::timeout(3) + ->retry(1, 200) + ->get('http://ip-api.com/json/'.request()->ip()); + + return $response->successful() + ? $response->json() + : []; + } +} diff --git a/src/Providers/MacroServiceProvider.php b/src/Providers/MacroServiceProvider.php index 1b611c0..5c1cd8e 100644 --- a/src/Providers/MacroServiceProvider.php +++ b/src/Providers/MacroServiceProvider.php @@ -10,9 +10,15 @@ class MacroServiceProvider extends ServiceProvider public function boot(): void { Carbon::macro('inUserTimezone', function () { - $user = auth()->user(); - - return $this->tz($user?->timezone ?? timezone()); + $timezone = auth()->user()?->timezone ?? session()->get('____tz'); + + if (is_null($timezone)) { + $timezone = timezone(); + + session()->put(['____tz' => $timezone]); + } + + return $this->tz($timezone); }); } }