diff --git a/packages/framework/resources/views/components/docs/sidebar-item.blade.php b/packages/framework/resources/views/components/docs/sidebar-item.blade.php index 6ffdf19c025..cab03d7c3f3 100644 --- a/packages/framework/resources/views/components/docs/sidebar-item.blade.php +++ b/packages/framework/resources/views/components/docs/sidebar-item.blade.php @@ -1,9 +1,9 @@ @props(['grouped' => false])
  • $item->isCurrent() + : 'active bg-black/5 dark:bg-black/10' => $item->isActive() ]) role="listitem"> - @if($item->isCurrent()) + @if($item->isActive()) isCurrent() ? 'aria-current="page"' : '' !!} @class([ +isActive() ? 'aria-current="page"' : '' !!} @class([ 'block my-2 md:my-0 md:inline-block py-1 text-gray-700 hover:text-gray-900 dark:text-gray-100', - 'border-l-4 border-indigo-500 md:border-none font-medium -ml-6 pl-5 md:ml-0 md:pl-0 bg-gray-100 dark:bg-gray-800 md:bg-transparent dark:md:bg-transparent' => $item->isCurrent() + 'border-l-4 border-indigo-500 md:border-none font-medium -ml-6 pl-5 md:ml-0 md:pl-0 bg-gray-100 dark:bg-gray-800 md:bg-transparent dark:md:bg-transparent' => $item->isActive() ])>{{ $item->getLabel() }} \ No newline at end of file diff --git a/packages/framework/src/Framework/Features/Navigation/NavItem.php b/packages/framework/src/Framework/Features/Navigation/NavItem.php index ec15982bc4f..6601a7a0027 100644 --- a/packages/framework/src/Framework/Features/Navigation/NavItem.php +++ b/packages/framework/src/Framework/Features/Navigation/NavItem.php @@ -192,7 +192,7 @@ public function hasChildren(): bool /** * Check if the NavItem instance is the current page being rendered. */ - public function isCurrent(): bool + public function isActive(): bool { return Hyde::currentRoute()->getLink() === $this->route->getLink(); } diff --git a/packages/framework/tests/Unit/NavItemIsCurrentHelperTest.php b/packages/framework/tests/Unit/NavItemIsActiveHelperTest.php similarity index 90% rename from packages/framework/tests/Unit/NavItemIsCurrentHelperTest.php rename to packages/framework/tests/Unit/NavItemIsActiveHelperTest.php index 97aa4de6f6f..bbd6d82b4d2 100644 --- a/packages/framework/tests/Unit/NavItemIsCurrentHelperTest.php +++ b/packages/framework/tests/Unit/NavItemIsActiveHelperTest.php @@ -18,7 +18,7 @@ * * @see \Hyde\Framework\Testing\Unit\NavItemTest */ -class NavItemIsCurrentHelperTest extends UnitTestCase +class NavItemIsActiveHelperTest extends UnitTestCase { public static function setUpBeforeClass(): void { @@ -34,205 +34,205 @@ protected function tearDown(): void public function testIsCurrent() { $this->mockRenderData($this->makeRoute('foo')); - $this->assertFalse(NavItem::forRoute($this->makeRoute('bar'))->isCurrent()); + $this->assertFalse(NavItem::forRoute($this->makeRoute('bar'))->isActive()); } public function testIsCurrentWhenCurrent() { $this->mockRenderData($this->makeRoute('foo')); - $this->assertTrue(NavItem::forRoute($this->makeRoute('foo'))->isCurrent()); + $this->assertTrue(NavItem::forRoute($this->makeRoute('foo'))->isActive()); } public function testIsCurrentUsingCurrentRoute() { $this->mockRenderData($this->makeRoute('index')); - $this->assertTrue(NavItem::forRoute(Routes::get('index'))->isCurrent()); + $this->assertTrue(NavItem::forRoute(Routes::get('index'))->isActive()); } public function testIsCurrentUsingCurrentLink() { $this->mockRenderData($this->makeRoute('index')); - $this->assertTrue(NavItem::forLink('index.html', 'Home')->isCurrent()); + $this->assertTrue(NavItem::forLink('index.html', 'Home')->isActive()); } public function testIsCurrentWhenNotCurrent() { $this->mockRenderData($this->makeRoute('foo')); - $this->assertFalse(NavItem::forRoute($this->makeRoute('bar'))->isCurrent()); + $this->assertFalse(NavItem::forRoute($this->makeRoute('bar'))->isActive()); } public function testIsCurrentUsingNotCurrentRoute() { $this->mockRenderData($this->makeRoute('foo')); - $this->assertFalse(NavItem::forRoute(Routes::get('index'))->isCurrent()); + $this->assertFalse(NavItem::forRoute(Routes::get('index'))->isActive()); } public function testIsCurrentUsingNotCurrentLink() { $this->mockRenderData($this->makeRoute('foo')); - $this->assertFalse(NavItem::forLink('index.html', 'Home')->isCurrent()); + $this->assertFalse(NavItem::forLink('index.html', 'Home')->isActive()); } public function testIsCurrentWithNestedCurrentPage() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertFalse(NavItem::forRoute($this->makeRoute('bar'))->isCurrent()); + $this->assertFalse(NavItem::forRoute($this->makeRoute('bar'))->isActive()); } public function testIsCurrentWhenCurrentWithNestedCurrentPage() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertTrue(NavItem::forRoute($this->makeRoute('foo/bar'))->isCurrent()); + $this->assertTrue(NavItem::forRoute($this->makeRoute('foo/bar'))->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenNested() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertTrue(NavItem::forRoute($this->makeRoute('foo/bar'))->isCurrent()); + $this->assertTrue(NavItem::forRoute($this->makeRoute('foo/bar'))->isActive()); } public function testIsCurrentWhenCurrentWithNestedCurrentPageWhenNested() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertFalse(NavItem::forRoute($this->makeRoute('foo/baz'))->isCurrent()); + $this->assertFalse(NavItem::forRoute($this->makeRoute('foo/baz'))->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenVeryNested() { $this->mockRenderData($this->makeRoute('foo/bar/baz')); - $this->assertTrue(NavItem::forRoute($this->makeRoute('foo/bar/baz'))->isCurrent()); + $this->assertTrue(NavItem::forRoute($this->makeRoute('foo/bar/baz'))->isActive()); } public function testIsCurrentWhenCurrentWithNestedCurrentPageWhenVeryNested() { $this->mockRenderData($this->makeRoute('foo/bar/baz')); - $this->assertFalse(NavItem::forRoute($this->makeRoute('foo/baz/bar'))->isCurrent()); + $this->assertFalse(NavItem::forRoute($this->makeRoute('foo/baz/bar'))->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenVeryDifferingNested() { $this->mockRenderData($this->makeRoute('foo')); - $this->assertFalse(NavItem::forRoute($this->makeRoute('foo/bar/baz'))->isCurrent()); + $this->assertFalse(NavItem::forRoute($this->makeRoute('foo/bar/baz'))->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenVeryDifferingNestedInverse() { $this->mockRenderData($this->makeRoute('foo/bar/baz')); - $this->assertFalse(NavItem::forRoute($this->makeRoute('foo'))->isCurrent()); + $this->assertFalse(NavItem::forRoute($this->makeRoute('foo'))->isActive()); } public function testIsCurrentUsingCurrentLinkWithNestedCurrentPage() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertFalse(NavItem::forLink('foo/bar.html', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/bar.html', 'foo')->isActive()); } public function testIsCurrentUsingNotCurrentLinkWithNestedCurrentPage() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertFalse(NavItem::forLink('foo.html', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo.html', 'foo')->isActive()); } public function testIsCurrentWhenCurrentWithNestedCurrentPageAndSubjectPage() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertFalse(NavItem::forLink('foo/bar.html', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/bar.html', 'foo')->isActive()); } public function testIsCurrentWhenNotCurrentWithNestedCurrentPageAndSubjectPage() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertFalse(NavItem::forLink('foo/baz.html', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/baz.html', 'foo')->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenNestedUsingLinkItem() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertFalse(NavItem::forLink('foo/bar.html', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/bar.html', 'foo')->isActive()); } public function testIsCurrentWhenCurrentWithNestedCurrentPageWhenNestedUsingLinkItem() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertFalse(NavItem::forLink('foo/baz.html', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/baz.html', 'foo')->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenVeryNestedUsingLinkItem() { $this->mockRenderData($this->makeRoute('foo/bar/baz')); - $this->assertFalse(NavItem::forLink('foo/bar/baz.html', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/bar/baz.html', 'foo')->isActive()); } public function testIsCurrentWhenCurrentWithNestedCurrentPageWhenVeryNestedUsingLinkItem() { $this->mockRenderData($this->makeRoute('foo/bar/baz')); - $this->assertFalse(NavItem::forLink('foo/baz/bar.html', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/baz/bar.html', 'foo')->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenVeryDifferingNestedUsingLinkItem() { $this->mockRenderData($this->makeRoute('foo')); - $this->assertFalse(NavItem::forLink('foo/bar/baz.html', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/bar/baz.html', 'foo')->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenVeryDifferingNestedInverseUsingLinkItem() { $this->mockRenderData($this->makeRoute('foo/bar/baz')); - $this->assertFalse(NavItem::forLink('foo.html', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo.html', 'foo')->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenNestedUsingPrettyLinkItem() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertFalse(NavItem::forLink('foo/bar', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/bar', 'foo')->isActive()); } public function testIsCurrentWhenCurrentWithNestedCurrentPageWhenNestedUsingPrettyLinkItem() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertFalse(NavItem::forLink('foo/baz', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/baz', 'foo')->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenVeryNestedUsingPrettyLinkItem() { $this->mockRenderData($this->makeRoute('foo/bar/baz')); - $this->assertFalse(NavItem::forLink('foo/bar/baz', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/bar/baz', 'foo')->isActive()); } public function testIsCurrentWhenCurrentWithNestedCurrentPageWhenVeryNestedUsingPrettyLinkItem() { $this->mockRenderData($this->makeRoute('foo/bar/baz')); - $this->assertFalse(NavItem::forLink('foo/baz/bar', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/baz/bar', 'foo')->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenVeryDifferingNestedUsingPrettyLinkItem() { $this->mockRenderData($this->makeRoute('foo')); - $this->assertFalse(NavItem::forLink('foo/bar/baz', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo/bar/baz', 'foo')->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenVeryDifferingNestedInverseUsingPrettyLinkItem() { $this->mockRenderData($this->makeRoute('foo/bar/baz')); - $this->assertFalse(NavItem::forLink('foo', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo', 'foo')->isActive()); } public function testIsCurrentWithAbsoluteLink() { $this->mockRenderData($this->makeRoute('foo')); - $this->assertFalse(NavItem::forLink('/foo', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('/foo', 'foo')->isActive()); } public function testIsCurrentWithNestedCurrentPageWhenNestedUsingAbsoluteLinkItem() { $this->mockRenderData($this->makeRoute('foo/bar')); - $this->assertFalse(NavItem::forLink('/foo/bar', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('/foo/bar', 'foo')->isActive()); } public function testIsCurrentWhenCurrentWithNestedCurrentPageWhenNestedUsingAbsoluteLinkItem() { $this->mockRenderData($this->makeRoute('foo/bar/baz')); - $this->assertFalse(NavItem::forLink('/foo/bar/baz', 'foo')->isCurrent()); + $this->assertFalse(NavItem::forLink('/foo/bar/baz', 'foo')->isActive()); } protected function mockRenderData(Route $route): void diff --git a/packages/framework/tests/Unit/NavItemTest.php b/packages/framework/tests/Unit/NavItemTest.php index eeb3294fd7c..614f24baef3 100644 --- a/packages/framework/tests/Unit/NavItemTest.php +++ b/packages/framework/tests/Unit/NavItemTest.php @@ -22,7 +22,7 @@ * * @covers \Hyde\Framework\Features\Navigation\NavItem * - * @see \Hyde\Framework\Testing\Unit\NavItemIsCurrentHelperTest + * @see \Hyde\Framework\Testing\Unit\NavItemIsActiveHelperTest */ class NavItemTest extends UnitTestCase { @@ -309,8 +309,8 @@ public function testIsCurrent() 'getRoute' => new Route(new InMemoryPage('foo')), 'getRouteKey' => 'foo', ])); - $this->assertTrue(NavItem::forRoute(new Route(new InMemoryPage('foo')))->isCurrent()); - $this->assertFalse(NavItem::forRoute(new Route(new InMemoryPage('bar')))->isCurrent()); + $this->assertTrue(NavItem::forRoute(new Route(new InMemoryPage('foo')))->isActive()); + $this->assertFalse(NavItem::forRoute(new Route(new InMemoryPage('bar')))->isActive()); } public function testIsCurrentWithExternalRoute() @@ -319,8 +319,8 @@ public function testIsCurrentWithExternalRoute() 'getRoute' => new Route(new InMemoryPage('foo')), 'getRouteKey' => 'foo', ])); - $this->assertFalse(NavItem::forLink('foo', 'bar')->isCurrent()); - $this->assertFalse(NavItem::forLink('https://example.com', 'bar')->isCurrent()); + $this->assertFalse(NavItem::forLink('foo', 'bar')->isActive()); + $this->assertFalse(NavItem::forLink('https://example.com', 'bar')->isActive()); } public function testGetGroupWithNoGroup()