@@ -21,9 +21,9 @@ public static function render(array $parameters): string
21
21
request ()->merge ([$ mergeTitleAs => $ title ]);
22
22
}
23
23
24
- list ($ icon , $ direction ) = self ::determineDirection ($ sortColumn , $ sortParameter );
24
+ list ($ icon , $ direction ) = self ::getDirectionAndIcon ($ sortColumn , $ sortParameter );
25
25
26
- $ trailingTag = self ::formTrailingTag ($ icon );
26
+ $ trailingTag = self ::getTrailingTag ($ icon );
27
27
28
28
$ anchorClass = self ::getAnchorClass ($ sortParameter , $ anchorAttributes );
29
29
@@ -100,31 +100,34 @@ private static function applyFormatting($title, string $sortColumn)
100
100
return $ title ;
101
101
}
102
102
103
- private static function determineDirection ($ sortColumn , $ sortParameter ): array
103
+ private static function getDirectionAndIcon ($ sortColumn , $ sortParameter ): array
104
104
{
105
105
$ icon = self ::selectIcon ($ sortColumn );
106
106
107
- if ((request ()->get ('sort ' ) == $ sortParameter ) && in_array (request ()->get ('direction ' ), ['asc ' , 'desc ' ])) {
108
- $ icon .= (request ()->get ('direction ' ) === 'asc ' )
109
- ? config ('sortable.asc_suffix ' )
110
- : config ('sortable.desc_suffix ' );
107
+ $ sort = request ()->get ('sort ' );
108
+ $ dir = request ()->get ('direction ' );
111
109
112
- $ direction = request ()->get ('direction ' ) === 'desc ' ? 'asc ' : 'desc ' ;
110
+ if (($ sort == $ sortParameter ) && in_array ($ dir , ['asc ' , 'desc ' ])) {
111
+ $ icon .= ($ dir === 'asc ' )
112
+ ? config ('sortable.icons.asc_suffix ' )
113
+ : config ('sortable.icons.desc_suffix ' );
113
114
114
- return [ $ icon , $ direction ] ;
115
+ $ direction = ( $ dir === ' desc ' ) ? ' asc ' : ' desc ' ;
115
116
} else {
116
117
$ icon = config ('sortable.icons.sortable ' );
117
118
$ direction = config ('sortable.default_direction_unsorted ' );
118
-
119
- return [$ icon , $ direction ];
120
119
}
120
+
121
+ $ icon = static ::getIconHtml ($ icon );
122
+
123
+ return [$ icon , $ direction ];
121
124
}
122
125
123
126
private static function selectIcon ($ sortColumn ): string
124
127
{
125
128
$ icon = config ('sortable.icons.default ' );
126
129
127
- foreach (config ('sortable.types ' , [] ) as $ value ) {
130
+ foreach (config ('sortable.types ' ) as $ value ) {
128
131
if (in_array ($ sortColumn , $ value ['fields ' ])) {
129
132
$ icon = $ value ['icon ' ];
130
133
}
@@ -136,22 +139,17 @@ private static function selectIcon($sortColumn): string
136
139
/**
137
140
* @param string|null $icon
138
141
*/
139
- private static function formTrailingTag ($ icon ): string
142
+ private static function getTrailingTag ($ icon ): string
140
143
{
141
144
if (! config ('sortable.icons.enabled ' )) {
142
145
return '</a> ' ;
143
146
}
144
147
145
- $ clickableIcon = config ('sortable.icons.clickable ' );
146
- $ trailingTag = static ::getIconHtml ($ icon ) . '</a> ' ;
147
-
148
- if ($ clickableIcon === false ) {
149
- $ trailingTag = '</a> ' . static ::getIconHtml ($ icon );
150
-
151
- return $ trailingTag ;
148
+ if (config ('sortable.icons.clickable ' ) === true ) {
149
+ return $ icon . '</a> ' ;
152
150
}
153
151
154
- return $ trailingTag ;
152
+ return ' </a> ' . $ icon ;
155
153
}
156
154
157
155
/**
@@ -167,12 +165,12 @@ private static function getAnchorClass(string $sortColumn, array &$anchorAttribu
167
165
}
168
166
169
167
$ activeClass = config ('sortable.active_anchor_class ' );
170
- if ($ activeClass !== null && self ::shouldShowActive ($ sortColumn )) {
168
+ if (( $ activeClass !== null ) && self ::shouldShowActive ($ sortColumn )) {
171
169
$ class [] = $ activeClass ;
172
170
}
173
171
174
172
$ directionClassPrefix = config ('sortable.direction_anchor_class_prefix ' );
175
- if ($ directionClassPrefix !== null && self ::shouldShowActive ($ sortColumn )) {
173
+ if (( $ directionClassPrefix !== null ) && self ::shouldShowActive ($ sortColumn )) {
176
174
$ class [] = $ directionClassPrefix . (request ()->get ('direction ' ) === 'asc ' )
177
175
? config ('sortable.asc_suffix ' , '-asc ' )
178
176
: config ('sortable.desc_suffix ' , '-desc ' );
@@ -230,11 +228,13 @@ private static function buildUrl(string $queryString, array $anchorAttributes):
230
228
return url ($ path . "? " . $ queryString );
231
229
}
232
230
233
- public static function getIconHtml ($ icon = null ): string
231
+ /**
232
+ * @param string|null $icon
233
+ */
234
+ public static function getIconHtml ($ icon ): string
234
235
{
235
236
$ prefix = config ('sortable.icons.prefix ' );
236
237
$ suffix = config ('sortable.icons.suffix ' );
237
- $ icon = $ icon ?: config ('sortable.icons.default ' );
238
238
$ wrapper = config ('sortable.icons.wrapper ' );
239
239
240
240
return $ prefix . str_replace ('{icon} ' , $ icon , $ wrapper ) . $ suffix ;
0 commit comments