diff --git a/modules/blox/blox/team-showcase/block.html b/modules/blox/blox/team-showcase/block.html index 07e04b3f..f4d402f3 100644 --- a/modules/blox/blox/team-showcase/block.html +++ b/modules/blox/blox/team-showcase/block.html @@ -10,7 +10,6 @@ {{ $show_role := $block.design.show_role | default true }} {{ $show_organizations := $block.design.show_organizations | default true }} {{ $max_interests := $block.design.max_interests | default 3 }} -{{ $max_interests_int := int $max_interests }} {{ $align := $block.design.align | default "center" }} {{ $max_columns := $block.design.max_columns | default 4 }} {{ $show_empty_groups := $block.design.show_empty_groups | default false }} @@ -28,13 +27,38 @@ {{ $text := $block.content.text | emojify | $page.RenderString }} {{ $alignClass := cond (eq $align "left") "items-start text-left" "items-center text-center" }} {{ $ctaAlignClass := cond (eq $align "left") "text-left" "text-center" }} + +{{/* Safe numeric handling with clamping using type checks */}} +{{ $max_columns_int := 4 }} +{{ $max_columns_type := printf "%T" $max_columns }} +{{ if or (eq $max_columns_type "int") (eq $max_columns_type "int64") (eq $max_columns_type "float64") (eq $max_columns_type "float32") (eq $max_columns_type "uint") (eq $max_columns_type "uint64") }} + {{ $max_columns_int = int $max_columns }} +{{ else if eq $max_columns_type "string" }} + {{ if gt (len (findRE "^[0-9]+$" $max_columns)) 0 }} + {{ $max_columns_int = int $max_columns }} + {{ end }} +{{ end }} +{{ if lt $max_columns_int 2 }}{{ $max_columns_int = 2 }}{{ end }} +{{ if gt $max_columns_int 4 }}{{ $max_columns_int = 4 }}{{ end }} + +{{ $max_interests_int := 3 }} +{{ $max_interests_type := printf "%T" $max_interests }} +{{ if or (eq $max_interests_type "int") (eq $max_interests_type "int64") (eq $max_interests_type "float64") (eq $max_interests_type "float32") (eq $max_interests_type "uint") (eq $max_interests_type "uint64") }} + {{ $max_interests_int = int $max_interests }} +{{ else if eq $max_interests_type "string" }} + {{ if gt (len (findRE "^[0-9]+$" $max_interests)) 0 }} + {{ $max_interests_int = int $max_interests }} + {{ end }} +{{ end }} +{{ if lt $max_interests_int 0 }}{{ $max_interests_int = 0 }}{{ end }} + {{ $columnsClasses := dict - 2 "grid grid-cols-1 gap-8 sm:grid-cols-2" - 3 "grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3" - 4 "grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4" + "2" "grid grid-cols-1 gap-8 sm:grid-cols-2" + "3" "grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3" + "4" "grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4" }} -{{ $max_columns_int := int $max_columns }} -{{ $gridClass := index $columnsClasses $max_columns_int | default "grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4" }} +{{ $max_columns_key := printf "%d" $max_columns_int }} +{{ $gridClass := index $columnsClasses $max_columns_key | default "grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4" }}