From 2c4204f4b362334d3718cb4cee11cdecf52219ca Mon Sep 17 00:00:00 2001 From: SyntacticSalt Date: Thu, 5 Mar 2026 18:53:19 +0100 Subject: [PATCH 1/2] fix: Improve display for participant columns --- lua/wikis/commons/TournamentsListing/CardList.lua | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/lua/wikis/commons/TournamentsListing/CardList.lua b/lua/wikis/commons/TournamentsListing/CardList.lua index 7d9ca3a1131..d870f534871 100644 --- a/lua/wikis/commons/TournamentsListing/CardList.lua +++ b/lua/wikis/commons/TournamentsListing/CardList.lua @@ -347,18 +347,11 @@ end ---@private ---@param opponents table[] ----@return Widget +---@return Widget[] function BaseTournamentsListing:_buildParticipants(opponents) - return HtmlWidgets.Div{ - css = { - display = 'inline-grid', - ['grid-template-columns'] = 'repeat( auto-fit, minmax( 150px, 1fr ) )', - ['min-width'] = '15vw' - }, - children = Array.map(opponents, function (opponent) - return OpponentDisplay.BlockOpponent{opponent = opponent} - end) - } + return Array.map(opponents, function (opponent) + return OpponentDisplay.BlockOpponent{opponent = opponent} + end) end ---@private From a97a2bacbea64eb548f07041d3a241e3b36ed4aa Mon Sep 17 00:00:00 2001 From: SyntacticSalt Date: Sun, 29 Mar 2026 16:55:19 +0200 Subject: [PATCH 2/2] Use suggestion from Eetu --- .../commons/TournamentsListing/CardList.lua | 31 ++++++++++++++----- stylesheets/commons/Table2.scss | 27 ++++++++++++++++ 2 files changed, 50 insertions(+), 8 deletions(-) diff --git a/lua/wikis/commons/TournamentsListing/CardList.lua b/lua/wikis/commons/TournamentsListing/CardList.lua index 72fb7716cb8..4cd8784d4f7 100644 --- a/lua/wikis/commons/TournamentsListing/CardList.lua +++ b/lua/wikis/commons/TournamentsListing/CardList.lua @@ -180,6 +180,7 @@ function BaseTournamentsListing:build() self.cachedData = {rank = 1, prize = 0, skippedRanks = self.config.offset} return TableWidgets.Table{ + classes = 'tournaments-listing', columns = self:buildColumnDefinitions(), children = { TableWidgets.TableHeader{ @@ -202,7 +203,10 @@ function BaseTournamentsListing:buildColumnDefinitions() config.showTier and {align = 'left'} or nil, -- Tier config.showGameIcon and {align = 'center'} or nil, -- Game {align = 'left'}, -- Icon - {align = 'left'}, -- Tournament + { -- Tournament + align = 'left', + classes = {'column__tournament'}, + }, config.showOrganizer and {align = 'left'} or nil, -- Organizer {align = 'left'}, -- Date { -- Prizepool @@ -212,10 +216,19 @@ function BaseTournamentsListing:buildColumnDefinitions() {align = 'left'}, -- Location {align = 'right'}, -- Participants config.showQualifierColumnOverWinnerRunnerup - and {align = 'left'} -- Qualified + and { -- Qualified + align = 'left', + classes = {'column__qualified'}, + } or WidgetUtil.collect( - {align = 'left'}, -- Winner - {align = 'left'} -- Runner-up + { -- Winner + align = 'left', + classes = {'column__placement'}, + }, + { -- Runner-up + align = 'left', + classes = {'column__placement'}, + } ) ) end @@ -347,11 +360,13 @@ end ---@private ---@param opponents table[] ----@return Widget[] +---@return Widget function BaseTournamentsListing:_buildParticipants(opponents) - return Array.map(opponents, function (opponent) - return OpponentDisplay.BlockOpponent{opponent = opponent} - end) + return HtmlWidgets.Div{ + children = Array.map(opponents, function (opponent) + return OpponentDisplay.BlockOpponent{opponent = opponent} + end) + } end ---@private diff --git a/stylesheets/commons/Table2.scss b/stylesheets/commons/Table2.scss index d8f8d2e80e0..945e39cbf15 100644 --- a/stylesheets/commons/Table2.scss +++ b/stylesheets/commons/Table2.scss @@ -280,3 +280,30 @@ $table2-cell-padding-x: 0.75rem; } } } + +// TournamentsListing variant (Module:TournamentsListing/CardList) +.tournaments-listing { + width: 100%; + + .column { + &__tournament { + width: 100%; + min-width: 15rem; + max-width: 0; + overflow: hidden; + text-overflow: ellipsis; + } + + &__placement > div { + display: inline-grid; + grid-template-columns: repeat( auto-fit, minmax( 150px, 1fr ) ); + min-width: 12vw; + } + + &__qualified > div { + display: inline-grid; + grid-template-columns: repeat( auto-fit, minmax( 150px, 1fr ) ); + min-width: 20vw; + } + } +}