From 92ec058114b64e45a044094de8c694807de5f02d Mon Sep 17 00:00:00 2001 From: James Brechtel Date: Tue, 26 May 2026 06:40:24 -0400 Subject: [PATCH] feat: show most recent 5 cook entries under Record meal button --- src/Roux/Html.hs | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/src/Roux/Html.hs b/src/Roux/Html.hs index 807ff76..82905dd 100644 --- a/src/Roux/Html.hs +++ b/src/Roux/Html.hs @@ -898,6 +898,21 @@ renderCookLog _filename entries = do H.div ! A.class_ "roux-cook-entries" $ do mapM_ renderEntry entries +-- | Render the most recent cook entries under the "Record meal" button. +renderRecentCookEntries :: [CookLog.CookEntry] -> Html +renderRecentCookEntries [] = pure () +renderRecentCookEntries entries = do + H.div ! A.style "margin-top: 0.4rem; font-size: 0.75rem; color: rgba(61,44,30,0.5); line-height: 1.5;" $ do + H.span "Recent: " + mapM_ renderRecentEntry (take 5 entries) + +renderRecentEntry :: CookLog.CookEntry -> Html +renderRecentEntry entry = do + H.span ! A.style "color: rgba(61,44,30,0.6);" $ H.toHtml (formatDay (CookLog.ceCookedDate entry)) + unless (T.null (CookLog.ceComment entry)) $ + H.span ! A.style "color: rgba(61,44,30,0.4);" $ ": " >> H.toHtml (CookLog.ceComment entry) + H.span ", " + -- | Render a single cook log entry. renderEntry :: CookLog.CookEntry -> Html renderEntry entry = do @@ -926,16 +941,18 @@ renderRecipe filename recipe entries = do Nothing -> pure () H.div ! A.style "display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;" $ do H.h1 ! A.class_ "roux-recipe-title" $ H.toHtml (titleText recipe) - H.div ! A.style "display: flex; gap: 0.75rem; align-items: center; flex-shrink: 0;" $ do - case metaSource meta of - Just url -> H.a ! A.class_ "roux-source-link" ! A.href (H.toValue url) ! A.target "_blank" ! A.rel "noopener noreferrer" $ do - "↗ Original" - Nothing -> pure () - H.button - ! A.class_ "roux-record-btn" - ! A.id "roux-record-btn" - ! H.dataAttribute "filename" (H.toValue (T.pack filename)) - $ "+ Record meal" + H.div ! A.style "text-align: right;" $ do + H.div ! A.style "display: flex; gap: 0.75rem; align-items: center; justify-content: flex-end;" $ do + case metaSource meta of + Just url -> H.a ! A.class_ "roux-source-link" ! A.href (H.toValue url) ! A.target "_blank" ! A.rel "noopener noreferrer" $ do + "↗ Original" + Nothing -> pure () + H.button + ! A.class_ "roux-record-btn" + ! A.id "roux-record-btn" + ! H.dataAttribute "filename" (H.toValue (T.pack filename)) + $ "+ Record meal" + renderRecentCookEntries entries H.div ! A.class_ "roux-desc-row" $ do case desc of Just d -> H.p ! A.class_ "roux-desc" $ H.toHtml d