diff --git a/js/src/main/scala/cs214/webapp/client/Pages.scala b/js/src/main/scala/cs214/webapp/client/Pages.scala index 99c093e83e55dd7f891595a1404365ebd21dd7f5..c94551b3bfa496c6ce150dcc49464404f90591b7 100644 --- a/js/src/main/scala/cs214/webapp/client/Pages.scala +++ b/js/src/main/scala/cs214/webapp/client/Pages.scala @@ -28,16 +28,16 @@ object Page: abstract class AppCatalogPage extends Page: def render(apps: Seq[AppInfo]): Frag - def selectApp(appId: AppId): Unit = - WebClient.navigateTo(InstanceCreationPage(appId)) - - def renderApp(appInfo: AppInfo): Frag = - figure( - onclick := (() => selectApp(appInfo.id)), - img(src := s"/static/${appInfo.id}.png"), - figcaption( - h4(appInfo.name), - p(appInfo.description) + def renderApp(appInfo: AppInfo, classes: String): Frag = + a( + cls := "app " + classes, + href := WebClient.url(InstanceCreationPage(appInfo.id)), + figure( + img(src := s"/static/${appInfo.id}.png"), + figcaption( + h4(appInfo.name), + p(appInfo.description) + ) ) ) @@ -57,7 +57,7 @@ object HomePage extends AppCatalogPage: h2(year.toString), section(cls := "app-grid", apps.sortBy(_.name).map: appInfo => - renderApp(appInfo) + renderApp(appInfo, classes="") ) ) ) diff --git a/jvm/src/main/resources/www/static/main.css b/jvm/src/main/resources/www/static/main.css index 0f301ef7db71d08ec24a26dedfc75b7d84b165f0..e7531e76f975f51d515ea856553cb3f69340f523 100644 --- a/jvm/src/main/resources/www/static/main.css +++ b/jvm/src/main/resources/www/static/main.css @@ -171,6 +171,14 @@ form > *:last-child { grid-gap: 1rem; } +.app-grid > a { + color: inherit; + display: grid; + text-decoration: none; + grid-template-columns: minmax(0, 1fr); + grid-template-rows: minmax(0, 1fr); +} + .app-grid figure { word-wrap: break-word; border-radius: 0.5rem;