diff --git a/packages/tables/resources/views/index.blade.php b/packages/tables/resources/views/index.blade.php index f5b85a1b5b..2fb3fb1e37 100644 --- a/packages/tables/resources/views/index.blade.php +++ b/packages/tables/resources/views/index.blade.php @@ -45,7 +45,8 @@ $hasColumnsLayout = $hasColumnsLayout(); $hasPageSummary = $hasPageSummary(); $hasAllTableSummary = $hasAllTableSummary(); - $hasSummary = ($hasPageSummary || $hasAllTableSummary) && $hasSummary($this->getAllTableSummaryQuery()); + $hasSummary = $hasSummary($this->getAllTableSummaryQuery()); + $hasTopLevelSummary = $hasSummary && ($hasPageSummary || $hasAllTableSummary); $header = $getHeader(); $headerActions = array_filter( $getHeaderActions(), @@ -1330,7 +1331,7 @@ }} @endif - @if ($hasSummary && (! $isReordering)) + @if ($hasTopLevelSummary && (! $isReordering)) assertCanSeeTableRecords($posts->take(10)) ->assertTableColumnSummarySet('rating', 'published_sum', $posts->take(10)->where('is_published', true)->sum('rating'), isCurrentPaginationPageOnly: true); }); + +it('renders group summaries when page and all-table summaries are disabled', function (): void { + Post::factory()->count(5)->create(); + + livewire(TestTableWithGroupSummariesOnly::class) + ->assertSeeHtml('fi-ta-summary-row') + ->assertDontSeeHtml('fi-ta-summary-header-row'); +}); + +class TestTableWithGroupSummariesOnly extends Component implements HasActions, HasSchemas, Tables\Contracts\HasTable +{ + use InteractsWithActions; + use InteractsWithSchemas; + use Tables\Concerns\InteractsWithTable; + + public function table(Table $table): Table + { + return $table + ->query(Post::query()) + ->columns([ + Tables\Columns\TextColumn::make('title'), + Tables\Columns\TextColumn::make('rating') + ->summarize([ + Tables\Columns\Summarizers\Sum::make('sum'), + ]), + ]) + ->defaultGroup( + Tables\Grouping\Group::make('is_published'), + ) + ->summaries(pageCondition: false, allTableCondition: false); + } + + public function render(): View + { + return view('livewire.table'); + } +}