mirror of
https://github.com/NoRedInk/noredink-ui.git
synced 2024-09-21 12:19:03 +03:00
Don't require PremiumLevel; allow general premium levels
This commit is contained in:
parent
dcf008b118
commit
b2a2532ff0
@ -12,7 +12,6 @@ import Html.Styled.Attributes as Attributes exposing (css)
|
||||
import Nri.Ui.AssetPath exposing (Asset(..))
|
||||
import Nri.Ui.AssetPath.Css
|
||||
import Nri.Ui.Checkbox.V3 as Checkbox
|
||||
import Nri.Ui.Data.PremiumLevel as PremiumLevel exposing (PremiumLevel(..))
|
||||
|
||||
|
||||
{-|
|
||||
@ -22,13 +21,15 @@ import Nri.Ui.Data.PremiumLevel as PremiumLevel exposing (PremiumLevel(..))
|
||||
If you get this message, you should show an `Nri.Ui.Premium.Model.view`
|
||||
|
||||
-}
|
||||
type alias PremiumConfig msg =
|
||||
type alias PremiumConfig level msg =
|
||||
{ label : String
|
||||
, id : String
|
||||
, selected : Checkbox.IsSelected
|
||||
, disabled : Bool
|
||||
, teacherPremiumLevel : PremiumLevel
|
||||
, contentPremiumLevel : PremiumLevel
|
||||
, teacherPremiumLevel : level
|
||||
, contentPremiumLevel : level
|
||||
, isFree : level -> Bool
|
||||
, allowedFor : level -> level -> Bool
|
||||
, showFlagWhenLocked : Bool
|
||||
, onChange : Bool -> msg
|
||||
, onLockedClick : msg
|
||||
@ -41,12 +42,12 @@ type alias PremiumConfig msg =
|
||||
This checkbox is locked when the premium level of the content is greater than the premium level of the teacher
|
||||
|
||||
-}
|
||||
premium : Assets a -> PremiumConfig msg -> Html.Html msg
|
||||
premium : Assets a -> PremiumConfig level msg -> Html.Html msg
|
||||
premium assets config =
|
||||
let
|
||||
isLocked =
|
||||
not <|
|
||||
PremiumLevel.allowedFor
|
||||
config.allowedFor
|
||||
config.contentPremiumLevel
|
||||
config.teacherPremiumLevel
|
||||
in
|
||||
@ -75,7 +76,7 @@ premium assets config =
|
||||
}
|
||||
, if
|
||||
(isLocked && config.showFlagWhenLocked)
|
||||
|| (not isLocked && config.contentPremiumLevel /= Free)
|
||||
|| not (isLocked || config.isFree config.contentPremiumLevel)
|
||||
then
|
||||
Html.div
|
||||
[ Attributes.class "premium-checkbox-V1__PremiumClass"
|
||||
|
@ -174,6 +174,8 @@ viewPremiumCheckboxes state =
|
||||
, disabled = config.disabled
|
||||
, teacherPremiumLevel = config.teacherPremiumLevel
|
||||
, contentPremiumLevel = premiumLevel
|
||||
, allowedFor = PremiumLevel.allowedFor
|
||||
, isFree = \level -> level == PremiumLevel.Free
|
||||
, showFlagWhenLocked = config.showFlagWhenLocked
|
||||
, onChange = ToggleCheck label
|
||||
, onLockedClick = NoOp
|
||||
|
@ -3,7 +3,7 @@ module Spec.Nri.Ui.PremiumCheckbox.V1 exposing (spec)
|
||||
import Html.Styled
|
||||
import Nri.Ui.AssetPath exposing (Asset(Asset))
|
||||
import Nri.Ui.Checkbox.V3 exposing (IsSelected(..))
|
||||
import Nri.Ui.Data.PremiumLevel exposing (PremiumLevel(..))
|
||||
import Nri.Ui.Data.PremiumLevel as PremiumLevel exposing (PremiumLevel(..))
|
||||
import Nri.Ui.PremiumCheckbox.V1 as PremiumCheckbox
|
||||
import Test exposing (..)
|
||||
import Test.Html.Query as Query
|
||||
@ -18,6 +18,8 @@ premiumView config =
|
||||
, disabled = config.disabled
|
||||
, teacherPremiumLevel = config.teacherPremiumLevel
|
||||
, contentPremiumLevel = config.contentPremiumLevel
|
||||
, allowedFor = PremiumLevel.allowedFor
|
||||
, isFree = \level -> level == PremiumLevel.Free
|
||||
, showFlagWhenLocked = config.showFlagWhenLocked
|
||||
, onChange = \_ -> ()
|
||||
, onLockedClick = ()
|
||||
|
Loading…
Reference in New Issue
Block a user