diff --git a/src/ColumnSortable/SortableLink.php b/src/ColumnSortable/SortableLink.php
index 986b0f2..22fb3b5 100644
--- a/src/ColumnSortable/SortableLink.php
+++ b/src/ColumnSortable/SortableLink.php
@@ -13,7 +13,7 @@
class SortableLink
{
- /**
+ /**
* @param array $parameters
*
* @return string
@@ -29,7 +29,7 @@ public static function render(array $parameters)
request()->merge([$mergeTitleAs => $title]);
}
- list($icon, $direction) = self::determineDirection($sortColumn, $sortParameter);
+ list($icon, $direction) = self::determineDirection($sortColumn, $sortParameter, $queryParameters);
$trailingTag = self::formTrailingTag($icon);
@@ -122,10 +122,11 @@ private static function applyFormatting($title, $sortColumn)
/**
* @param $sortColumn
* @param $sortParameter
+ * @param $queryParameters
*
* @return array
*/
- private static function determineDirection($sortColumn, $sortParameter)
+ private static function determineDirection($sortColumn, $sortParameter, $queryParameters)
{
$icon = self::selectIcon($sortColumn);
@@ -137,7 +138,7 @@ private static function determineDirection($sortColumn, $sortParameter)
return [$icon, $direction];
} else {
$icon = config('columnsortable.sortable_icon');
- $direction = config('columnsortable.default_direction_unsorted', 'asc');
+ $direction = $queryParameters['direction'] ?? config('columnsortable.default_direction_unsorted', 'asc');
return [$icon, $direction];
}
diff --git a/tests/SortableLinkTest.php b/tests/SortableLinkTest.php
index b30dfa1..8eaec86 100644
--- a/tests/SortableLinkTest.php
+++ b/tests/SortableLinkTest.php
@@ -114,6 +114,14 @@ public function testCustomHrefAttribute()
$this->assertSame('ColumnTitle ', $link);
}
+
+
+ public function testCustomHrefWithCustomSortDirectionAttribute()
+ {
+ $link = SortableLink::render(['column', 'ColumnTitle', ['a' => 'b', 'direction' => 'desc'], ['c' => 'd', 'href' => 'http://localhost/custom-path']]);
+
+ $this->assertSame('ColumnTitle ', $link);
+ }
public function testParseParameters()