DEV Community

Cover image for Two Quick IHP tips to dynamically assign classes

Posted on

Two Quick IHP tips to dynamically assign classes

Here are two quick tips for IHP:

Use the classes helper dynamically assign classes to elements in your views. It's an easy way to simplify your code by a lot:

<a class={usersLinkClasses} href={UsersAction}>Users</a>
<a class={invitesLinkClasses} href={InvitesAction}>Invites</a>
    usersLinkClasses = "nav-link" ++ if isActivePath UsersAction
        then " active"
        else ""
    invitesLinkClasses = "nav-link" ++ if isActivePath InvitesAction
        then " active"
        else ""

<a class={classes ["nav-link", ("active", isActivePath UsersAction)]} href={UsersAction}>Users</a>
<a class={classes ["nav-link", ("active", isActivePath InvitesAction)]} href={InvitesAction}>Invites</a>
Enter fullscreen mode Exit fullscreen mode

Use isActivePathOrSub instead of isActivePath

If you read the previous example, you might have noticed that I used isActivePath to dynamically assign the active class to the links. Well, using isActivePathOrSub this will also work if the path is a sub-path. In the following example, both /Settings and /Settings/Profile would match and cause the link to get the active class. Learn more in the documentation.

<a class={classes ["nav-link", ("active", isActivePathOrSub "/Settings")]} href={SettingsAction}>Settings</a>
Enter fullscreen mode Exit fullscreen mode

If this peaked your interest, get started with IHP now and tell us what you think!

Top comments (0)