|
|
@@ -2,7 +2,7 @@ port module Main exposing (..)
|
|
|
|
|
|
import API
|
|
|
import Browser exposing (Document)
|
|
|
-import Card exposing (CardData, CardPerformanceDistributions, calculatePerformanceDistributions, manaCostToSymbol)
|
|
|
+import Card exposing (CardData, CardPerformanceDistributions, CardType(..), calculatePerformanceDistributions, colorsSortOrder, manaCostToSymbol, raritySortOrder)
|
|
|
import Chart as C
|
|
|
import Chart.Attributes as CA
|
|
|
import Components.Button as Button
|
|
|
@@ -791,27 +791,36 @@ viewDraft model =
|
|
|
]
|
|
|
|
|
|
|
|
|
-getCardSortFn : SortOrder -> (CardData -> String)
|
|
|
-getCardSortFn sortOrder =
|
|
|
- case sortOrder of
|
|
|
- SortOrderDefault ->
|
|
|
- \c -> c.details.name
|
|
|
-
|
|
|
- SortOrderRarity ->
|
|
|
- \c -> c.details.name
|
|
|
-
|
|
|
- -- todo
|
|
|
- SortOrderName ->
|
|
|
- \c -> c.details.name
|
|
|
-
|
|
|
-
|
|
|
viewAllCards : CardExplorerModel -> Html Msg
|
|
|
viewAllCards model =
|
|
|
let
|
|
|
allCards : List CardData
|
|
|
allCards =
|
|
|
Database.getAll model.database
|
|
|
- |> List.sortBy (getCardSortFn model.sortOrder)
|
|
|
+ |> (case model.sortOrder of
|
|
|
+ SortOrderDefault ->
|
|
|
+ List.sortBy
|
|
|
+ (\c ->
|
|
|
+ ( if
|
|
|
+ c.details.cardType
|
|
|
+ /= Land
|
|
|
+ then
|
|
|
+ 0
|
|
|
+
|
|
|
+ else
|
|
|
+ 1
|
|
|
+ , colorsSortOrder
|
|
|
+ c.details.colors
|
|
|
+ , raritySortOrder c.details.rarity
|
|
|
+ )
|
|
|
+ )
|
|
|
+
|
|
|
+ SortOrderRarity ->
|
|
|
+ List.sortBy (\c -> raritySortOrder c.details.rarity)
|
|
|
+
|
|
|
+ SortOrderName ->
|
|
|
+ List.sortBy (\c -> c.details.name)
|
|
|
+ )
|
|
|
|
|
|
viewCard : CardData -> ( String, Html Msg )
|
|
|
viewCard card =
|
|
|
@@ -849,7 +858,7 @@ viewAllCards model =
|
|
|
div [ class "flex flex-col space-between col-span-8 " ]
|
|
|
[ Keyed.node "div"
|
|
|
[ class "flex-grow grid grid-cols-8 auto-rows-min gap-6 p-6" ]
|
|
|
- (List.map viewCard (Database.getAll model.database))
|
|
|
+ (List.map viewCard allCards)
|
|
|
]
|
|
|
]
|
|
|
|