fix: wrap all update action views in pageLayout so navbar persists on WebSocket updates
HyperView update actions replace only the hyper component — without pageLayout the navbar disappears after any interactive action (create chore, navigate pages, refresh, create household, etc.). Every hyper-returning update now wraps the view in pageLayout us.
This commit is contained in:
@@ -44,10 +44,10 @@ instance (DB :> es, IOE :> es) => HyperView ActivityPage es where
|
||||
Just us -> do
|
||||
hhs <- getUserHouseholds (UserId (usUserId us))
|
||||
case hhs of
|
||||
[] -> pure $ hyper ActivityPage $ el "No households"
|
||||
[] -> pure $ hyper ActivityPage $ pageLayout us $ el "No households"
|
||||
(h : _) -> do
|
||||
log <- getActivityLog (unHouseholdId (householdId h)) pageNum 20
|
||||
pure $ hyper ActivityPage $ activityView log
|
||||
pure $ hyper ActivityPage $ pageLayout us $ activityView log
|
||||
|
||||
activityView :: ActivityLogPage -> View ActivityPage ()
|
||||
activityView log = do
|
||||
|
||||
@@ -50,10 +50,10 @@ instance (DB :> es, IOE :> es) => HyperView ChoresPage es where
|
||||
Just us -> do
|
||||
hhs <- getUserHouseholds (UserId (usUserId us))
|
||||
case hhs of
|
||||
[] -> pure $ hyper ChoresPage $ el "No households"
|
||||
[] -> pure $ hyper ChoresPage $ pageLayout us $ el "No households"
|
||||
(h : _) -> do
|
||||
chores' <- getChores (unHouseholdId (householdId h))
|
||||
pure $ hyper ChoresPage $ choresView chores'
|
||||
pure $ hyper ChoresPage $ pageLayout us $ choresView chores'
|
||||
update (CDeleteChore cid) = do
|
||||
deleteChore (unChoreId cid)
|
||||
update CRefreshChores
|
||||
@@ -64,12 +64,12 @@ instance (DB :> es, IOE :> es) => HyperView ChoresPage es where
|
||||
Just us -> do
|
||||
hhs <- getUserHouseholds (UserId (usUserId us))
|
||||
case hhs of
|
||||
[] -> pure $ hyper ChoresPage $ el "No households"
|
||||
[] -> pure $ hyper ChoresPage $ pageLayout us $ el "No households"
|
||||
(h : _) -> do
|
||||
let hid = unHouseholdId (householdId h)
|
||||
chores' <- getChores hid
|
||||
mems <- getMembers hid
|
||||
pure $ hyper ChoresPage $ choresViewWithForm chores' mems
|
||||
pure $ hyper ChoresPage $ pageLayout us $ choresViewWithForm chores' mems
|
||||
update CCreateChore = do
|
||||
form <- formData @ChoreFormData
|
||||
mUser <- lookupSession @UserSession
|
||||
@@ -78,14 +78,14 @@ instance (DB :> es, IOE :> es) => HyperView ChoresPage es where
|
||||
Just us -> do
|
||||
hhs <- getUserHouseholds (UserId (usUserId us))
|
||||
case hhs of
|
||||
[] -> pure $ hyper ChoresPage $ el "No households"
|
||||
[] -> pure $ hyper ChoresPage $ pageLayout us $ el "No households"
|
||||
(h : _) -> do
|
||||
let hid = unHouseholdId (householdId h)
|
||||
let schedule = parseSchedule (cfdStartDate form)
|
||||
assignee = parseAssignee (cfdAssignee form)
|
||||
_ <- createChore hid (cfdName form) assignee schedule (cfdNotify form)
|
||||
chores' <- getChores hid
|
||||
pure $ hyper ChoresPage $ choresView chores'
|
||||
pure $ hyper ChoresPage $ pageLayout us $ choresView chores'
|
||||
|
||||
----------------------------------------------------------------------
|
||||
-- Views
|
||||
|
||||
@@ -45,10 +45,10 @@ instance (DB :> es, IOE :> es) => HyperView DashboardPage es where
|
||||
today <- liftIO (utctDay <$> getCurrentTime)
|
||||
hhs <- getUserHouseholds (UserId (usUserId us))
|
||||
case hhs of
|
||||
[] -> pure $ hyper DashboardPage $ el "No households"
|
||||
[] -> pure $ hyper DashboardPage $ pageLayout us $ el "No households"
|
||||
(h : _) -> do
|
||||
dash <- getDashboard (unHouseholdId (householdId h)) today
|
||||
pure $ hyper DashboardPage $ dashboardView dash
|
||||
pure $ hyper DashboardPage $ pageLayout us $ dashboardView dash
|
||||
update (CheckOff _oid) = do
|
||||
-- TODO: wire up to activity form
|
||||
update RefreshDashboard
|
||||
|
||||
@@ -45,12 +45,12 @@ instance (DB :> es, IOE :> es) => HyperView HouseholdPage es where
|
||||
Just us -> do
|
||||
hhs <- getUserHouseholds (UserId (usUserId us))
|
||||
case hhs of
|
||||
[] -> pure $ hyper HouseholdPage noHouseholdView
|
||||
[] -> pure $ hyper HouseholdPage $ pageLayout us noHouseholdView
|
||||
(h : _) -> do
|
||||
let hid = unHouseholdId (householdId h)
|
||||
mems <- getMembers hid
|
||||
invs <- getInvites hid
|
||||
pure $ hyper HouseholdPage $ householdView h mems invs
|
||||
pure $ hyper HouseholdPage $ pageLayout us $ householdView h mems invs
|
||||
update CreateHouseholdAction = do
|
||||
form <- formData @HouseholdFormData
|
||||
mUser <- lookupSession @UserSession
|
||||
@@ -62,7 +62,7 @@ instance (DB :> es, IOE :> es) => HyperView HouseholdPage es where
|
||||
let hid = unHouseholdId (householdId h)
|
||||
mems <- getMembers hid
|
||||
invs <- getInvites hid
|
||||
pure $ hyper HouseholdPage $ householdView h mems invs
|
||||
pure $ hyper HouseholdPage $ pageLayout us $ householdView h mems invs
|
||||
update CreateInviteAction = do
|
||||
mUser <- lookupSession @UserSession
|
||||
case mUser of
|
||||
|
||||
Reference in New Issue
Block a user