77use Livewire \WithPagination ;
88use SolutionForest \InspireCms \Filament \Contracts \GuardWidget ;
99use SolutionForest \InspireCms \Filament \Widgets \Conceners \GuardWidgetTrait ;
10+ use SolutionForest \InspireCms \Models \Contracts \UserLoginActivity ;
1011
1112class UserActivity extends Widget implements GuardWidget
1213{
@@ -51,52 +52,21 @@ protected function getUserActivities()
5152 ->simplePaginate (perPage: 5 , pageName: $ pageName , page: $ this ->getPage ($ pageName ));
5253
5354 $ activities ->tap (function ($ activities ) use ($ user ) {
54- $ activities ->setCollection ($ activities ->getCollection ()->map (function ($ activity ) use ($ user ) {
55+ $ activities ->setCollection ($ activities ->getCollection ()->map (function (UserLoginActivity $ activity ) use ($ user ) {
5556
5657 $ activity ->causer = $ user ;
5758 $ activity ->subject = $ user ;
5859
5960 $ activity ->description = $ activity ->ip_address ;
6061
61- $ dtFormat = 'Y-m-d H:i:s ' ;
62- if ($ activity ->last_logged_in_at_utc != null ) {
63- $ ts = $ activity ->last_logged_in_at_utc ->format ($ dtFormat );
64- $ activity ->last_logged_in_at_utc = Carbon::createFromFormat (
65- $ dtFormat ,
66- $ ts ,
67- 'UTC '
68- );
69- $ activity ->last_logged_in_at_local = Carbon::createFromFormat (
70- $ dtFormat ,
71- $ ts ,
72- 'UTC '
73- )->setTimezone (config ('app.timezone ' ));
74- } else {
75- $ activity ->last_logged_in_at_local = null ;
76- }
77-
78- if ($ activity ->last_logged_out_at_utc != null ) {
79- $ ts = $ activity ->last_logged_out_at_utc ->format ($ dtFormat );
80- $ activity ->last_logged_out_at_utc = Carbon::createFromFormat (
81- $ dtFormat ,
82- $ ts ,
83- 'UTC '
84- );
85- $ activity ->last_logged_out_at_local = Carbon::createFromFormat (
86- $ dtFormat ,
87- $ ts ,
88- 'UTC '
89- )->setTimezone (config ('app.timezone ' ));
90- } else {
91- $ activity ->last_logged_out_at_local = null ;
92- }
93- $ activity ->last_logged_out_at_utc = \Carbon \Carbon::createFromFormat (
94- $ dtFormat ,
95- $ activity ->last_logged_out_at_utc ->format ($ dtFormat ),
96- 'UTC '
97- );
62+ $ activity ->last_logged_in_at_utc = $ this ->convertDt ($ activity ->last_logged_in_at_utc );
63+ $ activity ->last_logged_in_at_local = $ this ->convertDtToLocal ($ activity ->last_logged_in_at_utc );
64+
65+ $ activity ->last_logged_out_at_utc = $ this ->convertDt ($ activity ->last_logged_out_at_utc );
66+ $ activity ->last_logged_out_at_local = $ this ->convertDtToLocal ($ activity ->last_logged_out_at_utc );
9867
9968 return $ activity ;
69+
10070 }));
10171 });
10272
@@ -114,4 +84,26 @@ protected function getUserActivities()
11484 return $ this ->getPage ($ pageName );
11585 });
11686 }
87+
88+ private function convertDt (?\Carbon \CarbonInterface $ dateTime ): ?\Carbon \CarbonInterface
89+ {
90+ if (is_null ($ dateTime )) {
91+ return null ;
92+ }
93+
94+ $ dtFormat = 'Y-m-d H:i:s ' ;
95+
96+ $ ts = $ dateTime ->format ($ dtFormat );
97+
98+ return Carbon::createFromFormat (
99+ $ dtFormat ,
100+ $ ts ,
101+ 'UTC '
102+ );
103+ }
104+
105+ private function convertDtToLocal (?\Carbon \CarbonInterface $ dateTime ): ?\Carbon \CarbonInterface
106+ {
107+ return $ this ->convertDt ($ dateTime )?->setTimezone(config ('app.timezone ' ));
108+ }
117109}
0 commit comments